Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
2c1e6a1
chore: add modules to requirements-testing.txt that are needed for te…
g1rly-c0d3r Jun 22, 2026
18c15fe
fix: expose specifyweb.settings to pytest-django
g1rly-c0d3r Jun 24, 2026
262a908
Merge branch 'main' of github.com:specify/specify7 into issue-8228
g1rly-c0d3r Jun 25, 2026
2d11cb0
Merge branch 'main' of github.com:specify/specify7 into issue-8228
g1rly-c0d3r Jun 26, 2026
cbb4d7f
Merge branch 'main' of github.com:specify/specify7 into issue-8228
g1rly-c0d3r Jul 7, 2026
cffe14e
added a new test
g1rly-c0d3r Jul 7, 2026
de8b58c
get meminfo
g1rly-c0d3r Jul 7, 2026
c8d1719
feat(meta): added a new github action to report on code coverage
g1rly-c0d3r Jul 8, 2026
25aca9a
Merge branch 'main' of github.com:specify/specify7 into issue-8264
g1rly-c0d3r Jul 8, 2026
66fe30b
fix: added required `runs-on` parameter
g1rly-c0d3r Jul 8, 2026
3e44a47
chore: fix if clause of setup job to trigger if a file was changed or…
g1rly-c0d3r Jul 8, 2026
c7337c5
fix: added a retention-days field so that the report does not linger
g1rly-c0d3r Jul 8, 2026
344799c
fix: removed doubly starting the docker container
g1rly-c0d3r Jul 8, 2026
27c5896
fix: changed secret name
g1rly-c0d3r Jul 8, 2026
2bfc8aa
fix: added dependancy to install list for coverage action
g1rly-c0d3r Jul 8, 2026
e868f94
temp: added debugging output
g1rly-c0d3r Jul 8, 2026
bccbd6f
fix: read ssh key from stdin
g1rly-c0d3r Jul 8, 2026
16e2a0a
chore: remove debugging output added in e868f94628a
g1rly-c0d3r Jul 8, 2026
c5804ac
chore: update readme to document new secret key
g1rly-c0d3r Jul 8, 2026
9ef2fcb
fix: terminate sed s-expression
g1rly-c0d3r Jul 8, 2026
aa25971
fix: allow discovery of run-coverage
g1rly-c0d3r Jul 8, 2026
f975f2c
fix: manually find the path to run-coverage
g1rly-c0d3r Jul 8, 2026
e14f0a9
fix: combine setup and run jobs so that they exist on the same VM
g1rly-c0d3r Jul 8, 2026
9a6f0bb
fix: dont change database name when configuring specify
g1rly-c0d3r Jul 9, 2026
fd96f57
chore: view logs of containers
g1rly-c0d3r Jul 10, 2026
ec71760
chore: debugging why mariadb is not accessable
g1rly-c0d3r Jul 10, 2026
e55e91f
chore: moving docker exec to the top
g1rly-c0d3r Jul 10, 2026
cd6df30
chore: check out docker ps
g1rly-c0d3r Jul 10, 2026
65ea138
chore: view stats
g1rly-c0d3r Jul 10, 2026
578b128
fix(trees): sync tree conformation with URL cache
grantfitzsimmons Jul 6, 2026
b3d8b9b
fix(trees): tree view initial sync
grantfitzsimmons Jul 6, 2026
2ff4a34
Script: "Add Django EOL checker script (fail if <180 days to EOL)"
CarolineDenis May 11, 2026
629a4f6
Github: Add github CI for EOL dependencies
CarolineDenis May 11, 2026
99345e4
Fix: Improve run time out handling
CarolineDenis May 11, 2026
8fff9ec
Test: Create pr comments when warning triggered
CarolineDenis May 11, 2026
fa482ef
Fix: Fix installation
CarolineDenis May 11, 2026
8115889
Fix: Add timeout
CarolineDenis May 11, 2026
6bd897e
Fix: Add timeout to CI
CarolineDenis May 11, 2026
608776b
Fix: Alignement
CarolineDenis May 11, 2026
e0773af
Fix: Handle backticks
CarolineDenis May 11, 2026
0a734d2
Comment
CarolineDenis May 11, 2026
e8c0147
Clean
CarolineDenis May 11, 2026
8eaafc3
Fix: test new install for dependecies
CarolineDenis May 11, 2026
eacface
Fix: Typo
CarolineDenis May 11, 2026
84328c9
Fix: Create or Update github action comment
CarolineDenis May 11, 2026
af0d0e9
Test
CarolineDenis May 11, 2026
c9544b3
Feat: Generalize EOL script
CarolineDenis May 12, 2026
9d32681
Fix: fix python version
CarolineDenis May 12, 2026
9eb047c
Feat: Combine github comments
CarolineDenis May 12, 2026
256c7cc
Fix: Indentation
CarolineDenis May 12, 2026
f89833d
Refactor: Allow expension of EOL tracking
CarolineDenis May 12, 2026
6b7457a
Fix: remove install
CarolineDenis May 12, 2026
20f804e
Fix: fix path
CarolineDenis May 12, 2026
459d299
Fix: Update imports
CarolineDenis May 12, 2026
4890ad7
Fix: Add init
CarolineDenis May 12, 2026
9260ff5
Update .github/workflows/test.yml
CarolineDenis May 13, 2026
2da603a
fix: apply CodeRabbit auto-fixes
coderabbitai[bot] May 13, 2026
c490002
Fix: Handle None dates
CarolineDenis May 13, 2026
ea2f299
Fix: Handle string and integer cycle
CarolineDenis May 13, 2026
4343142
Fix: handle failed request
CarolineDenis May 13, 2026
692d5fc
Fix: Improve regex
CarolineDenis May 13, 2026
928846c
Potential fix for pull request finding 'CodeQL / Empty except'
CarolineDenis Jul 7, 2026
fdd7a93
Potential fix for pull request finding 'CodeQL / Empty except'
CarolineDenis Jul 7, 2026
406a949
Potential fix for pull request finding 'CodeQL / Empty except'
CarolineDenis Jul 7, 2026
1141650
Potential fix for pull request finding 'CodeQL / Empty except'
CarolineDenis Jul 7, 2026
f6a9051
fix: use pass instead of continue in scanner
grantfitzsimmons Jul 8, 2026
6e23b61
fix: update about info
grantfitzsimmons Jul 8, 2026
0938216
chore: minor style adjustment
grantfitzsimmons Jul 8, 2026
aac284b
created a permit object
rijulpoudel Jul 7, 2026
7f80d03
[test]: saved + verify all fields persisted
rijulpoudel Jul 7, 2026
c553774
[test]: create mew issued by agent
rijulpoudel Jul 8, 2026
d324649
[test]: create mew issued to agent
rijulpoudel Jul 8, 2026
e5815c9
[test]: create permit with existing agent + new agents
rijulpoudel Jul 8, 2026
96c7aab
[test]: verify save + agent relationships
rijulpoudel Jul 8, 2026
653f11a
fix: use simpler approach
grantfitzsimmons Jul 8, 2026
baede98
Sync localization strings with Weblate
Jul 8, 2026
9b91880
chore: update README
grantfitzsimmons Jul 8, 2026
73e9401
chore: add data ownership mention
grantfitzsimmons Jul 8, 2026
37274f1
fix: add podman
grantfitzsimmons Jul 8, 2026
95e36c1
fix: add links
grantfitzsimmons Jul 9, 2026
1faf199
Lint code with ESLint and Prettier
grantfitzsimmons Jul 9, 2026
f11db91
Sync localization strings with Weblate
melton-jason Jul 9, 2026
d53f8be
Sync localization strings with Weblate
melton-jason Jul 9, 2026
f996b9f
Sync localization strings with Weblate
Jul 9, 2026
c7950ee
[test]: Backend unit test for Like operator (basic)
rijulpoudel Jul 10, 2026
4ed2d1d
[test]: Backend unit test for Like operator (percent wildcard)
rijulpoudel Jul 10, 2026
4ff4ab5
[test]: Backend unit test for Like operator (underscore wildcard)
rijulpoudel Jul 10, 2026
97659ce
[test]: Backend unit test for Like operator (no wildcard)
rijulpoudel Jul 10, 2026
db7eef5
[test]: reduced duplication by extracing a shared assertion
rijulpoudel Jul 10, 2026
f6cde74
Sync localization strings with Weblate
Jul 10, 2026
a2660b2
Sync localization strings with Weblate
Jul 10, 2026
6bf77fe
Sync localization strings with Weblate
Jul 10, 2026
a9ad80b
test: check for containers that are no longer running
g1rly-c0d3r Jul 13, 2026
27abc3b
test: try to stat mariadb tempfiles
g1rly-c0d3r Jul 13, 2026
c410291
test: cat the entire file to see if it is commented or not
g1rly-c0d3r Jul 13, 2026
a1660c8
test: check if mariadb is just slow, and also check out if the socket…
g1rly-c0d3r Jul 13, 2026
85234f3
test: we know mariadb dies now, so lets find out why
g1rly-c0d3r Jul 13, 2026
27b00be
test: check logs of specify7 to see if that is what is trying to crea…
g1rly-c0d3r Jul 13, 2026
619364e
fix: check logs of specify7 to see if that is what is trying to creat…
g1rly-c0d3r Jul 13, 2026
c37adce
test: enable verbose logging for mariadb
g1rly-c0d3r Jul 13, 2026
a0becac
test: view all logs
g1rly-c0d3r Jul 13, 2026
9785625
fix: restart mariadb then triage user creation
g1rly-c0d3r Jul 14, 2026
abc881a
fix: mariadb needs to crash before we restart it
g1rly-c0d3r Jul 14, 2026
c210196
test: try to find mysqld.sock
g1rly-c0d3r Jul 14, 2026
289cd25
fix: detach from docker-compose and clean up run params
g1rly-c0d3r Jul 14, 2026
7870684
fix: address CodeRabbit suggestions
g1rly-c0d3r Jul 14, 2026
e07d47f
[test]: verify needsSaved propagates from independent collection to p…
rijulpoudel Jul 6, 2026
2614467
[test]: verify independent resource field changes propagate needsSave…
rijulpoudel Jul 6, 2026
37330a1
verify independent subview sub-record changes propagate needsSaved an…
rijulpoudel Jul 6, 2026
351c049
created a permit object
rijulpoudel Jul 7, 2026
4552849
Sync localization strings with Weblate
Jul 13, 2026
6fa4a2c
[test]: Backend unit test for Timestamp Created in query results
rijulpoudel Jul 13, 2026
6be8aa8
[test]: Add timestampModified coverage to query results test
rijulpoudel Jul 13, 2026
ecf356d
[fix]: Removed unnecessary f string
rijulpoudel Jul 13, 2026
7abb6f4
[test]: create a permit first
rijulpoudel Jul 8, 2026
5b7874f
[test]: creating an attachment
rijulpoudel Jul 8, 2026
a683cb8
[test]: verifying attachment is linked
rijulpoudel Jul 8, 2026
2a1d19e
[test]: deleting the attachment
rijulpoudel Jul 8, 2026
ace1b1b
[test]: verifying that it's gone
rijulpoudel Jul 8, 2026
08e4230
[fix]: refetch from DB instead of using stale in-memory object
rijulpoudel Jul 8, 2026
80757b3
[fix]: didn
rijulpoudel Jul 8, 2026
1708ce2
final changes
rijulpoudel Jul 13, 2026
3d0ac2d
[fix]: added comments for clarification on permit attachment deletion
rijulpoudel Jul 13, 2026
0deabf5
[fix]: remove .env from branch
rijulpoudel Jul 13, 2026
da4607c
Sync localization strings with Weblate
melton-jason Jul 14, 2026
ead47e5
created a permit object
rijulpoudel Jul 7, 2026
28e89c5
Merge branch 'main' into issue-8264
g1rly-c0d3r Jul 15, 2026
ebe6bd3
Merge branch 'main' into issue-8264
g1rly-c0d3r Jul 15, 2026
9b566c5
fix: remove debugging flag from mariadb container entrypoint
g1rly-c0d3r Jul 15, 2026
bfc91ca
fix: re-create .env since that is in `.gitignore` now
g1rly-c0d3r Jul 15, 2026
07882a2
fix: fix yaml syntax
g1rly-c0d3r Jul 15, 2026
16368d7
fix: fix yaml syntax
g1rly-c0d3r Jul 15, 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
12 changes: 12 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,17 @@ Documentation for used GitHub secrets.
</a>
</td>
</tr>
<tr>
<td>COVERAGE_SCRIPT_CLONE</td>
<td>Yes</td>
<td>
Github Deploy token linked to the [development repo](https://github.com/specify/specify-development) to allow actions to clone it.
</td>
<td>
<a href="https://github.com/specify/specify7/pull/8278">
#8278
</a>
</td>
</tr>
Comment thread
coderabbitai[bot] marked this conversation as resolved.
</tbody>
</table>
168 changes: 168 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
name: Coverage

on:
pull_request:
push:
workflow_dispatch:
Comment thread
coderabbitai[bot] marked this conversation as resolved.

jobs:
# copied from test.yml
changes:
name: Check if back-end or front-end files changed
# Don't run this for pushes generated by push.yml on weblate-localization
# branch → prevents an infinite loop of actions triggering actions
#
# Also, "push" event is not triggered for forks, so need to listen for
# pull_requests, but only for external ones, so as not to run the action
# twice
if: |
(github.event_name == 'workflow_dispatch' ||
(github.event.head_commit.committer.name != 'Hosted Weblate' &&
github.event.head_commit.committer.name != 'github-actions'))
&&
(
github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.fork == true
)
Comment thread
coderabbitai[bot] marked this conversation as resolved.
runs-on: ubuntu-latest
outputs:
backend_changed: ${{ steps.back-end-check.outputs.changed }}
frontend: ${{ steps.filter.outputs.frontend }}
frontend_changes: ${{ steps.filter.outputs.frontend_files }}

steps:
- uses: actions/checkout@v4
Comment thread
coderabbitai[bot] marked this conversation as resolved.
with:
persist-credentials: false

- name: Find all changed files
uses: dorny/paths-filter@v3
id: filter
with:
base: ${{ github.ref }}
list-files: escape
filters: |
frontend:
- 'specifyweb/frontend/**'
backend:
- '**'

- name: Check if any non-front-end files changed
id: back-end-check
run: |
changed_files=`echo "${{steps.filter.outputs.backend_files}}" | tr " " "\n" | grep -v 'specifyweb/frontend/' || echo ""`
echo "Changed back-end files: ${changed_files}"
echo "changed=$([[ -z "${changed_files}" ]] && echo "" || echo "1")" >> $GITHUB_OUTPUT

setup-and-run:
needs: changes
if: |
(needs.changes.outputs.backend_changed ||
needs.changes.outputs.frontend) ||
github.event_name == 'workflow_dispatch'
Comment thread
coderabbitai[bot] marked this conversation as resolved.
runs-on: ubuntu-latest


steps:
- name: Install needed packages
id: apt
run: |
sudo apt update
sudo apt install docker-compose-v2 openssh-client

- uses: actions/checkout@v4
with:
persist-credentials: false

- name: Fetch coverage script
id: clone-coverage
run: |
eval "$(ssh-agent -s)"
ssh-add - <<< '${{ secrets.COVERAGE_SCRIPT_CLONE }}'
cd ~
git clone git@github.com:specify/specify-development
sudo install -m 0777 -o "$USER" specify-development/scripts/tests/{run-coverage,test_coverage.py} /usr/bin/
cd -

- name: Configure specify
id: config-specify
run: |
cat > .env <<-EOS
DATABASE_HOST=mariadb
DATABASE_PORT=3306
MYSQL_ROOT_PASSWORD=password
DATABASE_NAME=specify

MASTER_NAME=root
MASTER_PASSWORD=password
MASTER_HOST=%

MIGRATOR_NAME=root
MIGRATOR_PASSWORD=password
MIGRATOR_HOST=%

APP_USER_NAME=root
APP_USER_PASSWORD=password
APP_HOST=%

ALLOW_SUPPORT_LOGIN=false
SUPPORT_LOGIN_TTL=180

SECRET_KEY=change_this_to_some_unique_random_string

ASSET_SERVER_URL=http://host.docker.internal/web_asset_store.xml
ASSET_SERVER_KEY=your_asset_server_access_key
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB_INDEX=0

REPORT_RUNNER_HOST=report-runner
REPORT_RUNNER_PORT=8080

CELERY_BROKER_URL=redis://redis/0
CELERY_RESULT_BACKEND=redis://redis/1

TIME_ZONE=America/Chicago

LOG_LEVEL=WARNING

SP7_DEBUG=true
EOS

sed -i 's/#[ ]*\(.*requirements-testing.txt\)/\1/; s/\(COPY\) \(requirements-testing.txt\)/\1 --chown=specify:specify \2/' Dockerfile
sed -i 's/\(\(DATABASE_\|MASTER_\|MIGRATOR\|APP_USER_\)[^O].*\) = \(.*\)/\1 = os.environ.get("\1", "")/' specifyweb/settings/specify_settings.py
for i in range {0..3}; do
sudo chmod a+x $(find . -type d)
sudo chmod -R a+rw .
done
docker compose up --build -d

- name: Fix mariadb
id: reboot-mariadb
run: |
sleep 10
docker compose up -d mariadb
sleep 10
docker exec mariadb mariadb -uroot -ppassword -e"DROP USER root;
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
DROP DATABASE IF EXISTS specify;"
docker compose down
docker compose up -d
sleep 10


- name: Run the script
id: run-coverage
run: run-coverage -t pj -a pj -d pj -o html,csv


- name: Upload report as artifact
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: ./report.tar.bz2
archive: false
retention-days: 1


2 changes: 2 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[pytest]
DJANGO_SETTINGS_MODULE = specifyweb.settings
4 changes: 3 additions & 1 deletion requirements-testing.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@ mypy==1.5.1
hypothesis>=6.131.9,<7
hypothesis-jsonschema==0.19.0
types-requests==2.28.5
lxml
lxml
coverage
pytest-django
Loading