The Foundation is a one-stop shop for source code from AniNIX developers -- it's an open repository form which people can pull source code and recreate the entities being used by the AniNIX. You can view its web frontend from [https://aninix.net/foundation this webpage].
Etymology
The etymology of the Foundation is twofold. First and foremost, the AniNIX attempts to automate any new package it is using as much as possible, and as such the Foundation holds the very basis on which the AniNIX is built.
Secondly, the Foundation is the third piece of the charity trinity for the AniNIX, along with the Wiki and the [https://aninix.net/pages/charity.php short-term charity projects]. The AniNIX puts a lot of time into designing its projects and making sure they work. Rather than forcing others to redo this work, we offer commented code and documentation so that the process is transparent but the work-by-hand is minimized.
Relevant Files and Software
The Git system was created by the Linux project to manage changes to the kernel and has been on the rise for some time among Version Control Systems (VCS's) with projects like GitHub. The AniNIX self-hosts the repositories in the Foundation server folder on Yggdrasil for the sake of the largest filesystem.
WebServer is configured to translate the repository to https://foundation.aninix.net/ via the Gitea package. AniNIX projects will live under that organization. Review the package list at that link and identify the source packages you want to use. The UI will tell you how to copy the link to clone.
New packages should make sure to refer to the Development Best Practices to ensure they are compliant with standards; if you notice an issue with the Foundation's code, make sure to submit a QANs. TeamGreen should be running regressions on these projects.
You can use [https://aur.archlinux.org/packages/hexedit-advanced-search/ Hexedit] to edit [file:///usr/share/webapps/cgit/cgit.cgi cgit.cgi] to have a different name, such as "AniNIX::Foundation Web".
Dependencies
Note: We used to declare the INSTALLER variable at the top of Makefiles, but no longer do. Non-ShadowArch installs should double check dependencies against the PKGBUILD files manually. We will try to keep this list short.
Available Clients
To get a client to access the Foundation, use one of the following or visit
- ArchLinux: pacman -S git
- Ubuntu: apt-get install git
- RHEL/CentOS: yum install git
- Windows: [https://git-scm.com/download/win Git-Bash] is the recommended client.
- Please be aware that file paths and such are coded for Linux. Windows users will need to conduct extensive code review to install these packages.
- Users are also strongly recommended to install [https://www.gpg4win.org/index.html gpg4win] in order to sign commits with their GPG key.
- Mac: [https://git-scm.com/download/mac Go here]
Each package will need to be checked out individually.
Equivalents or Competition
The most famous equivalent is https://github.com. Other source code control systems exist, including some provided by employers or academic institutions -- GitLab provides an enterprise-style implementation. Other protocol implementations vary widely -- Mercurial, Bazaar, and SVN are other revision control systems others use. We appreciate the flexibility of Git.
Additional Reference
Some core Git tools are leveraged in specific ways for the AniNIX.
Config for Author
We don't use SMTP. We recommend GPG keys be created with your IRC address included, in the format ircs://aninix.net:6697/$username
. This will throw some complaints if your project gets mirrored to GitHub, as GitHub wants your key to be verified through email, but within our ecosystem the commits will be verified.
To do this, see our encryption article.
Development Standards
If you are developing projects for the AniNIX organization or want to use our standards, ensure that the project is cloned with AniNIX/Uniglot's uniglot-clone
. This will run pre-commit hooks to check your project.
Branches for Functional Improvements
All major functional improvements being worked should be tracked in a branch. The branch name should be linked to the issue for which the branch was started or the functional concept's shortname.
Filter-branch to Prune
Git maintains a history of all files. If you need to remove files permanently, GitHub maintains an article on how to use git filter-branch
to purge it.