# Summary
Add a stage to the build process that sparse clones deps and puts them in the required places.
This should make it much easier to keep track of vendored deps, and similar.
Solves #5426 and helps makes progress towards #4825
This pr moves almost all thirdparty deps from being vendored to being added by the build process.
This pr should be deployed on test and some cgi scripts tested before merge, there is some possibility of issues. But it should be minimal.
One thing: we manually mention the versions of things in https://fsfe.org/about/js-licences
I think we could make this automatic perhaps?
This pr atm does make us dependent on our sources being online for full builds. This is common, but perhaps not acceptable for us?
We could instead do one of the following:
- cache downloaded repos outside of the website dir, so they survive a full rebuild
- make this script an updater script, so all deps are still vendored, but we have a nice script to update them. Not a big fan of this.
- Use nix to fetch all the deps. Now reliant on nixos org instead of github, significant barrier for new contributors.
- have a mirror of all the repos we use for builds on this git server. I kinda like this option, it leaves the most sensible and "normal" build process. Does not seem hard: https://docs.gitea.com/usage/repo-mirror
# State of deps
## Moved
- PHPmailer
- Bootstrap ( we were using different versions for the less and js. this is almost certainly A mistake, but I have kept it the same in this issue to minimize disruption, and will try and fix it later). Also we had some bootstrap js we do not use anywhere, we just have a small bit of custom bootstrap js, not the whole package.
- Lunr (could not get a minimized version from upstream repo, so we have lost minimization. Not very important as it is only used on search page)
- Jquery ( this can be dropped once we upgrade bootstrap, only used as a bootstrap dep)
## Could not move
- moderniser (I hope to drop this down the line, but we use a custom build of an old version that I could find no way to recreate/pull from their git repo. So I could not fetch it as a dep)
- the various xml files. These are incredibly static compared to everything else, so I did not bother.
- Fonts: they are often only available as release artifacts from some site, and so downloading them would massively complicate the dep script. I do not want to maintain a package manager, and so if we think that necessary I would advocate for nix. Also, some fonts are only available from google fonts which does not seem to expose versions. This would again be a problem to be solved with nix.
# Checklist
- [x] site looks correct locally
- [x] search works locally
- [x] no missing scripts using inspector locally
- [x] Deployed on test
Co-authored-by: Darragh Elliott <me@delliott.net>
Reviewed-on: #5512
Reviewed-by: tobiasd <tobiasd@fsfe.org>
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>
Remove (hopefully) unused js files.
Did a bunch of grepping for their use, and looked through the history as best I could to determine if they are needed.
Co-authored-by: Darragh Elliott <me@delliott.net>
Reviewed-on: #5513
Reviewed-by: tobiasd <tobiasd@fsfe.org>
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>
it is all minimized in bootstrap.min.js and bootstrap.custom.js
I am largely basing my belief that it is unused on the fact that
1. It looks like it is
2. I can find no mention or linking to it using `rg bootstrap/`. All matched entries are for other things
3. When I load the site and look in the console/debugger I see no errors associated with it.
Co-authored-by: Darragh Elliott <me@delliott.net>
Reviewed-on: #5398
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>
update docs
update nix-shell to auto install
rework custom pre-commit hooks to integrate better
add dockerfile for lefthook and integrate into drone
add some more hooks for formatting and linting some files
Co-authored-by: Darragh Elliott <me@delliott.net>
Reviewed-on: #5248
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>