Finally FOSS

Tracking source-available software as it transitions to open-source licenses.

Contributing

Finally FOSS is open to contributions. The easiest way to help is by adding or updating tracked projects.

Adding a new project

Create a new YAML file in _data/sources/ named org-repo.yml (e.g. hashicorp-terraform.yml) with the following structure:

name: org/repo
repo: https://github.com/org/repo
stars: 1000
ranges:
  - versions: ">= 1.0"
    original_license: BUSL-1.1
    oss_license: Apache-2.0
    delay_yrs: 4
    notes: "Optional context about the licensing."

Fields:

Field Required Description
name Yes org/repo identifier
repo Yes GitHub repository URL
stars No Approximate star count
ranges[] Yes One or more licensing windows
ranges[].versions No Gem::Requirement-style constraint (e.g. ">= 1.0, < 3.0"). Omit to match all versions.
ranges[].original_license Yes SPDX identifier of the source-available license
ranges[].oss_license Yes SPDX identifier of the target open-source license
ranges[].delay_yrs Yes Years until conversion
ranges[].notes No Additional context

Version constraints

Version constraints follow Gem::Requirement syntax:

If a project changed its license terms at different versions, add multiple ranges:

ranges:
  - versions: ">= 10.0.0, < 23.11.0"
    original_license: BUSL-1.1
    oss_license: Apache-2.0
    delay_yrs: 3
  - versions: ">= 23.11.0"
    original_license: FSL-1.1-ALv2
    oss_license: Apache-2.0
    delay_yrs: 2

Running locally

# Install Python dependencies
uv sync

# Fetch releases (requires GITHUB_TOKEN)
export GITHUB_TOKEN=ghp_...
uv run python src/main.py


# Build the Jekyll site
bundle exec jekyll serve -w

# This is a debug command
# List all tags for a specific repo
uv run python src/all-releases.py org/repo

Guidelines