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

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

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