Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
422af93
update container build automation for new branching model
MoralCode Jun 25, 2025
ccfc861
remove dev, add release as branches to run jobs on push
MoralCode Jun 25, 2025
fe56e69
remove automerge workflow
MoralCode Jun 25, 2025
bb57a7a
update branch name in checks.yml
MoralCode Jun 25, 2025
5e5f70f
update comments in build_docker workflow
MoralCode Jun 25, 2025
641db32
Initial conversion of main augur package to uv
JohnStrunk Apr 29, 2025
ba8f342
Add dependencies for sub-packages into main pyproject.toml
JohnStrunk Apr 29, 2025
36fc563
Update docker build for uv
JohnStrunk May 5, 2025
1fd74e5
Add uv-lock job
JohnStrunk May 5, 2025
fbb61ab
Fix documention build on RTD
JohnStrunk May 5, 2025
9c3087f
Update documentation for using uv
JohnStrunk May 28, 2025
a45dff9
Push the keyman container image
JohnStrunk Jun 16, 2025
bc5bb74
Add macOS test job
JohnStrunk Jun 30, 2025
68431f1
Upgrade xgboost to 3.0.2
JohnStrunk Jun 30, 2025
0f12451
Constrain graphql-server-core>1.1.1
JohnStrunk Jul 1, 2025
6974aa5
Merge pull request #3200 from MoralCode/update-build-rules
sgoggins Jul 1, 2025
1f683ee
Update nginx-configuration.rst
sgoggins Jul 2, 2025
bc51a81
Update server-deployment.rst
sgoggins Jul 2, 2025
9aa9b43
Update collecting-data.rst
sgoggins Jul 2, 2025
f8adc95
Update backend.rst
sgoggins Jul 2, 2025
195a7c0
Update backend.rst
sgoggins Jul 2, 2025
4a12816
Update dev-osx-install.rst
sgoggins Jul 2, 2025
6e4ab16
Update new-install.rst
sgoggins Jul 2, 2025
3ab3029
Merge pull request #3202 from JohnStrunk/uv-try2
sgoggins Jul 2, 2025
cf69b9e
Merge pull request #3204 from JohnStrunk/push-keyman2
sgoggins Jul 2, 2025
cb449d2
update docs refs in CONTRIBUTING
MoralCode Jun 25, 2025
43f07d2
update badges
MoralCode Jun 25, 2025
b3656b7
update some branch names
MoralCode Jun 25, 2025
c00361d
add an outline for a procedures section of the docs
MoralCode Jun 27, 2025
8e2d430
first pass at content for releases procedure document
MoralCode Jun 27, 2025
f15eb3f
Second pass
MoralCode Jun 27, 2025
706e5dc
Fix warnings/errors in docs
JohnStrunk May 27, 2025
a20aa69
Add docs check
JohnStrunk Jun 11, 2025
8acb61c
Fix trailing whitespace
JohnStrunk Jun 11, 2025
e9b8cdf
Remove duplicate readthedocs config
JohnStrunk Jul 2, 2025
5c151b6
Adapt copy permissions to work with podman
MoralCode Jul 2, 2025
1b78d93
no need to mount files into the container that we are going to copy i…
MoralCode Jul 2, 2025
01a938b
limit perms so they only change the directories just copied to avoid …
MoralCode Jul 2, 2025
f54e814
Merge pull request #3210 from JohnStrunk/rtd-config
sgoggins Jul 7, 2025
f8a542c
Update creating-releases.rst
sgoggins Jul 7, 2025
c6ea7ff
Update creating-releases.rst
sgoggins Jul 7, 2025
53f7396
Update login response example to use json5 format
JohnStrunk Jul 7, 2025
4e64a17
Merge pull request #3203 from JohnStrunk/docs-try2
sgoggins Jul 7, 2025
725e5ea
Merge branch 'main' into branching-docs-update
sgoggins Jul 7, 2025
2bb6c4d
Merge pull request #3201 from MoralCode/branching-docs-update
sgoggins Jul 7, 2025
f3407d1
Merge pull request #3211 from MoralCode/container-cleanup
sgoggins Jul 7, 2025
6ea59d3
add podman copy of the E2E test
MoralCode Jul 7, 2025
f0e228b
enable cache of intermediate layers during the build process
MoralCode Jul 7, 2025
b6cd049
attempt to clean files from the base image per online advice
MoralCode Jul 7, 2025
17c6d2b
improve retrieval of repo_info from args
ABrain7710 Jul 8, 2025
9c462c4
extract out diff_refs and author assignment to make it clearer which …
ABrain7710 Jul 8, 2025
6fa8c01
handle NoneType exception
ABrain7710 Jul 8, 2025
4f38278
fix: need self so it must be in the class
ABrain7710 Jul 8, 2025
91189cb
Remove redis connection from top level
ABrain7710 Jul 8, 2025
65cb378
start podman socket
MoralCode Jul 8, 2025
93cb8e9
Update KeyClient.py
sgoggins Jul 8, 2025
e0eb110
assign connection at top level since docker orchestrator can't access…
ABrain7710 Jul 8, 2025
5567bbd
Merge pull request #3218 from chaoss/redis-conn
sgoggins Jul 8, 2025
9bc4b01
Merge pull request #3217 from chaoss/gitlab-mr-fixes
sgoggins Jul 8, 2025
cf66b77
Merge pull request #3216 from MoralCode/podman-CI
sgoggins Jul 8, 2025
a68e7cb
fixing make clean to preserve uv.lock
sgoggins Jul 8, 2025
2f4b847
Merge pull request #3219 from chaoss/uvlock-fix
sgoggins Jul 8, 2025
ad86531
determine whether to reset logs via a new AUGUR_RESET_LOGS environmen…
MoralCode Jul 9, 2025
00505ce
Allow DB connection specification via components
JohnStrunk Jun 27, 2025
2a5793e
Adjust globbing for gunicorn template reload so its limited to the au…
MoralCode Jul 9, 2025
bbda221
surround the template/hot reload config in a check for the AUGUR_DEV …
MoralCode Jul 9, 2025
45d03f2
Merge pull request #3222 from JohnStrunk/db-var
sgoggins Jul 10, 2025
eaa2fb9
Merge pull request #3220 from MoralCode/unused-glob
sgoggins Jul 10, 2025
161cf06
removed junk
sgoggins Jul 10, 2025
08515de
Add an exception case for handling 410 Gone when making requests to g…
MoralCode Jul 2, 2025
04ef1ef
include ResourceGoneException as one that should be ignored during a …
MoralCode Jul 9, 2025
99a8223
Add docs to _decide_retry_policy
MoralCode Jul 9, 2025
cca041d
Merge pull request #3221 from MoralCode/reset-logs-var
sgoggins Jul 11, 2025
537df45
Address warnings from linter
MoralCode Jul 11, 2025
bb8b08c
Merge pull request #3223 from chaoss/root-cleanup
MoralCode Jul 11, 2025
d3d1ef4
Update entrypoint.sh construction of AUGUR_DB from env vars
JohnStrunk Jul 11, 2025
e4f10e1
fix missing docker -> podman in podman CI job
MoralCode Jul 14, 2025
d8f32ac
Merge pull request #3224 from chaoss/lint-fix
sgoggins Jul 14, 2025
06d0c7a
Merge pull request #3226 from JohnStrunk/fix-db-var
sgoggins Jul 14, 2025
efae939
Merge pull request #3227 from MoralCode/podman-CI-typo
sgoggins Jul 14, 2025
dc17a8f
Merge pull request #3208 from MoralCode/disabled-issues-410
sgoggins Jul 14, 2025
08aeca4
use check_output for git log
MoralCode Jul 17, 2025
df4aeb9
correct docs links in error messages relating to keys
MoralCode Jul 18, 2025
78cacb1
another main -> dev from RTD
MoralCode Jul 18, 2025
1190187
Merge pull request #3232 from MoralCode/hang
sgoggins Jul 18, 2025
9447562
Merge pull request #3233 from MoralCode/fix-docs-links
sgoggins Jul 18, 2025
c45d53b
Fix variable name in _decide_retry_policy
MoralCode Jul 19, 2025
07b20f7
Merge pull request #3235 from chaoss/github-api-fix
sgoggins Jul 23, 2025
69c1738
cache redis connection on first retrieval
Ulincsys Jul 24, 2025
7b7bdff
Merge pull request #3238 from chaoss/cache-redis-conn-details
sgoggins Jul 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 0 additions & 27 deletions .github/workflows/auto_merge.yml

