Skip to content

Update to 1.18 - #13

Closed
liam-lloyd wants to merge 99 commits into
mainfrom
update_to_1.18
Closed

liam-lloyd wants to merge 99 commits into
mainfrom
update_to_1.18

Conversation

@liam-lloyd

Copy link
Copy Markdown
Member

No description provided.

replaceafill and others added 30 commits January 6, 2026 10:16
* Upgrade pre-commit dependencies
* Drop Python 3.8 support
* Update git submodules
This prevents the creation and association of a amdSec element to the
objects directory in the structMap when the transfer bag metadata is
missing or unreadable.
* Update git submodules
* Upgrade pre-commit dependencies
* Upgrade Python requirements
* Run test CI jobs in Ubuntu 24.04
* Upgrade pre-commit dependencies
* Upgrade Python requirements
* Upgrade frontend dependencies
* Update git submodules
This adds tests that assert the output of the existing event detail
commands in the FPR.

The tests assume the MCPClient OS tools are installed in the test
runner and call archivematicaCommon's executeOrRun to execute the
event detail commands.
* Upgrade pre-commit dependencies
* Upgrade Python requirements
* Use latest version of Selenium Manager to download browsers
* Upgrade frontend dev dependencies
* Update git submodules
* Run AMAUATs black-box tag in Firefox
* Remove dashboard/src directory
* Remove MCPClient/lib directory
* Remove MCPServer/lib directory
* Remove archivematicaCommon/lib directory
This commit updates the snippet that uses `json.loads` to catch
`TypeError` instead of `SyntaxError`.
This relocates all the Python code into a new src/archivematica
package and adopts absolute imports, eliminating the need for
previously injected PYTHONPATH variables.
This adjusts the Storage Service related rules of the development
environment to support the new src layout of the submodule.
replaceafill and others added 23 commits January 6, 2026 10:19
This avoids overwriting the XML_CATALOG_FILES environment variable by
prepending the local MCPClient catalog to any existing value.

This maintains compatibility with other catalogs already set in the
environment and allows AMAUATs to define their own as needed.
* Upgrade Python requirements
* Upgrade pre-commit dependencies
* Upgrade frontend dependencies
* Set local XML catalog for metadata XML AMAUAT
* Update git submodules
* Remove requirements*.in files
* Update Python requirements
This change consolidates Archivematica's search logic into a single
service layer, replacing scattered implementations while preserving
full backward compatibility.

The new search service centralizes all Elasticsearch operations behind
a consistent interface, replacing the previous approach where search
code was dispersed across multiple modules.

MCPClient scripts and dashboard components, such as views and
management commands, no longer make direct Elasticsearch
calls. Instead, they now use the service for AIP indexing, backlog
handling, post-storage hooks, and index maintenance or rebuilding.

The legacy search modules have been removed, making future
Elasticsearch upgrades easier to maintain.
* Upgrade Python requirements
* Upgrade pre-commit dependencies
* Upgrade frontend dependencies
* Update git submodules
The previous method for preventing UID/GID clashes in the Docker build process
was limited to removing a specific "ubuntu" user with default IDs. This
approach was insufficient in environments where different default UIDs/GIDs are
used, or when user IDs on the host system (such as common macOS UIDs like 501 or
GIDs like 20 for "staff") clash with IDs that might be present in the container.
This change dynamically checks for and remove any existing user/group that
occupies the requester `USER_ID` or `GROUP_ID`, ensuring that the
"archivematica" user can be created with the specified IDs without conflict.
This commit updates several Docker images while ensuring backward
compatibility. The Percona and Nginx images used support ARM64 builds.
* Upgrade pre-commit dependencies
* Upgrade Python requirements
* Upgrade frontend dependencies
* Update git submodules
Bumps the docker-compose-dev group with 3 updates in the /hack directory: [elasticsearch/elasticsearch](https://github.com/elastic/elasticsearch), clamav/clamav-debian and nginx.


Updates `elasticsearch/elasticsearch` from 8.19.2 to 8.19.3
- [Release notes](https://github.com/elastic/elasticsearch/releases)
- [Changelog](https://github.com/elastic/elasticsearch/blob/main/CHANGELOG.md)
- [Commits](elastic/elasticsearch@v8.19.2...v8.19.3)

Updates `clamav/clamav-debian` from 1.4.3-56 to 1.4.3-57

Updates `nginx` from 1.28.0 to 1.29.1

---
updated-dependencies:
- dependency-name: elasticsearch/elasticsearch
  dependency-version: 8.19.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: docker-compose-dev
- dependency-name: clamav/clamav-debian
  dependency-version: 1.4.3-57
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: docker-compose-dev
- dependency-name: nginx
  dependency-version: 1.29.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: docker-compose-dev
...

Signed-off-by: dependabot[bot] <support@github.com>
Update our GitHub Actions to use their full commit SHAs rather than
major version tags. This improves security and reproducibility.
The package was renamed at some point, "inotify-simple" is the current name.
For a long time we've been asking Gunicorn to "poll" the filesystem for changes,
which is very inefficient. When your dev machine is idle, there's still a
significant amount of load just to keep the Gunicorn apps up to date with local
filesystem changes.

While this may be desirable in some development workflows, in most cases you
don't actually need it. Disabling it by default keeps your laptop from getting
warm and saves a lot of energy. If you don't believe me - try it!

Gunicorn would be far more efficient if it could use the inotify API to detect
changes. This feature exists but that doesn't work with our gevent config. This
problem was reported back in 2017 (benoitc/gunicorn#1494).
Eight years later, I'm suggesting we make the poll-based auto-reload opt-in by
default.

Use the Compose's `.env` file to enable `AM_GUNICORN_RELOAD` and
`SS_GUNICORN_RELOAD` just when you need it. Remember to recreate the
`archivematica-dashboard` and `archivematica-storage-services` when
changing the configuration.
@liam-lloyd

Copy link
Copy Markdown
Member Author

I don't think traditional reviews apply here, since we're just pulling in all the commits that make up Archivematica 1.18, but I wanted to open a PR so at least the CI runs

In v1.18 Archivematica added a validator that ensures all Github Actions
used in this repo's workflows are pinned with a commit hash. Though this
is not Permanent's practice, it seems best to keep our fork as close to
upstream Archivematica as is reasonable, so this commit updates our
build workflow to pin Github Actions with commit hashes.
@liam-lloyd

Copy link
Copy Markdown
Member Author

Closing in order to redo this with a merge instead of a rebase

@liam-lloyd liam-lloyd closed this Jan 6, 2026
@liam-lloyd
liam-lloyd deleted the update_to_1.18 branch February 20, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants