an invention by andreas-kupries
Project Description
Restart work on the vcs-plugged branch of Mirror Management.
Simplify the system and make it more robust. The project helps me making local backups of a large number of source repositories of interest.
For one the implementation of the github derivation of git repositories has issues, especially in the handling forks going away or coming back again.
For two network issues, be it disconnections, timeouts, etc. are not handled very well (pretty much not at all).
Goal for this Hackweek
Plan is to get back into the code base, document the existing architecture and its problems (main branch), revisit the work branch and its design, plan out necessary changes. Maybe manage to actually get some changes done.
Resources
This project is part of:
Hack Week 21
Activity
Comments
-
over 3 years ago by andreas-kupries | Reply
Status as of now
Better than I expected to reach. Timeline
- db migration, main and site
- mirror set renamed to project.
- updated cmdr spec, most commands
- several commands switch to take repos instead of projects
- completed the conversion of common vcs to call out to the backoffice code
- reworked repo, store, vcs handling for the new schema
- iterated over commands to check for issues and fix them
- previous not complete, see merge, split, web pages
- even so, the majority of the functionality looks to be working again
- especially add/update of repos, i.e. the core.
- and yet, still more testing needed to validate handling of issues with network and/or repo servers.
- issues should be more localised however, as access (especially to github) should now use smaller requests overall
- website, touch up of generated pages (lists, store details, new list of forks for > 5 forks of a repo)
- see TODO.md for general things outside of fixes
Similar Projects
go-git: unlocking SHA256-based repository cloning ahead of git v3 by pgomes
Description
The go-git library implements the git internals in pure Go, so that any Go application can handle not only Git repositories, but also lower-level primitives (e.g. packfiles, idxfiles, etc) without needing to shell out to the git binary.
The focus for this Hackweek is to fast track key improvements for the project ahead of the upstream release of Git V3, which may take place at some point next year.
Goals
- Add support for cloning SHA256 repositories.
- Decrease memory churn for very large repositories (e.g. Linux Kernel repository).
- Cut the first alpha version for
go-git/v6.
Stretch goals
- Review and update the official documentation.
- Optimise use of go-git in Fleet.
- Create RFC/example for go-git plugins to improve extensibility.
Resources
- https://github.com/go-git/go-git/
- https://go-git.github.io/docs/
Create a page with all devel:languages:perl packages and their versions by tinita
Description
Perl projects now live in git: https://src.opensuse.org/perl
It would be useful to have an easy way to check which version of which perl module is in devel:languages:perl. Also we have meta overrides and patches for various modules, and it would be good to have them at a central place, so it is easier to lookup, and we can share with other vendors.
I did some initial data dump here a while ago: https://github.com/perlpunk/cpan-meta
But I never had the time to automate this.
I can also use the data to check if there are necessary updates (currently it uses data from download.opensuse.org, so there is some delay and it depends on building).
Goals
- Have a script that updates a central repository (e.g.
https://src.opensuse.org/perl/_metadata) with metadata by looking at https://src.opensuse.org/perl/_ObsPrj (check if there are any changes from the last run) - Create a HTML page with the list of packages (use Javascript and some table library to make it easily searchable)
Resources
Mail client with mailing list workflow support in Rust by acervesato
Description
To create a mail user interface using Rust programming language, supporting mailing list patches workflow. I know, aerc is already there, but I would like to create something simpler, without integrated protocols. Just a plain user interface that is using some crates to read and create emails which are fetched and sent via external tools.
I already know Rust, but not the async support, which is needed in this case in order to handle events inside the mail folder and to send notifications.
Goals
- simple user interface in the style of
aerc, with some vim keybindings for motions and search - automatic run of external tools (like
mbsync) for checking emails - automatic run commands for notifications
- apply patch set from ML
- tree-sitter support with styles
Resources
- ratatui: user interface (https://ratatui.rs/)
- notify: folder watcher (https://docs.rs/notify/latest/notify/)
- mail-parser: parser for emails (https://crates.io/crates/mail-parser)
- mail-builder: create emails in proper format (https://docs.rs/mail-builder/latest/mail_builder/)
- patch: ML support (https://crates.io/crates/gitpatch)
- tree-sitter-rust: support for mail format (https://crates.io/crates/tree-sitter)