This file was deleted.

164 changes: 158 additions & 6 deletions .github/workflows/build_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
push:
branches:
- main
- dev
- release
pull_request:
release:
types:
Expand All @@ -13,8 +13,46 @@ on:
permissions: {}

jobs:
test-macos:
name: Test on macOS
runs-on: macos-latest
env:
UV_LOCKED: true # Assert that uv.lock is up-to-date
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"

- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "stable"

# We don't use `make install` because it requires user input
# Instead, we manually sync and run a subset of commands
- name: Install dependencies
run: uv sync --all-groups

- name: Install workers
run: uv run scripts/install/workers.sh dev

- name: Install nltk
run: |
uv run python -m nltk.downloader stopwords
uv run python -m nltk.downloader punkt
uv run python -m nltk.downloader popular
uv run python -m nltk.downloader universal_tagset


test-e2e:
name: End-to-end test
name: End-to-end test (Docker)
runs-on: ubuntu-latest
steps:
- name: Checkout repository
Expand Down Expand Up @@ -130,6 +168,121 @@ jobs:
# We use tail so that we can see the name of each file as it's printed
run: "docker run -t --rm -v augur_logs:/logs bash -c 'find /logs -type f | xargs tail -n +0'"

test-e2e-podman:
name: End-to-end test (Podman)
runs-on: ubuntu-latest
steps:
- name: Remove unnecessary files from the base image
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"

