Fedeproxy¶
Fedeproxy is an online service to federate forges. The software projects hosted on one forge are synchronized in real time with their counterparts on other forges, via the W3C ActivityPub protocol. Developers can freely use the forge of their choosing while contributing to the same project. It operates independently from the forges and serves as an incubator with rapid prototyping to research the best user experience.
The project is in its experimental development stage and you can follow its progress on the forge where it is being worked on or by reading the monthly updates.
Hacking¶
Environment¶
direnv allow .
pip install pipenv
pipenv install –dev
pre-commit install
Workflow¶
Release management¶
Prepare the release notes
Prepare a new version
$ version=1.3.0
$ perl -pi -e "s/^version.*/version = $version/" setup.cfg
$ for i in 1 2 ; do
python setup.py sdist
amend=$(git log -1 --oneline | grep --quiet "version $version" && echo --amend)
git commit $amend -m "version $version" ChangeLog setup.cfg
git tag -a -f -m "version $version" $version
done
$ git push ; git push --tags
$ twine upload -s --username fedeproxy --password "$FEDEPROXY_PYPI_PASSWORD" dist/fedeproxy-$version.tar.gz
Release Notes¶
0.0.3¶
Implement nodeinfo protocol
0.0.2¶
Implement loading and saving issues to files
Define a format for issues, with json-schema validation and documentation
Add support for Mercurial in addition to Git
Implement project export in the fedeproxy domain
Define the fedeproxy domain
Reorganize the GitLab and Gitea clases to separate Issues and Projects
Allow actions to be performed by non-privileged users
User representation and implementation for Gitea and GitLab
GitLab export feature
0.0.1¶
Setup Gitea and GitLab instances in the CI
Integration tests
Interfaces and concrete implementation for Gitea, GitLab and git as a DVCS
Organize the codebase and separate the domain from the architecture