Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
2f6d4c6
FECFILE-2913: If we delete the first_created_schedule_a, set it back …
danguyf Feb 27, 2026
229e7f6
FECFILE-2913: Generalize which transaction is saved, add LONG_CHAINS …
danguyf Feb 27, 2026
567b284
FECFILE-2913: Missed one.
danguyf Feb 27, 2026
11205bf
FECFILE-2913: Make LONG_CHAINS an env var.
danguyf Feb 27, 2026
e37ebd1
FECFILE-2913: Comment LONG_CHAINS for clarity.
danguyf Feb 27, 2026
038ac19
FECFILE-2734: Squashing All The Migrations.
danguyf Mar 9, 2026
99e68cf
FECFILE-2734: Linting and SQL clarity.
danguyf Mar 9, 2026
096cd56
FECFILE-2734: Fixed committee_accounts dependecy post-squash.
danguyf Mar 10, 2026
b44085b
FECFILE-2734: Fixed other committee_accounts dependecy post-squash.
danguyf Mar 10, 2026
b51b881
FECFILE-2734: Surely the last broken dependency.
danguyf Mar 10, 2026
d0830ae
FECFILE-2734: Simplify big RunSQL blocks.
danguyf Mar 10, 2026
d824dac
FECFILE-2734: Inline functions from squashed migrations.
danguyf Mar 10, 2026
dff1b67
FECFILE-2734: Adding IgnoreMigrations() as needed with great reluctance.
danguyf Mar 10, 2026
ebbce8b
FECFILE-2734: Removed the last old comment block.
danguyf Mar 10, 2026
fadd65a
FECFILE-2734: Renamed some migrations for sanity.
danguyf Mar 10, 2026
bc5ec72
FECFILE-2734: Refactoring away changes into initial state.
danguyf Mar 10, 2026
b04fd60
FECFILE-2734: Squashed no-op migrations.
danguyf Mar 10, 2026
2375bad
FECFILE-2734: Rearranging lines to shrink diff.
danguyf Mar 11, 2026
3a148ee
FECFILE-2734: Rearranging lines to shrink diff (part two).
danguyf Mar 11, 2026
0e62943
FECFILE-2734: Refactored transaction squashed migration to remove mig…
danguyf Mar 11, 2026
088ca60
FECFILE-2734: Further manually pruned and squashed no-ops and reverse…
danguyf Mar 12, 2026
90db06f
FECFILE-2913: Revised comments to add clarity.
danguyf Mar 16, 2026
f87e306
FECFILE-2913: Linted revised comments.
danguyf Mar 16, 2026
23be10c
Create disable and enable committee account commands. Update activate…
Mar 17, 2026
e2cf9c6
Merge pull request #1929 from fecgov/feature/2734-squash_migrations
lbeaufort Mar 19, 2026
92328b3
Merge pull request #1931 from fecgov/feature/2913-locust-transaction_…
lbeaufort Mar 19, 2026
2d5ffd8
FECFILE-2734: Updated web_services migration 0004 dependency post-squ…
danguyf Mar 19, 2026
19f0b8a
Merge pull request #1937 from fecgov/path/2734-new_missed_migration
danguyf Mar 19, 2026
489d75f
Update PyJWT
lbeaufort Mar 19, 2026
10d0bc1
Update Django to 5.2.12
lbeaufort Mar 20, 2026
518a611
Merge pull request #1940 from fecgov/feature/2961-update-pyjwt
lbeaufort Mar 20, 2026
c7292d8
Merge pull request #1941 from fecgov/feature/2938-django-upgrade
lbeaufort Mar 20, 2026
5b64778
Updated python to 3.13
max-zaremba-tcg Mar 20, 2026
f24c502
Update fecfile-validate hash
Mar 20, 2026
d2b37e1
Removes the can_unamend triggers and their associated db functions an…
Elaine-Krauss-TCG Mar 23, 2026
d11133a
Merge pull request #1943 from fecgov/feature/2960
lbeaufort Mar 23, 2026
a0c6e7a
Updated Dockerfile
max-zaremba-tcg Mar 23, 2026
28fbb39
Merge branch 'develop' into feature/2496
Mar 23, 2026
43bf41f
Merge pull request #1942 from fecgov/feature/2943
lbeaufort Mar 23, 2026
cdc80b5
Make disabled a property for committee_accounts
Mar 23, 2026
7de5531
optimize API test duration
sVmsepi0l Mar 24, 2026
b8a50b2
Adds a signal receiver to handle the m2m_changed signal for report_tr…
Elaine-Krauss-TCG Mar 24, 2026
ecc200b
Removes the new ReportTransactionManager which is now redundant
Elaine-Krauss-TCG Mar 24, 2026
636e9c5
Removes the manual setting of can_unamend in transaction creation sin…
Elaine-Krauss-TCG Mar 24, 2026
b46f845
Updates unit tests to be more consistent with behavior in the api
Elaine-Krauss-TCG Mar 24, 2026
5f3a205
Restores the report models.py file to develop
Elaine-Krauss-TCG Mar 24, 2026
2ab5a88
Reseting can_unamend in delete() is also now redundant
Elaine-Krauss-TCG Mar 24, 2026
100b19e
Drop unused functions
Mar 24, 2026
bef8a9e
reusable command for caching unified requirements
sVmsepi0l Mar 24, 2026
8549fd9
reusable commands for unified-requirements-cache & check-env-vars
sVmsepi0l Mar 24, 2026
5efa740
Merge pull request #1945 from fecgov/feature/2939-test-duration
sVmsepi0l Mar 24, 2026
5d6841d
Merge pull request #1934 from fecgov/feature/2496
toddlees Mar 25, 2026
730d36e
Moves ReportTransaction creation override to the model
Elaine-Krauss-TCG Mar 25, 2026
c52cef1
Resets can_unamend on ReportTransaction deletion
Elaine-Krauss-TCG Mar 25, 2026
41cb3b0
Updates unit tests
Elaine-Krauss-TCG Mar 25, 2026
59864eb
Removes redundant can_unamend reset in the transaction model for the …
Elaine-Krauss-TCG Mar 25, 2026
f6345f1
Merge branch 'feature/2789b' into feature/2798
Elaine-Krauss-TCG Mar 25, 2026
8394852
Updates transaction saving (in the viewset) to ensure that ReportTran…
Elaine-Krauss-TCG Mar 25, 2026
e70ef76
Merge pull request #1946 from fecgov/feature/2957
sasha-dresden Mar 25, 2026
bfee941
All adding and removing of reports from a transaction is handled in t…
Elaine-Krauss-TCG Mar 25, 2026
2d156eb
set_reports uses reports.set() for efficiency and manually updates ca…
Elaine-Krauss-TCG Mar 25, 2026
f69b8aa
fixes a typo
Elaine-Krauss-TCG Mar 25, 2026
adb951a
Merge branch 'develop' into feature/2798
Elaine-Krauss-TCG Mar 25, 2026
9da708d
Update models.py for linting
Elaine-Krauss-TCG Mar 25, 2026
ff6f35b
Merge pull request #1944 from fecgov/feature/2798
toddlees Mar 26, 2026
b74923e
Update software name in .fec to FECfile+
lbeaufort Mar 27, 2026
b6fae66
Merge pull request #1960 from fecgov/2981-update-software-name
toddlees Mar 27, 2026
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
183 changes: 114 additions & 69 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,22 @@ version: 2.1
# See: https://circleci.com/docs/2.0/orb-intro/
orbs:
# See the orb documentation here: https://circleci.com/developer/orbs/orb/circleci/python
python: circleci/python@3.2.0
browser-tools: circleci/browser-tools@2.2.1
node: circleci/node@7.1.1
python: circleci/python@4.0.0
node: circleci/node@7.2.1

# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
test:
# These next lines defines a Docker executors: https://circleci.com/docs/2.0/executor-types/
# A list of available CircleCI Docker convenience images are available here: https://circleci.com/developer/images/image/cimg/python
docker:
- image: cimg/python:3.13-node
- image: cimg/postgres:14.13
- image: cimg/redis:6.2.6
commands:
unified-requirements-cache:
steps:
- run:
name: Create unified requirements so CircleCI can cache them
command: |
cd ~/project/
ls -l
cat requirements.txt > requirements-all.txt
echo >> requirements-all.txt # blank in case new newline at end of requirements.txt
cat requirements-test.txt >> requirements-all.txt

check-env-vars:
steps:
- run:
name: Check for necessary environment variables
Expand All @@ -29,62 +31,37 @@ jobs:
FECFILE_FEC_WEBSITE_API_KEY
EOF
exit 0
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
test:
# These next lines defines a Docker executors: https://circleci.com/docs/2.0/executor-types/
# A list of available CircleCI Docker convenience images are available here: https://circleci.com/developer/images/image/cimg/python
docker:
- image: &python313_image cimg/python:3.13-node
- image: cimg/postgres:14.13
- image: cimg/redis:6.2.6
resource_class: large

steps:
- check-env-vars
- checkout:
method: full