- name: Start Podman socket
run: systemctl --user start podman.socket

- name: Checkout repository
uses: actions/checkout@v4

- name: Build database container
uses: redhat-actions/buildah-build@v2
with:
context: .
containerfiles: |
./docker/database/Dockerfile
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_database:test
layers: true

- name: Build keyman container
uses: redhat-actions/buildah-build@v2
with:
context: .
containerfiles: |
./docker/keyman/Dockerfile
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_keyman:test
layers: true

- name: Build rabbitmq container
uses: redhat-actions/buildah-build@v2
with:
context: .
containerfiles: |
./docker/rabbitmq/Dockerfile
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_rabbitmq:test
layers: true

- name: Build backend container
uses: redhat-actions/buildah-build@v2
with:
context: .
containerfiles: |
./docker/backend/Dockerfile
platforms: linux/amd64
tags: ghcr.io/${{ github.repository_owner }}/augur_backend:test
layers: true

- name: Prepare compose file
run: |
yq eval -i '.services.augur.image = "ghcr.io/${{ github.repository_owner }}/augur_backend:test"' docker-compose.yml
yq eval -i '.services.augur.pull_policy = "never"' docker-compose.yml
yq eval -i '.services.augur.restart = "no"' docker-compose.yml

yq eval -i '.services.augur-db.image = "ghcr.io/${{ github.repository_owner }}/augur_database:test"' docker-compose.yml
yq eval -i '.services.augur-db.pull_policy = "never"' docker-compose.yml
yq eval -i '.services.augur-db.restart = "no"' docker-compose.yml

yq eval -i '.services.augur-keyman.image = "ghcr.io/${{ github.repository_owner }}/augur_keyman:test"' docker-compose.yml
yq eval -i '.services.augur-keyman.pull_policy = "never"' docker-compose.yml
yq eval -i '.services.augur-keyman.restart = "no"' docker-compose.yml

yq eval -i '.services.rabbitmq.image = "ghcr.io/${{ github.repository_owner }}/augur_rabbitmq:test"' docker-compose.yml
yq eval -i '.services.rabbitmq.pull_policy = "never"' docker-compose.yml
yq eval -i '.services.rabbitmq.restart = "no"' docker-compose.yml

- name: Setup Podman Compose
uses: webgtx/setup-podman-compose@v1

- name: Set up list of log lines to match
run: |
cat <<EOF > /tmp/regex_matches.txt
Gunicorn webserver started
Starting core worker processes
Starting secondary worker processes
Starting facade worker processes
Retrieved \\d+ github api keys for use
Fetching new repos \\(complete\\)
Inserting \\d+ contributors
Inserting \\d+ issues
Inserting prs of length: \\d+
Querying committers count
Done generating scc data for repo
Sending due task
EOF

- name: Start services & wait for output
# This starts the system and sends the output to "await_all.py" which
# scans for the regex matches from above. Once all matches are seen at
# least once, the `compose down` will run to shut down the system. If
# this all doesn't happen before the timeout, the job will fail.
run: |
podman compose -f docker-compose.yml up --no-build 2>&1 \
| (./scripts/ci/await_all.py /tmp/regex_matches.txt \
&& podman compose -f docker-compose.yml down)
timeout-minutes: 3
env:
AUGUR_GITHUB_API_KEY: ${{ secrets.GITHUB_TOKEN }}
AUGUR_GITHUB_USERNAME: ${{ github.repository_owner }}
AUGUR_GITLAB_API_KEY: dummy
AUGUR_GITLAB_USERNAME: dummy

- name: Dump logs
# Always run this step to get logs, even if the previous step fails
if: always()
# We use tail so that we can see the name of each file as it's printed
run: "podman run -t --rm -v augur_logs:/logs bash -c 'find /logs -type f | xargs tail -n +0'"



push-image:
Expand All @@ -145,6 +298,7 @@ jobs:
image:
- backend
- database
- keyman
- rabbitmq
runs-on: ubuntu-latest
steps:
Expand All @@ -157,7 +311,6 @@ jobs:

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
Expand All @@ -174,11 +327,10 @@ jobs:
labels: |
org.opencontainers.image.title=augur_${{ matrix.image}}
images: ghcr.io/${{ github.repository_owner }}/augur_${{ matrix.image }}
# Pushes to the dev branch update the *:devel-latest tag
# Pushes to the main branch update the *:devel-latest tag
# Releases update the *:latest tag and the *:<version> tag
# Main does not update any tags
tags: |
type=raw,value=devel-latest,enable=${{ github.ref == 'refs/heads/dev' }}
type=raw,value=devel-latest,enable=${{ github.ref == 'refs/heads/main' }}
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
type=raw,value=${{ github.event.release.tag_name }},enable=${{ github.event_name == 'release' }}

Expand Down
26 changes: 24 additions & 2 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
name: "run-linting-checks"
on:
pull_request:
branches: [main, dev]
branches: [main, release]

jobs:
check-docs:
name: runner / check docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: Ensure docs build cleanly
# Setting `O` to pass extra options to the sphinx-build command.
run: O="-a -E -n -W --keep-going" make docs

run-pylint:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
name: runner / pylint
permissions: write-all
runs-on: ubuntu-latest
Expand All @@ -28,4 +39,15 @@
uses: reviewdog/action-misspell@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
locale: "US"
locale: "US"

uv-lock:
name: runner / uv-lock
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v6
- name: Ensure uv lockfile is up to date
run: uv lock --check
Comment thread Dismissed
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,6 @@ target/
profile_default/
ipython_config.py

# pyenv
.python-version
.python-version-hash

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
Expand Down
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.11
15 changes: 8 additions & 7 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,15 @@

# Required
version: 2
build:
build:
os: ubuntu-22.04 # <- add this line
tools:
python: "3.10"
jobs:
post_create_environment:
# Use uv to create a requirements file that RTD can install
- pip install uv
- uv export --format requirements.txt --only-group docs -o requirements.txt

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand All @@ -24,12 +29,8 @@ formats: all
# Optionally set the version of Python and requirements required to build your docs
python:
install:
- method: pip
path: .
extra_requirements:
- dev
- method: setuptools
path: .
# Install the requirements file created during the post_create_environment job
- requirements: requirements.txt

# build:
# os: ubuntu-22.04
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ git push origin master
## Community Resources

### Augur
- [Stable documentation (`main` branch)](https://oss-augur.readthedocs.io/en/main/)
- [Nightly/developer build documentation (`dev` branch)](https://oss-augur.readthedocs.io/en/dev/) (warning: this is should be considered an unstable branch and should not be used for production)
- [Stable documentation (`release` branch)](https://oss-augur.readthedocs.io/en/release/)
- [Nightly/developer build documentation (`main` branch)](https://oss-augur.readthedocs.io/en/main/) (warning: this is should be considered an unstable branch and should not be used for production)
- [Live Augur demo](https://ai.chaoss.io)

### CHAOSS
Expand Down
22 changes: 15 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ default:
.PHONY: install
.PHONY: install-spdx install-spdx-sudo install-augur-sbom
.PHONY: clean rebuild
install:
@ ./scripts/install/install.sh dev
install: uv
@ uv run ./scripts/install/install.sh dev

wizard:
@ ./scripts/install/install.sh graphical
Expand All @@ -50,8 +50,8 @@ install-augur-sbom:
clean:
@ scripts/control/clean.sh

rebuild:
@ scripts/control/rebuild.sh dev
rebuild: uv
@ uv run scripts/control/rebuild.sh dev

#
# Development
Expand Down Expand Up @@ -124,12 +124,20 @@ test-api:
# @ bash -c 'tox -e ALL'


#
# UV installation
#
.PHONY: uv
uv:
@ command -v uv >/dev/null 2>&1 || { echo "Installing uv..."; pip install --user uv; }

#
# Documentation
#
.PHONY: docs docs-view
docs:
@ bash -c 'cd docs/ && rm -rf build/ && make html;'
docs: uv
-rm -rf docs/build
uv run --only-group docs make -C docs html

docs-view: docs
@ bash -c 'open docs/build/html/index.html'
Expand Down Expand Up @@ -184,4 +192,4 @@ docker-run-database:
docker-run-rabbitmq:
@ - docker stop augur_rabbitmq
@ - docker rm augur_rabbitmq
docker run -p 5434:5432 --name augur_rabbitmq augurlabs/augur:rabbitmq
docker run -p 5434:5432 --name augur_rabbitmq augurlabs/augur:rabbitmq
Loading
Loading