boostorg / boostorg/release-tools

docs-only and source-only archives

Open
#50 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
6
Forks
25
Avg merge
3d 1h
Merged PRs (30d)
2

Description

@alandefreitas you had mentioned at some point the idea of creating docs-only and source-only archives for boost.

could you add that in release-tools?

@glenfe just informed us the jfrog downloads are taking 200TB of bandwidth per month.

Switching to source-only downloads would save $1000's per month.

These are the hosted bundles https://boostorg.jfrog.io/artifactory/main/
```
beta/ 07-Apr-2021 22:52 -
develop/ 07-Apr-2021 22:48 -
master/ 07-Apr-2021 22:44 -
release/ 07-Apr-2021 20:44 -
staging/ 04-Aug-2023 13:51 -
```

There are two places in release-tools where docs-only and source-only archives might be generated.

1. https://github.com/boostorg/release-tools/blob/develop/ci_boost_release.py
2. https://github.com/boostorg/release-tools/blob/develop/publish_release.py

There are pros and cons to having the logic in one or the other. Most of the complexity has usually been contained in `ci_boost_release.py` so that is the likely place. Create subdirectores in jfrog under master/ and develop/.

```
develop/boost_1_83_0-snapshot.tar.gz (keep the same for now)
develop/full/boost_1_83_0-snapshot.tar.gz
develop/docs/boost_1_83_0-docs-snapshot.tar.gz
develop/source/boost_1_83_0-snapshot.tar.gz

master/boost_1_83_0-snapshot.tar.gz (keep the same for now)
master/full/boost_1_83_0-snapshot.tar.gz
master/docs/boost_1_83_0-docs-snapshot.tar.gz
master/source/boost_1_83_0-snapshot.tar.gz
```

Arguably, the name of the snapshots should always stay the same, such as boost_1_83_0-snapshot.tar.gz , and the determining factor is the _directory_ where it is hosted. This makes it easier in other scripts which consume the archives, to simply switch the location (from full/ to source/) .

Possibly, the docs-only archive could have a `-docs `added to the name.

`ci_boost_release.py` generates and uploads the various snapshot to jfrog.

`publish_release.py` at the time of a release, downloads snapshots, renames them to release/1.83.0/source/boost_1_83_0.tar.gz, and uploads again.

```
release/1.83.0/source/
release/1.83.0/docs/
release/1.83.0/full/
```

Unfortunately, the current archives are using the name "source" already.

I was hoping the first iteration of this feature would publish to multiple folders, but somehow keep the current behavior for a short time, since the old website depends on /source/ actually being /full/.

Perhaps temporarily then:

```
release/1.83.0/source-only/
release/1.83.0/source/ (actually full)
release/1.83.0/docs/
release/1.83.0/full/
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading ci_boost_release.py and publish_release.py to trace how snapshots are generated, uploaded, downloaded, renamed, and republished. Compare the existing full/source paths with the proposed docs, source-only, and release directories, including the temporary compatibility behavior. Done means the archive variants are published in the required locations without breaking the existing website paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.