fix colors on light color schemes
tighten up margins on index page
clean up commit message; fix watch.sh
fix base image now that sassc is unused
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/
parameterize multiuser container base image
remove mention of tree-sitter-amalgamation
tree-sitter-amalgamation is no longer needed because distribution packaging
of tree-sitter parsers has improved.
update multiuser container to grant access to ayllu
various multiuser container fixes; explicitly set socket perms
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.
add ping api route for container healthchecks
automatically run migrations at server startup
add documentation for running via podman
update container for root user
add fonts to base container for plotters.rs
update base container with git and basic .gitconfig
update migrations path default and make it configurable
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.
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
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.
use thiserror in web2/error.rs
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.
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.
actually remove stylesheets
rm mistakenly added compiled css
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()
fix timezone in test_git_commit_range
make screenshot slightly larger
Replace capnp with tarpc
This replaces the capnp RPC implementation with tarpc. Tarpc requires far less
boilerplate and simplifies the codebase considerably.
move main ayllu binary into subcrate
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.
fix stylesheet with watch.sh
appease all clippy wisdom
change from_str -> read in config loader
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.
simplify a few helper scripts
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.
update ayllu-build to use derive based clap
add test to validate sample configuration
restore commit order for firehose
do not generate summary pages with no content
RSS feeds no longer will generate a summary item if no activities happened
within the timeframe.
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.
only show bugs page when gitbug support enabled
manually escape code without syntax highlighting
move list lookup into separate rpc method
fix regression in error handler
This fixes a regression I introduced into the error handler, it also
simplifies what was a very confusing design.
update systemd contrib files
normalize paths with trailing slash
restore logging functionality; bump tower-http
upgrade axum to the latest version
add support for exporting via mbox
add patch support with highlighting, misc mail updates
flatten out navigation, more mail progress
flesh out more mail integration
make ayllu-mail cli derive based; add complete subcommand
make ayllu-mail more declarative
flatten out discussion pages
add missing guid for summary items in rss
use hypens in binary packages
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.
apply much overdue formatting
restore existing extensions to a working state
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.
reduce code duplication in rss feeds, add new tests
improve test coverage for rss feeds
refactor git test helper to use shell scripts
refactor test repo creation into a struct
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
fix git_dir detection for bare repos
various documentation updates
fix regression introduced with jobs commands, improve is_git_dir detection
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
clean up documentation style
Rewrite main command line configuration option parser
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
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.
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
add some basic documentation