23 hours ago
fix link
23 hours ago
fix colors on light color schemes
1 day ago
tighten up margins on index page
1 day ago
clean up commit message; fix watch.sh
1 day ago
fix base image now that sassc is unused
1 day ago
redesign themeing system

This is a complete redesign of Ayllu's themeing system as well as it's default
theme and documentation site.

New features include:

* Ability to mix between built-in compiled and user provided external themes.
* Lightning CSS[1] support eliminating the need for sassc.
* Change from picocss to Open Props[2] which has better support for user
themeing.
* Additional ability to customize all SVG contents used in the UI.
* Ability to customize RSS pages via a theme based XSL file.
* General readability and design improvements (thanks toastal).
* Improvements for using legacy browsers like Dillo, Lynx, etc.
* Some accessibility improvements (WIP still).

1. https://lightningcss.dev/
2. https://open-props.style/
1 week ago
parameterize multiuser container base image
2 weeks ago
remove mention of tree-sitter-amalgamation

tree-sitter-amalgamation is no longer needed because distribution packaging
of tree-sitter parsers has improved.
2 weeks ago
remove unused ids
2 weeks ago
group colors
3 weeks ago
update multiuser container to grant access to ayllu
3 weeks ago
various multiuser container fixes; explicitly set socket perms
3 weeks ago
add multiuser container

This adds a container for production deployments with use with multiple users
in a shared environment. Full design is still a WIP.
3 weeks ago
add ping api route for container healthchecks
4 weeks ago
automatically run migrations at server startup
1 month ago
add documentation for running via podman
1 month ago
update container for root user
1 month ago
add fonts to base container for plotters.rs
1 month ago
fix config order
1 month ago
update base container with git and basic .gitconfig
1 month ago
update migrations path default and make it configurable
1 month ago
add initial support for running ayllu via podman

This adds the basic tooling to support container based workflows with Podman.
It only adds the ability to run the basic ayllu/quipu components without
support for mail, chat, etc. those components will come after.
1 month ago
improve development scripts for database creation

This standardizes the creation of sqlite databases for use in testing and
the compilation process.

Prior to compiling each component you need to:

Usage:

scripts/ensure-db.sh $COMPONENT
1 month ago
add support for smart_http git cloning

This adds support for calling git-http-backend via a CGI like interface in
Ayllu which means that running an external fcgiwrap like service is no longer
required. The implementation is based on https://github.com/w4/rgit which is
an excellent Rust based cgit clone.
1 month ago
use thiserror in web2/error.rs
1 month ago
init quipu

Implement a rough draft of Quipu - the CLI and RPC client for Ayllu. This adds
a simple REST server into the existing Ayllu HTTP server as well as a new
binary called quipu for interacting with the new endpoints. Eventually I would
like to implement a custom transport built on Tarpc expose both the REST API
and the internal RPC communication if desired.
1 month ago
clean up rss feeds a bit
1 month ago
add commits_range_between and branches range

Adds two new git related methods for resolving the commits between two
commits and returning branches within a certain range. This is being added
to support new UI and RSS features.
1 month ago
actually remove stylesheets
1 month ago
rm mistakenly added compiled css
1 month ago
rewrite tree-sitter module names to use snake_case

This changes the tree-sitter module loader to re-write function calls as
snake_case as is the convention in tree-sitter. For example the module
/usr/lib/libtree-sitter-markdown-inline.so will be re-written try calling the
method tree_sitter_markdown_inline()
1 month ago
fix timezone in test_git_commit_range
1 month ago
make screenshot slightly larger
1 month ago
cleanup home page a bit
1 month ago
Replace capnp with tarpc

This replaces the capnp RPC implementation with tarpc. Tarpc requires far less
boilerplate and simplifies the codebase considerably.
2 months ago
move main ayllu binary into subcrate
2 months ago
bump versions
2 months ago
rm gitbug entirely from the project

Gitbug is an awesome project that has a lot of promise however it doesn't fit
well with Ayllu since it has no Rust library and it uses a Go based key value
store on the file system which cannot be interoperated with.
3 months ago
fix stylesheet with watch.sh
3 months ago
appease all clippy wisdom
3 months ago
change from_str -> read in config loader
3 months ago
clippy --fix
3 months ago
fix watch.sh escaping
3 months ago
use a standard git global config for test helper

This adds a basic global git config to avoid conflicting with the testing
user's gitconfig e.g. attempting to GPG sign test commits.
3 months ago
simplify a few helper scripts
3 months ago
content & style updates
3 months ago
add option to tee build output for debugging purposes