- run:
name: Create unified requirements so CircleCI can cache them
command: |
cd ~/project/
ls -l
cat requirements.txt > requirements-all.txt
echo >> requirements-all.txt # blank in case new newline at end of requirements.txt
cat requirements-test.txt >> requirements-all.txt

- unified-requirements-cache
- python/install-packages:
pkg-manager: pip
app-dir: ~/project/
pip-dependency-file: requirements-all.txt

- run:
name: Load test database fixure
command: |
psql ${DATABASE_URL} < e2e-test-db.sql
working_directory: ~/project/db

- run:
name: Check for missing migrations
command: |
python manage.py makemigrations --check
working_directory: ~/project/django-backend/

- run:
name: Check for breaking change migrations
# After December 2024
command: |
python manage.py lintmigrations --git-commit-id d73068e23fc5b035af2b224b16d4726b7b20d67c --project-root-path '.'
working_directory: ~/project/django-backend/

- run:
name: Run migrations
command: |
python manage.py migrate --no-input --traceback --verbosity 3
name: Run tests
# Use built-in Django test module
command: coverage run --rcfile=.coveragerc manage.py test --parallel 4 --timing
working_directory: ~/project/django-backend/

- run:
name: Run lint
command: |
flake8 --config django-backend/.flake8

- run:
name: Run deptry
command: deptry ~/project/

- run:
name: Run tests
# Use built-in Django test module
command: coverage run --source='.' --rcfile=.coveragerc manage.py test
name: Combine coverage data
command: coverage combine --rcfile=.coveragerc
working_directory: ~/project/django-backend/

- run:
Expand Down Expand Up @@ -133,14 +110,84 @@ jobs:
SONARQUBE_SCANNER_PARAMS: '{"sonar.host.url":"https://sonarcloud.io"}'
- save_cache:
key: v1-sonarcloud-scanner-7.1.0.4889
paths: /tmp/cache/scanner
paths:
- /tmp/cache/scanner
- store_artifacts:
path: /tmp/sonar_report
destination: sonar_report

schema-checks:
docker:
- image: *python313_image
- image: cimg/postgres:14.13
- image: cimg/redis:6.2.6

steps:
- check-env-vars
- checkout:
method: full

- unified-requirements-cache
- python/install-packages:
pkg-manager: pip
app-dir: ~/project/
pip-dependency-file: requirements-all.txt

- run:
name: Check for missing migrations
command: |
python manage.py makemigrations --check
working_directory: ~/project/django-backend/

- run:
name: Check for breaking change migrations
# After December 2024
command: |
python manage.py lintmigrations --git-commit-id d73068e23fc5b035af2b224b16d4726b7b20d67c --project-root-path '.'
working_directory: ~/project/django-backend/

- run:
name: Run migrations
command: |
python manage.py migrate --no-input --traceback --verbosity 3
working_directory: ~/project/django-backend/

lint:
docker:
- image: *python313_image

steps:
- checkout
- unified-requirements-cache
- python/install-packages:
pkg-manager: pip
app-dir: ~/project/
pip-dependency-file: requirements-all.txt

- run:
name: Run lint
command: |
flake8 --config django-backend/.flake8

dependency-check:
docker:
- image: *python313_image

steps:
- checkout
- unified-requirements-cache
- python/install-packages:
pkg-manager: pip
app-dir: ~/project/
pip-dependency-file: requirements-all.txt

- run:
name: Run deptry
command: deptry ~/project/

deploy-job:
docker:
- image: cimg/python:3.13
- image: *python313_image

steps:
- checkout
Expand All @@ -164,20 +211,11 @@ jobs:

docs-build:
docker:
- image: cimg/python:3.13
- image: *python313_image

steps:
- checkout

- run:
name: Create unified requirements so CircleCI can cache them
command: |
cd ~/project/
ls -l
cat requirements.txt > requirements-all.txt
echo >> requirements-all.txt # blank in case new newline at end of requirements.txt
cat requirements-test.txt >> requirements-all.txt

- unified-requirements-cache
- python/install-packages:
pkg-manager: pip
app-dir: ~/project/
Expand All @@ -190,7 +228,8 @@ jobs:

- persist_to_workspace:
root: ~/project/docs/_build
paths: html
paths:
- html

docs-deploy:
docker:
Expand Down Expand Up @@ -244,6 +283,9 @@ jobs:
workflows:
primary: # This is the name of the workflow, feel free to change it to better match your workflow.
jobs:
- lint
- dependency-check
- schema-checks
- test
# This job is triggered whenever a commit is made to the dev/stage/test/prod branches.
# It kicks off the e2e-test pipeline in the fecfile-web-app project.
Expand All @@ -253,6 +295,9 @@ workflows:
only: /develop|release\/sprint-[\.\d]+|release\/test|main/
- deploy-job:
requires:
- lint
- dependency-check
- schema-checks
- test
filters:
branches:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12
FROM python:3.13
ENV PYTHONUNBUFFERED=1

RUN mkdir /opt/nxg_fec
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile-e2e
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12
FROM python:3.13
ENV PYTHONUNBUFFERED=1

RUN mkdir /opt/nxg_fec_e2e
Expand Down
2 changes: 1 addition & 1 deletion Scheduler_Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12
FROM python:3.13
ENV PYTHONUNBUFFERED=1

RUN mkdir /opt/nxg_fec
Expand Down
2 changes: 1 addition & 1 deletion Worker_Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12
FROM python:3.13
ENV PYTHONUNBUFFERED=1

RUN mkdir /opt/nxg_fec
Expand Down
2 changes: 1 addition & 1 deletion Worker_Dockerfile-e2e
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12
FROM python:3.13
ENV PYTHONUNBUFFERED=1

RUN mkdir /opt/nxg_fec_e2e
Expand Down
3 changes: 3 additions & 0 deletions django-backend/.coveragerc
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# .coveragerc to control coverage.py
# https://coverage.readthedocs.io/en/coverage-4.3.3/source.html#execution
[run]
source = .
parallel = True
concurrency = multiprocessing
omit =
# Excluding dev scripts from code coverage
./scripts/json_schema_to_django_model.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
# Generated by Django 4.2.7 on 2024-01-16 20:15
# Generated by Django 5.2.11 on 2026-03-06 21:37

from django.db import migrations, models
import django.db.models.deletion
import uuid


class Migration(migrations.Migration):

replaces = [
("cash_on_hand", "0001_initial"),
("cash_on_hand", "0002_alter_cashonhandyearly_cash_on_hand_and_more"),
]

initial = True

dependencies = [
("committee_accounts", "0001_initial"),
("committee_accounts", "0001_squashed_0007_alter_committeeaccount_members"),
]

operations = [
Expand All @@ -26,13 +32,8 @@ class Migration(migrations.Migration):
unique=True,
),
),
(
"cash_on_hand",
models.DecimalField(
blank=True, decimal_places=2, max_digits=11, null=True
),
),
("year", models.TextField(blank=True, null=True)),
("cash_on_hand", models.DecimalField(decimal_places=2, max_digits=11)),
("year", models.TextField()),
("created", models.DateTimeField(auto_now_add=True)),
("updated", models.DateTimeField(auto_now=True)),
(
Expand Down

This file was deleted.

Loading