Skip to content

Bring changes from v7.11.4 to main#7683

Open
melton-jason wants to merge 40 commits intomainfrom
v7.11.4-prerelease
Open

Bring changes from v7.11.4 to main#7683
melton-jason wants to merge 40 commits intomainfrom
v7.11.4-prerelease

Conversation

@melton-jason
Copy link
Contributor

@melton-jason melton-jason commented Feb 4, 2026

Brings the changes from #7671 / v7.11.4 to main.

Checklist

  • Self-review the PR after opening it to make sure the changes look good and
    self-explanatory (or properly documented)
  • Add relevant issue to release milestone
  • Add pr to documentation list
  • Add automated tests

Testing instructions

Follow the testing instructions from Prevent broken transactions when autonumbering (#7671) (provided below) and ensure the functionality is correct with the updated branch:

Sample Database

To speed up setup for testing this Pull Request, i've set up a testing database that contains all resources required for testing:
Feel free to use the database!

User - spadmin
Password - testuser

Collections:

  • Fish
    • In the SCC Division
    • In the Ichthyology Discipline
    • Catalog Number of the format FSH-#########
    • One CollectionObject WorkBench Data Set
    • One Accession WorkBench Data Set
  • Plants
    • In the SCC Division
    • In the Botany Discipline
    • Catalog Number of the format #########
    • CO -> text2 of the format AAA-NNN-#########
      • Where A can be any letter and N can be any number
    • Locality -> text1 of the format #########
    • Two Collection Object WorkBench Data Sets
    • One Locality Data Set
  • Vascular Plants
  • In the SCC Division
  • In the Botany Discipline
  • CO -> text2 of the format AAA-NNN-#########
    • Where A can be any letter and N can be any number
  • Locality -> text1 of the format #########
  • One Collection Object WorkBench Data Set
  • Mammals
    • In the Test Division
    • In the Mammology Discipline
  • One Accession WorkBench Data Set

Where Accessions are scoped to Division:

issue-6490_scoped_accession_testing.sql.zip

Where Accessions are globally scoped:

issue-6490_global_accession_testing.sql.zip


General Concurrency with WorkBench

  • Start a WorkBench Upload or Validation operation on a sufficiently large Data Set (the operation needs to be in process while the below steps of General Concurrency are completed)
  • Open Specify in a new tab, window, or browser
  • Open a DataEntry form of the same table as the base table as the WorkBench Data Set, where one or fields have an autonumbering field format
  • Save the Data Entry record and ensure the record saves successfully
  • Reload the page and ensure Specify loads and still remains accessible

Concurrent Autonumbering with the WorkBench

  • Start a WorkBench Upload operation on a sufficiently large Data Set (the operation needs to be in process while some of the below steps of Concurrent Autonumbering with the WorkBench are completed) that contains two or more fields that will be autonumbered
  • Open Specify in a new tab, window, or browser
  • Open a DataEntry form of the same table as the base table as the WorkBench Data Set, where one or fields have an autonumbering field format
  • Save the Data Entry record and ensure the record saves successfully
  • Wait for the WorkBench Upload operation to complete
  • Ensure that the value for the autonumbered field from Data Entry is skipped in the WorkBench upload results.

Concurrent Autonumbering with Non Collection Scoping
Review Table Scoping Hiearchy for an overview on table scopes

With the Sample Database, this would be using the Locality Data Set in the Plants Collection with creating a new Locality in the Vascular Plants Collection

  • Start a WorkBench Upload operation on a sufficiently large Data Set (the operation needs to be in process while some of the below steps of Concurrent Autonumbering with Non Collection Scoping are completed) where the base table is not scoped to Collection that contains one or more fields that will be autonumbered
  • Open Specify in a new tab, window, or browser
  • Switch to a different Collection which is in the same scope as the records being uploaded
  • Open a DataEntry form of the same table as the base table as the WorkBench Data Set where one or more fields have an autonumbering field format
  • Save the Data Entry record and ensure the record saves successfully
  • Wait for the WorkBench Upload operation to complete
  • Ensure that the value for the autonumbered field from Data Entry is skipped in the WorkBench upload results.

Autonumbering with Variable Table Scoping

In a database with more than one Division where Accessions are scoped to Division

  • Start a WorkBench Upload operation on a sufficiently large Accession Data Set (the operation needs to be in process while some of the below steps of Concurrent Autonumbering with Non Collection Scoping are completed) where a field on Accession is being autonumbered
  • Open Specify in a new tab, window, or browser
  • Switch to a different Collection which is in a different Division as the records being uploaded
  • Open an Accession DataEntry form
  • Save the Accession and ensure the record saves successfully
  • Wait for the WorkBench Upload operation to complete
  • Ensure that the Accessions in different Divisions are independently auto-numbered (e.g., Accessions in different Divisions should not share the same autonumbering)

In a database with more than one Division where Accessions are globally scoped

  • Start a WorkBench Upload operation on a sufficiently large Accession Data Set (the operation needs to be in process while some of the below steps of Concurrent Autonumbering with Non Collection Scoping are completed) where a field on Accession is being autonumbered

  • Open Specify in a new tab, window, or browser

  • Switch to a different Collection which is in a different Division as the records being uploaded

  • Open an Accession DataEntry form

  • Save the Accession and ensure the record saves successfully

  • Wait for the WorkBench Upload operation to complete

  • Ensure that the value for the autonumbered field from Data Entry is skipped in the WorkBench upload results in the other Division

  • Generally ensure that autonumbering respects the scoping of Accessions (e.g, using DataEntry, create Accessions in different scopes and ensure they're autonumbered as expected)

General

  • Please also do general testing focused around autonumbering, especially with concurrent WorkBench uploads!

acwhite211 and others added 30 commits September 30, 2025 12:33
See #6490, #5337
Replaces #5404
Fixes #4148, #7560

This branch is largely the application of #7455 on `v7.11.3`
Based largely off the initial implementation at 5ed701a from #7399
@melton-jason melton-jason requested review from a team February 6, 2026 01:59
@melton-jason melton-jason marked this pull request as ready for review February 6, 2026 01:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 📋Back Log

Development

Successfully merging this pull request may close these issues.

2 participants