Skip to content

sslabdata v3.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 03:38
· 23 commits to main since this release
3f2d740

What's Changed

  • Pin bibtexparser<2 and make CI lockfile-aware by @siddhss5 in #39
  • ci: upgrade deploy workflow actions to Node 24 majors and run labdata --frozen by @siddhss5 in #41
  • Remove real lab data; build and publish a fictional Example Lab demo by @siddhss5 in #44
  • Use the Alice/Bob placeholder cast for demo and test names by @siddhss5 in #48
  • Run tests with a coverage floor in CI; require Python 3.10+ by @siddhss5 in #49
  • Conformance corpus, supported-cases table, and output-format checks by @siddhss5 in #50
  • Parse with pybtex and pylatexenc behind a thin adapter by @siddhss5 in #51
  • Keep equal-contribution markers out of names and in the output by @siddhss5 in #52
  • Fix unresolved output without a people file by @QIU-Guanzong in #61
  • SPEC.md and README: state the normative contract by @siddhss5 in #62
  • fix: diagnose duplicate citation keys by @QIU-Guanzong in #64
  • Record the diagnostic-code convention and drop the severity prefix by @siddhss5 in #66
  • Consumer probes: test the document against four consumers (#55) by @siddhss5 in #67
  • Evidence for v4: a field-loss probe, an identity probe and their fixtures by @siddhss5 in #70
  • Schema v4: one consolidated breaking change by @siddhss5 in #71
  • Remove the Jekyll demo renderer; point to labdata-site by @siddhss5 in #73
  • Match authors on structured full names; add collaborator aliases by @siddhss5 in #74
  • Correct SPEC on name normalisation by @siddhss5 in #75
  • Coded, located diagnostics for the #26 validation cases by @siddhss5 in #76
  • One coded summary line for redefined @string macros by @siddhss5 in #77
  • Add --strict and diagnostics as JSON by @siddhss5 in #79
  • Match run-together initials the same as spaced initials by @siddhss5 in #83
  • Rename the project to sslabdata by @siddhss5 in #84
  • Report malformed input as coded diagnostics by @siddhss5 in #94
  • Add tools/smoke.py for real-bibliography smoke checks by @siddhss5 in #95
  • Delete the COVERAGE.md checker by @siddhss5 in #96
  • Shrink the consumer probes to three compact checks by @siddhss5 in #97
  • Remove duplicated tests, lower the branch floor to 92, collapse the 588-case test by @siddhss5 in #98
  • One diagnostics list through the pipeline; remove dead resolver code by @siddhss5 in #102
  • Report unknown keys in the record files by @siddhss5 in #103
  • Comments state the contract, not the history by @siddhss5 in #104
  • Read an optional video field as a video link by @siddhss5 in #105
  • Read an optional pdf field as a work's PDF link by @siddhss5 in #107
  • Schema v5: project image, no checked_at, no duplicated counts by @siddhss5 in #108
  • Check the YAML type of every configuration and record field by @siddhss5 in #120
  • Reject bibliography file names that escape bib_dir by @siddhss5 in #122
  • Classify video URLs from parsed hostnames by @siddhss5 in #123
  • Write output documents atomically by @siddhss5 in #124
  • Assert one complete outcome per invalid conformance fixture by @siddhss5 in #125
  • Separate normative spec from migration history by @siddhss5 in #126
  • Pin GitHub Actions to commit SHAs by @siddhss5 in #127
  • Complete PyPI metadata and install docs for 3.0.0 by @siddhss5 in #129
  • Remove author email address from module docstrings by @siddhss5 in #131
  • Define sdist and wheel contents explicitly by @siddhss5 in #132
  • Keep a bare % in field values by @siddhss5 in #148
  • README: install the test extra and mark release steps as clone-only by @siddhss5 in #151
  • Build, check and publish release artifacts through Trusted Publishing by @siddhss5 in #149
  • Make Diagnostic a frozen dataclass by @siddhss5 in #150
  • CHANGELOG: complete the 3.0.0 entry for upgraders from 2.0.0 by @siddhss5 in #153
  • Serialize lab values safely, code output write failures, and make --validate serialize by @siddhss5 in #152
  • Convert \url, \footnote and other converter markup to plain text by @siddhss5 in #160
  • Write each bibtex field value back exactly as it was read by @siddhss5 in #158
  • Read a year only from an unsigned run of ASCII digits by @siddhss5 in #159
  • Report a DOI that is only a resolver instead of emitting it empty by @siddhss5 in #162
  • Read eprinttype and convert archivePrefix before choosing the repository by @siddhss5 in #164
  • Drop and report "and others" before the end of a name list by @siddhss5 in #167
  • Report a repeated YAML mapping key instead of keeping the last value by @siddhss5 in #161
  • Report an empty path for people_file, projects_file or collaborators_file by @siddhss5 in #163
  • Say a configured path is a directory, not that it does not exist by @siddhss5 in #166
  • Remove and report control characters where the input is read by @siddhss5 in #171
  • Keep the text after \newcommand and similar definition commands by @siddhss5 in #172
  • Warn when brace matching merges or drops BibTeX fields by @siddhss5 in #173
  • Keep the arguments of a command that has no text rule by @siddhss5 in #175
  • Add a generated-input test for the invariants every run must keep by @siddhss5 in #168
  • Keep the text argument of \title, \author and \date by @siddhss5 in #177
  • Fix mypy errors and type-check in CI by @siddhss5 in #178
  • Split cli.main into one function per mode by @siddhss5 in #179
  • Match names on one internal key in the resolver by @siddhss5 in #180
  • Trim docstrings and comments to local invariants by @siddhss5 in #181
  • Delete unit tests the end-to-end suite already covers by @siddhss5 in #182
  • Cover the behaviours the mutation audit left unprotected by @siddhss5 in #184
  • Normalise input text to NFC at ingress by @siddhss5 in #186
  • Recompose normalised names to NFC so collaborator keys are NFC by @siddhss5 in #187
  • CHANGELOG: cover the 3.0.0 changes merged since #153 by @siddhss5 in #188
  • Publish release candidates to TestPyPI and releases to PyPI from tags by @siddhss5 in #189
  • Set the version to 3.0.0rc1 for the TestPyPI rehearsal by @siddhss5 in #190
  • Release 3.0.0: set the version and date the CHANGELOG entry by @siddhss5 in #191

New Contributors

Full Changelog: v2.0.0...v3.0.0