ayllu-build evaluate now supports a --tee-output flag which will write the
executor output to the caller's stdout/stderr for debugging purposes.
3 months ago
update ayllu-build to use derive based clap
3 months ago
add test to validate sample configuration
3 months ago
restore commit order for firehose
4 months ago
do not generate summary pages with no content

RSS feeds no longer will generate a summary item if no activities happened
within the timeframe.
4 months ago
make rss ttl fixed and configurable

This lets the user specify the TTL in the RSS response by the server.
Additionally the tests have been refactored to use a fixed timestamp instead
of being based on the current time. This was needed because two sequential
commits at the same second will cause the tests to periodically fail since
epoch times will overlap.
4 months ago
rm unused link
4 months ago
only show bugs page when gitbug support enabled
4 months ago
manually escape code without syntax highlighting
4 months ago
move list lookup into separate rpc method
4 months ago
fix regression in error handler

This fixes a regression I introduced into the error handler, it also
simplifies what was a very confusing design.
4 months ago
add systemd sockets
4 months ago
update systemd contrib files
4 months ago
normalize paths with trailing slash
4 months ago
restore logging functionality; bump tower-http
4 months ago
upgrade axum to the latest version
4 months ago
add support for exporting via mbox
4 months ago
add patch support with highlighting, misc mail updates
4 months ago
flatten out navigation, more mail progress
4 months ago
flesh out more mail integration
4 months ago
make ayllu-mail cli derive based; add complete subcommand
4 months ago
make ayllu-mail more declarative
4 months ago
flatten out discussion pages
4 months ago
rm unused code
4 months ago
add missing guid for summary items in rss
4 months ago
bump sqlite dependency
4 months ago
use hypens in binary packages
4 months ago
rm highlighting
4 months ago
rm packaging
4 months ago
improve refs ui and navigation

The refs page for both tags and branches was confusing to look at and linked
directly to commits instead of /tree/$ref. This change cleans up the UI/UX and
fixes the links.
4 months ago
appease clippy
4 months ago
simplify build script
4 months ago
apply much overdue formatting
4 months ago
restore existing extensions to a working state
4 months ago
refactor rss to rely on timeframes instead of ttl

Previously the RSS summary page was relying on the TTL field of the feed for
clients however TTL is not widely supported. This refactors the summary page
to show the previous day, week, or month and roll over at a fixed interval.

Additionally this fixes an issue with Wrapper.commit_range returning the wrong
results.
4 months ago
reduce code duplication in rss feeds, add new tests
4 months ago
improve test coverage for rss feeds
4 months ago
refactor git test helper to use shell scripts
4 months ago
refactor test repo creation into a struct
4 months ago
update installation docs
4 months ago
fix broken archive link
4 months ago
improve language detection heuristics & general syntax highlighting

Language detection and syntax highlighting has now been generally refactored
and improved to include the support of shebang lines and highlighting specific
files e.g. .bashrc
5 months ago
update tokeignore
5 months ago
fix git_dir detection for bare repos
5 months ago
various documentation updates
5 months ago
fix regression introduced with jobs commands, improve is_git_dir detection
5 months ago
several improvements for packaging, docs, & tree-sitter architecture

This change includes various quality of life updates when installing Ayllu on
a clean system. Notably the ability to generate a template config file,
validate it, and improve config related error messages.

This change also contains a major overhaul for tree-sitter support:

* prefer packaged parsers on various Linux distributions
* allow overriding individual syntax queries
* support language injection / "local" queries in tree-sitter
* add the ability to support custom parsers and programming languages

Language detection also has a few changes:

* ability to change language colors
* ability to update/override extensions for language detection
5 months ago
update docs and readme
5 months ago
increase toc font size
5 months ago
clean up documentation style
5 months ago
Rewrite main command line configuration option parser

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
working local support for ayllu-builder

This change adds basic functional support for running ayllu-build locally.
Still have a way to go for the finishing the complete system and exposing it
in the web interface. Currently all parallelism is disabled while I get a
functioning prototype.
5 months ago
avoid panic when serving static content; fix default static paths

This fixes a panic that started occuring when I added the /docs page to the
Ayllu home page due to crates/git attempting to read all paths as blobs when
serving static assets. Additionally the following logic was added for how the
static server should attempt to load content.

The server will try the following paths:

GET /fuu
GET /fuu/index.html
GET /fuu/index.htm
GET /fuu.html
GET /fuu.htm
5 months ago
add some basic documentation