-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Archive variants #52
base: develop
Are you sure you want to change the base?
Conversation
902b2b6
to
28e6048
Compare
Add extra archive variants such as docs-only and source-only. These variants can reduce expenses with JFrog download bandwidth, provide users with archives that are simpler to use, and provide docs-only archives for the website. The MakeBoostDistro.py script includes parameters to determine what types of files should be included in the distribution. All other functions are adapted to handle these requirements accordingly. fix boostorg#50
28e6048
to
1f7827c
Compare
@sdarwin Should we start iterating on this again? |
For each of the new archives (docs-only and source-only) run a recursive diff
|
The really interesting variant is source-only. In terms of the website, I don't believe it's worth the complexity to have a docs-only bundle, because cloud storage is not expensive, a few dollars, and by continuing to use the "full" archives it provides redundancy and simplicity. The web files are full backup copies of each releases. Docs-only is around 30% smaller. However, generating and uploading packages with both FULL and DOCS-ONLY (two packages instead of one) increases the total storage size! That's worse, not better. It also increases the amount of code to debug and maintain. Almost nobody would need to download a docs-only bundle, and if they did, the full archive serves the purpose. I propose commenting out the functionality of docs-only. Don't generate such an archive. Otherwise, make an argument for why docs-only should be kept. In terms of source-only, how about these other choices.
or
Consider other folders such as test/ and example/. In those cases, "code" remains, but anything that isn't code such as txt, tar, json, README files are gone. That means the examples and the tests are probably 50% broken. Who is going to try to use examples/ or tests/ when files are missing? Leaving things in a half-way useless state isn't helpful. At that point, why not go even further. Either have all tests/, or no tests/. But not broken tests where some critical .json files are missing so the tests won't run. Another option is what Peter has started doing in Github Releases. boost-1.85.0.beta1-b2-nodocs.tar.gz. The What are viable options that could be published with minimal controversy or confusion to end-users. And continue to work as expected. A simple story/explanation and also be useful to the developer.
or
or
or
There could be a case to be made for a "source-only" (option 2) and a "minimal" (option 3), although having multiple choices adds complexity. If we agree about a strategy then I could send a message to the mailing list asking for their feedback. No rush, let's think about it. |
I agree. I think Peter asked for it after I did the source-only.
Users always need b2 from tools. Libs contains the source files so we also need it.
Mmmm... IIRC, I think it does that because Jamfiles outside doc refer to this doc file and things break. On the other hand, I think I did remove the tests from the release somehow (I don't remember if that's still in the source-only variant). The reason I wanted to remove test was because it was an extreme case. One or two libraries contain tests that take most of the space in the whole release. I'll look at the release again with something like wiztree.
I think the main problem here was Jamfiles referencing these folders which breaks the build process when they don't exist. I think I'll try to come up with a script that works directly on top of the release from the website to filter these files. Then we can experiment more easily with it.
Yes. That's nice but I was looking for something more extreme. Like the complete thing being around 20MB. That would be nice even in CI because you could just download everything instead of going through depinst.py.
Yes. The steps you proposed are a good idea. I'll do some more experiments locally. I can work on the filters then try to build everything with b2 and keep doing that to ensure nothing breaks. |
Add extra archive variants such as docs-only and source-only. These variants can reduce expenses with JFrog download bandwidth, provide users with archives that are simpler to use, and provide docs-only archives for the website.
The MakeBoostDistro.py script includes parameters to determine what types of files should be included in the distribution. All other functions are adapted to handle these requirements accordingly.
fix #50