Files
Kapisi/roles/Foundation/README.md

52 lines
4.7 KiB
Markdown
Raw Normal View History

2020-10-08 16:33:19 -05:00
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.
2025-10-09 20:36:31 -05:00
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.
2020-10-08 16:33:19 -05:00
# Relevant Files and Software
2025-10-09 20:36:31 -05:00
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](file:///srv/foundation/) on Yggdrasil for the sake of the largest filesystem.
2020-10-08 16:33:19 -05:00
2025-10-09 20:36:31 -05:00
[WebServer](../WebServer) is configured to translate the repository to [https://foundation.aninix.net/](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.
2020-10-08 16:33:19 -05:00
2025-10-09 20:36:31 -05:00
New packages should make sure to refer to the [Development Best Practices](/AniNIX/Wiki/) to ensure they are compliant with standards; if you notice an issue with the Foundation's code, make sure to submit a [[QANs|QAN]]. [[TeamGreen|AniNIX::TeamGreen]] should be running regressions on these projects.
2020-10-08 16:33:19 -05:00
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
2025-10-09 20:36:31 -05:00
* 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.
2020-10-08 16:33:19 -05:00
* Mac: [https://git-scm.com/download/mac Go here]
Each package will need to be checked out individually.
# Equivalents or Competition
2025-10-21 14:04:09 -05:00
The most famous equivalent is [https://github.com](GitHub). 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.
2020-10-08 16:33:19 -05:00
# Additional Reference
Some core Git tools are leveraged in specific ways for the AniNIX.
## Config for Author
2025-10-21 14:04:09 -05:00
[We don't use SMTP.](/AniNIX/Wiki/issues/8) 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.
2020-10-08 16:33:19 -05:00
2025-10-21 14:04:09 -05:00
To do this, see [our encryption article](https://aninix.net/AniNIX/Wiki/src/branch/main/Articles/Getting_Started_With_Encryption.md#GPG_Keys).
2020-10-08 16:33:19 -05:00
2025-10-21 14:04:09 -05:00
## 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](/AniNIX/Uniglot)'s `uniglot-clone`. This will run pre-commit hooks to check your project.
2020-10-08 16:33:19 -05:00
## Branches for Functional Improvements
2025-10-21 14:04:09 -05:00
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.
2020-10-08 16:33:19 -05:00
## Filter-branch to Prune
2025-10-21 14:04:09 -05:00
Git maintains a history of all files. If you need to remove files permanently, GitHub maintains [an article](https://help.github.com/articles/removing-sensitive-data-from-a-repository/) on how to use `git filter-branch` to purge it.