glance-grove 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- glance_grove-0.4.0/.github/release-notes/v0.1.0.txt +35 -0
- glance_grove-0.4.0/.github/release-notes/v0.2.0.txt +79 -0
- glance_grove-0.4.0/.github/release-notes/v0.3.0.txt +13 -0
- glance_grove-0.4.0/.github/release-notes/v0.4.0.txt +45 -0
- glance_grove-0.4.0/LICENCE +674 -0
- glance_grove-0.4.0/MANIFEST.in +33 -0
- glance_grove-0.4.0/PKG-INFO +155 -0
- glance_grove-0.4.0/README.md +125 -0
- glance_grove-0.4.0/docs/README.md +39 -0
- glance_grove-0.4.0/docs/cern-demo.md +99 -0
- glance_grove-0.4.0/docs/citations.md +229 -0
- glance_grove-0.4.0/docs/cli-reference.md +174 -0
- glance_grove-0.4.0/docs/contributing.md +425 -0
- glance_grove-0.4.0/docs/data.md +345 -0
- glance_grove-0.4.0/docs/file-reference.md +245 -0
- glance_grove-0.4.0/docs/images/citation-flow.svg +111 -0
- glance_grove-0.4.0/docs/images/command-flow.svg +101 -0
- glance_grove-0.4.0/docs/images/data-flow.svg +118 -0
- glance_grove-0.4.0/docs/images/ongoing-card.png +0 -0
- glance_grove-0.4.0/docs/images/ongoing.png +0 -0
- glance_grove-0.4.0/docs/images/papers.png +0 -0
- glance_grove-0.4.0/docs/images/publication-row.png +0 -0
- glance_grove-0.4.0/docs/images/selection-flow.svg +136 -0
- glance_grove-0.4.0/docs/pages.md +132 -0
- glance_grove-0.4.0/docs/problems.md +282 -0
- glance_grove-0.4.0/docs/python-access.md +182 -0
- glance_grove-0.4.0/docs/selection.md +139 -0
- glance_grove-0.4.0/docs/stylesheets/site.css +64 -0
- glance_grove-0.4.0/docs/upgrading.md +199 -0
- glance_grove-0.4.0/docs/website.md +242 -0
- glance_grove-0.4.0/examples/README.md +187 -0
- glance_grove-0.4.0/examples/demo/index.md +33 -0
- glance_grove-0.4.0/examples/demo/publication-curation.toml +5 -0
- glance_grove-0.4.0/examples/demo/zensical.toml +56 -0
- glance_grove-0.4.0/examples/synthetic_registry.json +495 -0
- glance_grove-0.4.0/glance_grove.egg-info/PKG-INFO +155 -0
- glance_grove-0.4.0/glance_grove.egg-info/SOURCES.txt +204 -0
- glance_grove-0.4.0/glance_grove.egg-info/dependency_links.txt +1 -0
- glance_grove-0.4.0/glance_grove.egg-info/entry_points.txt +2 -0
- glance_grove-0.4.0/glance_grove.egg-info/requires.txt +17 -0
- glance_grove-0.4.0/glance_grove.egg-info/top_level.txt +1 -0
- glance_grove-0.4.0/grove/__init__.py +4 -0
- glance_grove-0.4.0/grove/__main__.py +9 -0
- glance_grove-0.4.0/grove/_source_revision.txt +1 -0
- glance_grove-0.4.0/grove/citations/__init__.py +4 -0
- glance_grove-0.4.0/grove/citations/formatting.py +79 -0
- glance_grove-0.4.0/grove/citations/inspire.py +204 -0
- glance_grove-0.4.0/grove/citations/ordering.py +120 -0
- glance_grove-0.4.0/grove/citations/resolver.py +162 -0
- glance_grove-0.4.0/grove/citations/store.py +132 -0
- glance_grove-0.4.0/grove/cli.py +505 -0
- glance_grove-0.4.0/grove/console.py +115 -0
- glance_grove-0.4.0/grove/diagnostics.py +46 -0
- glance_grove-0.4.0/grove/downloaders/__init__.py +4 -0
- glance_grove-0.4.0/grove/downloaders/api.py +266 -0
- glance_grove-0.4.0/grove/downloaders/auth.py +78 -0
- glance_grove-0.4.0/grove/downloaders/certs/README.md +23 -0
- glance_grove-0.4.0/grove/downloaders/certs/sectigo-public-server-authentication-ca-ov-r36.pem +36 -0
- glance_grove-0.4.0/grove/downloaders/csv_batch.py +81 -0
- glance_grove-0.4.0/grove/downloaders/csv_io.py +72 -0
- glance_grove-0.4.0/grove/downloaders/errors.py +40 -0
- glance_grove-0.4.0/grove/downloaders/html.py +174 -0
- glance_grove-0.4.0/grove/downloaders/http.py +105 -0
- glance_grove-0.4.0/grove/downloaders/manifest.py +42 -0
- glance_grove-0.4.0/grove/downloaders/reporting.py +126 -0
- glance_grove-0.4.0/grove/downloaders/tables.py +138 -0
- glance_grove-0.4.0/grove/provenance.py +178 -0
- glance_grove-0.4.0/grove/refresh.py +111 -0
- glance_grove-0.4.0/grove/registry/__init__.py +14 -0
- glance_grove-0.4.0/grove/registry/builder.py +126 -0
- glance_grove-0.4.0/grove/registry/comparison.py +122 -0
- glance_grove-0.4.0/grove/registry/enrichment.py +312 -0
- glance_grove-0.4.0/grove/registry/fields.py +163 -0
- glance_grove-0.4.0/grove/registry/public_identifiers.py +146 -0
- glance_grove-0.4.0/grove/registry/publication_dois.py +96 -0
- glance_grove-0.4.0/grove/registry/reader.py +73 -0
- glance_grove-0.4.0/grove/registry/schema.py +103 -0
- glance_grove-0.4.0/grove/registry/schemas/curated.schema.json +846 -0
- glance_grove-0.4.0/grove/storage.py +34 -0
- glance_grove-0.4.0/grove/views/__init__.py +4 -0
- glance_grove-0.4.0/grove/views/analyses.py +201 -0
- glance_grove-0.4.0/grove/views/analysis_states.py +200 -0
- glance_grove-0.4.0/grove/views/assets/gal-common.css +67 -0
- glance_grove-0.4.0/grove/views/assets/gal-common.js +47 -0
- glance_grove-0.4.0/grove/views/assets/gal-notes.css +46 -0
- glance_grove-0.4.0/grove/views/assets/gal-notes.js +121 -0
- glance_grove-0.4.0/grove/views/assets/gal-ongoing.css +115 -0
- glance_grove-0.4.0/grove/views/assets/gal-ongoing.js +174 -0
- glance_grove-0.4.0/grove/views/assets/gal-papers.css +47 -0
- glance_grove-0.4.0/grove/views/assets/gal-papers.js +145 -0
- glance_grove-0.4.0/grove/views/assets.py +23 -0
- glance_grove-0.4.0/grove/views/build.py +79 -0
- glance_grove-0.4.0/grove/views/common.py +47 -0
- glance_grove-0.4.0/grove/views/curation.py +113 -0
- glance_grove-0.4.0/grove/views/diagnostics.py +141 -0
- glance_grove-0.4.0/grove/views/markdown/__init__.py +4 -0
- glance_grove-0.4.0/grove/views/markdown/controls.py +37 -0
- glance_grove-0.4.0/grove/views/markdown/formatting.py +18 -0
- glance_grove-0.4.0/grove/views/markdown/fragments.py +42 -0
- glance_grove-0.4.0/grove/views/markdown/layout.py +64 -0
- glance_grove-0.4.0/grove/views/markdown/links.py +48 -0
- glance_grove-0.4.0/grove/views/markdown/notes.py +148 -0
- glance_grove-0.4.0/grove/views/markdown/ongoing.py +140 -0
- glance_grove-0.4.0/grove/views/markdown/ongoing_controls.py +34 -0
- glance_grove-0.4.0/grove/views/markdown/pages.py +129 -0
- glance_grove-0.4.0/grove/views/markdown/papers.py +134 -0
- glance_grove-0.4.0/grove/views/markdown/publication_controls.py +21 -0
- glance_grove-0.4.0/grove/views/models.py +194 -0
- glance_grove-0.4.0/grove/views/notes.py +165 -0
- glance_grove-0.4.0/grove/views/paper_citations.py +79 -0
- glance_grove-0.4.0/grove/views/people.py +15 -0
- glance_grove-0.4.0/grove/views/prepare.py +80 -0
- glance_grove-0.4.0/grove/views/profiles.py +53 -0
- glance_grove-0.4.0/grove/views/publication_states.py +153 -0
- glance_grove-0.4.0/grove/views/publications.py +430 -0
- glance_grove-0.4.0/grove/views/relationships.py +64 -0
- glance_grove-0.4.0/grove/views/report.py +127 -0
- glance_grove-0.4.0/grove/views/writer.py +24 -0
- glance_grove-0.4.0/json/doi_metadata.json +1518 -0
- glance_grove-0.4.0/json/pubnote_identifiers.json +358 -0
- glance_grove-0.4.0/publication-curation.toml +81 -0
- glance_grove-0.4.0/pyproject.toml +57 -0
- glance_grove-0.4.0/requirements-dev.txt +3 -0
- glance_grove-0.4.0/requirements-docs.txt +3 -0
- glance_grove-0.4.0/requirements.txt +3 -0
- glance_grove-0.4.0/ruff.toml +19 -0
- glance_grove-0.4.0/scripts/capture_screenshots.py +179 -0
- glance_grove-0.4.0/scripts/check_distribution.py +492 -0
- glance_grove-0.4.0/scripts/check_public_api.py +331 -0
- glance_grove-0.4.0/scripts/coverage_summary.py +322 -0
- glance_grove-0.4.0/scripts/docs.py +303 -0
- glance_grove-0.4.0/scripts/prepare_pypi.py +151 -0
- glance_grove-0.4.0/scripts/public_api.toml +63 -0
- glance_grove-0.4.0/setup.cfg +4 -0
- glance_grove-0.4.0/setup.py +37 -0
- glance_grove-0.4.0/tests/browser/accessibility.py +211 -0
- glance_grove-0.4.0/tests/browser/check_demo.py +493 -0
- glance_grove-0.4.0/tests/browser/check_notes.py +326 -0
- glance_grove-0.4.0/tests/browser/check_ongoing.py +523 -0
- glance_grove-0.4.0/tests/browser/check_papers.py +336 -0
- glance_grove-0.4.0/tests/browser/check_performance.py +335 -0
- glance_grove-0.4.0/tests/browser/check_zensical.py +386 -0
- glance_grove-0.4.0/tests/browser/diagnostics.py +103 -0
- glance_grove-0.4.0/tests/browser/performance_fixture.py +51 -0
- glance_grove-0.4.0/tests/browser/requirements.txt +2 -0
- glance_grove-0.4.0/tests/browser/timing.py +20 -0
- glance_grove-0.4.0/tests/fixtures/curated/local-paper-timestamps.json +28 -0
- glance_grove-0.4.0/tests/fixtures/curated/v2-baseline.json +84 -0
- glance_grove-0.4.0/tests/fixtures/curated/v2-milestones.json +81 -0
- glance_grove-0.4.0/tests/test_api.py +240 -0
- glance_grove-0.4.0/tests/test_api_only_registry.py +159 -0
- glance_grove-0.4.0/tests/test_awaiting_publication_review.py +131 -0
- glance_grove-0.4.0/tests/test_browser_diagnostics.py +100 -0
- glance_grove-0.4.0/tests/test_browser_timing.py +48 -0
- glance_grove-0.4.0/tests/test_closed_analysis_links.py +43 -0
- glance_grove-0.4.0/tests/test_console.py +252 -0
- glance_grove-0.4.0/tests/test_coverage_summary.py +325 -0
- glance_grove-0.4.0/tests/test_csv_validation.py +247 -0
- glance_grove-0.4.0/tests/test_curated_doi_handoff.py +216 -0
- glance_grove-0.4.0/tests/test_curated_reader.py +131 -0
- glance_grove-0.4.0/tests/test_curated_registry.py +453 -0
- glance_grove-0.4.0/tests/test_diagnostics.py +29 -0
- glance_grove-0.4.0/tests/test_distribution_boundaries.py +64 -0
- glance_grove-0.4.0/tests/test_doi_order.py +105 -0
- glance_grove-0.4.0/tests/test_doi_resolution.py +832 -0
- glance_grove-0.4.0/tests/test_download_csv_files.py +116 -0
- glance_grove-0.4.0/tests/test_download_errors.py +252 -0
- glance_grove-0.4.0/tests/test_download_reporting.py +390 -0
- glance_grove-0.4.0/tests/test_generated_contract.py +134 -0
- glance_grove-0.4.0/tests/test_generator_metadata.py +218 -0
- glance_grove-0.4.0/tests/test_generator_provenance.py +108 -0
- glance_grove-0.4.0/tests/test_html_auth.py +81 -0
- glance_grove-0.4.0/tests/test_html_download.py +199 -0
- glance_grove-0.4.0/tests/test_html_storage.py +244 -0
- glance_grove-0.4.0/tests/test_note_rendering.py +336 -0
- glance_grove-0.4.0/tests/test_ongoing_rendering.py +400 -0
- glance_grove-0.4.0/tests/test_page_output.py +107 -0
- glance_grove-0.4.0/tests/test_paper_citations.py +204 -0
- glance_grove-0.4.0/tests/test_paper_rendering.py +277 -0
- glance_grove-0.4.0/tests/test_performance_fixture.py +85 -0
- glance_grove-0.4.0/tests/test_prepare_pypi.py +157 -0
- glance_grove-0.4.0/tests/test_public_api_check.py +238 -0
- glance_grove-0.4.0/tests/test_public_identifiers.py +163 -0
- glance_grove-0.4.0/tests/test_publication_curation.py +290 -0
- glance_grove-0.4.0/tests/test_publication_dois.py +161 -0
- glance_grove-0.4.0/tests/test_publication_rendering.py +193 -0
- glance_grove-0.4.0/tests/test_refresh.py +178 -0
- glance_grove-0.4.0/tests/test_refresh_recovery.py +300 -0
- glance_grove-0.4.0/tests/test_registry_contract.py +269 -0
- glance_grove-0.4.0/tests/test_registry_fields.py +208 -0
- glance_grove-0.4.0/tests/test_render_reproducibility.py +180 -0
- glance_grove-0.4.0/tests/test_retained_field_contract.py +210 -0
- glance_grove-0.4.0/tests/test_retrieval.py +220 -0
- glance_grove-0.4.0/tests/test_shared_data.py +45 -0
- glance_grove-0.4.0/tests/test_snapshot_comparison.py +180 -0
- glance_grove-0.4.0/tests/test_software_pubnotes.py +38 -0
- glance_grove-0.4.0/tests/test_stare_integration.py +340 -0
- glance_grove-0.4.0/tests/test_storage.py +53 -0
- glance_grove-0.4.0/tests/test_table_layout.py +96 -0
- glance_grove-0.4.0/tests/test_view_build.py +159 -0
- glance_grove-0.4.0/tests/test_view_contracts.py +161 -0
- glance_grove-0.4.0/tests/test_view_diagnostics.py +220 -0
- glance_grove-0.4.0/tests/test_view_preparation.py +240 -0
- glance_grove-0.4.0/tests/test_view_writer.py +82 -0
- glance_grove-0.4.0/tests/test_workflow_cli.py +162 -0
- glance_grove-0.4.0/tests/view_fixtures.py +166 -0
- glance_grove-0.4.0/zensical.toml +75 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
First public release of glance-analysis-lister, extracted from the ATLAS Top
|
|
2
|
+
Working Group documentation tools.
|
|
3
|
+
|
|
4
|
+
- Provides the `analysis-lister` CLI for downloading GLANCE tables, building
|
|
5
|
+
registry snapshots, rendering Markdown pages, validating lookups, and
|
|
6
|
+
exporting Obsidian notes.
|
|
7
|
+
- Supports private lookup dictionaries supplied through `--lookup-dir`.
|
|
8
|
+
- Preserves staged refreshes, rollback safeguards, count-drop protection,
|
|
9
|
+
and verified TLS connections.
|
|
10
|
+
- Includes synthetic examples and offline regression tests.
|
|
11
|
+
|
|
12
|
+
Requires Python 3.13 or newer. Install this release with:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
python -m pip install "glance-analysis-lister @ git+https://github.com/knutzk/glance-analysis-lister.git@v0.1.0"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
For downloads and interactive CERN login, install the download extra:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
python -m pip install "glance-analysis-lister[download] @ git+https://github.com/knutzk/glance-analysis-lister.git@v0.1.0"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Interactive login also requires Chrome and a terminal. This release is available
|
|
25
|
+
on GitHub; it has not been published to PyPI.
|
|
26
|
+
|
|
27
|
+
The package contains no private registry snapshots or credentials. Supply your
|
|
28
|
+
own inputs and lookup dictionaries. Markdown output defaults to `pages/`; set
|
|
29
|
+
`--output-dir` for an existing site. The wheel and source distribution are
|
|
30
|
+
attached below.
|
|
31
|
+
|
|
32
|
+
Validation: 119 offline tests and installed-wheel checks pass. Authenticated live
|
|
33
|
+
downloads were not tested for this release.
|
|
34
|
+
|
|
35
|
+
Licensed under GPL-3.0-only.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
## Main changes
|
|
2
|
+
|
|
3
|
+
- **New API workflow:** download through stare and CERN SSO, build a compact curated registry offline, and generate multiple groups' pages with one `refresh` command.
|
|
4
|
+
- **New interactive views:** ongoing-analysis cards and separate paper, CONF-note and PUB-note archives, with search, filters, expandable details and shareable URLs.
|
|
5
|
+
- **Configurable group curation:** shared publication policies support group affiliations, predecessor groups, subgroups and keywords.
|
|
6
|
+
- **Traceable data:** explicit record relationships, improved DOI/correction handling, actionable diagnostics, snapshot comparison and reproducible generated files.
|
|
7
|
+
- **Broader validation:** 272 offline tests, installed-package checks and CI browser tests, including real Zensical instant navigation.
|
|
8
|
+
- **Breaking changes:** rebuild existing registries and migrate CLI commands, Python consumers and site navigation. Legacy renderers, lookup overrides and Obsidian export are removed; HTML downloading remains an optional standalone export.
|
|
9
|
+
|
|
10
|
+
## Breaking changes and migration
|
|
11
|
+
|
|
12
|
+
- Replaces the v0.1.0 CSV-derived registry and fixed Markdown views with an API-based registry workflow and configurable group views. Existing registries must be rebuilt; consumers must migrate to the curated format and new commands.
|
|
13
|
+
- Replaces `download`, `render`, `export-obsidian` and `validate-lookups` with `download-api`, `download-html`, `build-registry`, `render-group`, `compare-snapshots`, `resolve-dois`, `format-citations` and the redesigned `refresh` workflow. Old CLI arguments and compatibility aliases are removed.
|
|
14
|
+
- Removes Obsidian export, the old group/subgroup renderers, legacy model classes, lookup dictionaries and their import paths. There is no generated overview or combined publication-archive front page.
|
|
15
|
+
- Removes downloading configuration files, group-specific retrieval profiles and `--lookup-dir`. Downloads retrieve all accessible records; group selection happens during view preparation.
|
|
16
|
+
- Introduces curated registry schema version 2 and view-report schema version 2. Curated records retain only fields needed for display, search, curation, relationships and diagnostics. Keep the full API snapshot if you need other source fields.
|
|
17
|
+
- Namespaces added or reshaped record fields with `gal_`. Nested structures, people roles and metadata are consolidated; consumers must not expect the original API shape for these fields.
|
|
18
|
+
- Registry construction no longer consumes CSV files or HTML enrichment. HTML-only internal-note editors are omitted. The optional HTML downloader produces independent exports.
|
|
19
|
+
- Replaces the `download` installation extra with `html`. Normal installation includes stare and does not require Selenium or Beautiful Soup; the HTML fallback requires the optional extra, with Chrome needed for interactive HTML login.
|
|
20
|
+
- API and curated JSON default to `glance_api_registry.json` and `glance_curated_registry.json` in the calling directory. HTML CSVs also default to that directory. Shared DOI metadata, public-note identifier mappings and publication policies remain packaged, maintained data.
|
|
21
|
+
- Group rendering produces `ongoing.md`, `papers.md`, `confnotes.md`, `pubnotes.md`, browser assets and `view-report.json`. Consumers must update navigation, enable the generated CSS/JavaScript and ignore downloaded data and diagnostic reports as appropriate.
|
|
22
|
+
- Citation protection now depends on `source = "manual"`; the obsolete `locked` field is no longer accepted. Importing the package no longer loads or mutates a global citation dictionary.
|
|
23
|
+
|
|
24
|
+
## Downloads and workflows
|
|
25
|
+
|
|
26
|
+
- Adds stare 0.6.1 integration with browser CERN SSO, stored credentials and stare-managed token refresh. One shared GLANCE client retrieves detailed records sequentially with response caching disabled and TLS verification enabled.
|
|
27
|
+
- Adds configurable API pagination through `--page-size`, defaulting to 500 after live comparisons with 100-record pages showed identical results and substantially shorter downloads.
|
|
28
|
+
- Requests ascending identifier sorting using `referenceCode` for analyses/papers and `temporaryReferenceCode` for CONF/PUB notes. Records are serialized with validated JSON-mode, alias-preserving model output. Sorting does not guarantee a transactional snapshot.
|
|
29
|
+
- Preserves duplicate detection, pagination-total consistency, per-resource count-drop protection and atomic JSON publication. `--allow-count-drop` overrides only the count-drop guard.
|
|
30
|
+
- Adds a sequential `refresh` command: download once, build offline, then render selected groups. One group writes directly into the output directory; multiple groups use lowercase subdirectories. Configuration and path collisions are checked before authentication; failures stop subsequent steps while retaining completed outputs.
|
|
31
|
+
- Retains optional `download-html` with browser login or saved cookies, verified HTTP transport, saved-HTML replay and all-column exports for all four resources. Complete-table counters, headers, row widths and identifiers are validated before publication.
|
|
32
|
+
- Preserves staged HTML batch publication, rollback, interruption markers and recovery files. Duplicate or unnamed non-identifier HTML headers receive unique names without dropping or reordering columns.
|
|
33
|
+
- Adds consistent download summaries covering output paths, resource counts, elapsed time and validation settings. Failure reporting checks whether existing output bytes were preserved and identifies incomplete batches and retained recovery files.
|
|
34
|
+
|
|
35
|
+
## Registry, identifiers and citations
|
|
36
|
+
|
|
37
|
+
- Builds curated registries offline from the API snapshot and shared identifier/citation dictionaries. Native analyses, papers, CONF notes and PUB notes remain independent records with explicit relationships.
|
|
38
|
+
- Replaces title-based matching and manual clone exclusions with explicit links. Publication-owned relationships take precedence over contradictory analysis-owned links; resolved one-way links remain usable with recorded provenance.
|
|
39
|
+
- Consolidates contacts, editors and editorial boards into name lists, retains chair information, flattens keywords/triggers/statistical tools and group assignments, and extracts date-only meeting lists. Missing leading assignments remain null; multiple leading assignments produce warnings.
|
|
40
|
+
- Uses an explicit nested field-retention list after enrichment. Logs retained/discarded field occurrences and input/output byte sizes while retaining every source record.
|
|
41
|
+
- Adds public CONF/PUB identifier recovery from API identifiers and public URLs, including software and technical PUB series. A bundled CDS-to-PUB dictionary supplies historical mappings without additional runtime requests.
|
|
42
|
+
- Derives canonical paper public-page URLs from native identifiers when publication evidence is present. Identifier derivations, dictionary hashes and source counts are recorded as provenance.
|
|
43
|
+
- Embeds DOI/citation pairs in curated papers. Extracts DOIs exclusively from URL fields, including supported publisher URL paths; ignores API labels because label/URL associations can be inconsistent. There is no label fallback.
|
|
44
|
+
- Adds incremental citation resolution through offline JHEP inference or public INSPIRE metadata, with explicit method selection, limits and refresh controls. Manual entries are protected; successful resolutions are saved atomically with provenance.
|
|
45
|
+
- Improves DOI association matching, duplicate/partial metadata reconciliation, journal abbreviations and starting-page formatting. Ambiguous associations remain unresolved rather than selecting an arbitrary match.
|
|
46
|
+
- Orders a uniquely identified original publication before its known corrections, including multiple errata. DOI-encoded dates order corrections where possible; otherwise their input order is retained. Genuine ambiguity in identifying the original remains diagnostic.
|
|
47
|
+
- Adds offline `compare-snapshots` for API or curated snapshots, with added/removed/changed records, field paths, optional detailed JSON and input hashes. Record order and container timestamps are ignored; list order and missing-versus-null distinctions are preserved.
|
|
48
|
+
- Adds a thin `CuratedRegistry` reader with identifier lookup and explicit-link resolution, returning copies without importing downloaders or renderers.
|
|
49
|
+
|
|
50
|
+
## Group views and browser interaction
|
|
51
|
+
|
|
52
|
+
- Adds reusable prepared collections, typed details, explicit filter metadata and traceable derivation rules independent of Markdown.
|
|
53
|
+
- Adds shared TOML publication policies for multiple groups, including predecessor groups and merged subgroups. Configured group tokens/affiliations, exact subgroup names and keywords are combined with OR. Policy titles control publication headings; missing policies warn and fall back to the group's identifier token.
|
|
54
|
+
- Keeps ongoing-analysis selection based solely on leading/additional main-group affiliation, independently of publication policies. Historical subgroup changes do not impose a publication cutoff.
|
|
55
|
+
- Adds compact expandable analysis cards with GLANCE identifier buttons, group/subgroup tags, people and email lists, supporting documents, metadata tags, dated milestones and direct card links.
|
|
56
|
+
- Adds responsive approval flows for EdBoard assignment, pre-approval, approval and both ATLAS circulations. Milestone ticks depend on recorded evidence; review-stage sorting follows those displayed ticks. Linked paper milestones identify phase 1, phase 2 or submission.
|
|
57
|
+
- Handles analyses awaiting publication review, papers with finished phase 1/2 awaiting submission, independent released PUB notes, software-note identifiers and closed records. Uncertain states remain explicitly reviewable instead of being guessed; unresolved publication links on closed analyses do not warn.
|
|
58
|
+
- Adds separate expandable paper, CONF-note and PUB-note tables with short titles, public identifiers, publication/release dates, publication links and detailed affiliations, people and metadata. Editorial board chairs are marked consistently across views.
|
|
59
|
+
- Adds paper publication-status filters and note supersession filters, including links to superseding records. Notes default to non-superseded entries. Tables remain unpaginated.
|
|
60
|
+
- Adds free-text search across identifiers, titles, affiliations, people and relevant metadata, including paper DOI/citation information and note CDS URLs. Ongoing subgroup buttons appear only for matching analyses in the selected group's namespace.
|
|
61
|
+
- Adds inclusive year/month date bounds, result counts, reset and expand/collapse-all controls. Undated publications remain visible unless a before bound is set. Selections combine with OR within categories and AND between categories.
|
|
62
|
+
- Persists search through `q` on every view, ongoing subgroup/sort selections and publication date/status selections in URLs. Reload and browser-history navigation restore filters; unrelated URL parameters and card anchors are preserved.
|
|
63
|
+
- Adds reusable CSS/JavaScript with keyboard controls, responsive layouts, Zensical instant-navigation support and readable no-JavaScript output. Filtering requires no database or live requests.
|
|
64
|
+
- Explains selection criteria on the generated pages, including the archive's broader group involvement. Footers identify GLANCE extraction dates and the generator; detailed JSON diagnostics are reported through the CLI rather than linked from the pages.
|
|
65
|
+
|
|
66
|
+
## Diagnostics, reproducibility and validation
|
|
67
|
+
|
|
68
|
+
- Adds concise coloured logging, verbose/quiet controls, download/build configuration and progress reporting, and immediate summary flushing so redirected logs preserve execution order.
|
|
69
|
+
- Groups view diagnostics by cause and severity, names affected records, states inclusion/exclusion and explains the practical effect. JSON reports expose dedicated review lists, diagnostic groups, issue counts and distinct-record counts.
|
|
70
|
+
- Records effective publication policies, relationship evidence and lifecycle/milestone decisions in reports. Missing optional display fields do not generate warnings.
|
|
71
|
+
- Adds generated-file notices with Git revision, registry hash, effective-profile hash and generator-content fingerprint. Wheels and source archives retain build-time revision provenance; registry content is not relicensed by these notices.
|
|
72
|
+
- Makes generated Markdown easier to version by separating table rows and metadata fields, omitting unused browser payloads, avoiding generation timestamps and preserving unchanged files without rewriting them.
|
|
73
|
+
- Tests reproducible output across processes, hash seeds, time zones and output locations, plus source-field contracts that detect view reads outside the curated retention list.
|
|
74
|
+
- Reorganises the package into downloaders, registry construction/access, citations and views. Separates lifecycle rules, relationships, preparation, diagnostics, rendering and shared browser utilities; updates the README around the current package.
|
|
75
|
+
- Expands the offline suite from 119 tests at v0.1.0 to 272, including real stare models/serializers, failure injection, storage safeguards, lifecycle rules, provenance and installed-distribution checks.
|
|
76
|
+
- Adds CI execution of standalone Chrome checks for ongoing, paper, CONF and PUB views, plus a strict synthetic Zensical build/browser test covering real instant navigation, repeated visits, search/sort URL restoration, reset, expansion and assets. Browser dependencies remain separate from normal installation.
|
|
77
|
+
- Requires both offline/package checks and browser/site checks before CI creates a draft release. The packaging workflow builds the wheel from the source distribution and verifies it in a clean environment.
|
|
78
|
+
- Validates the end-to-end authenticated API refresh with TOPQ and HIGP locally, and verifies follow-up lifecycle fixes against the saved snapshot. Automated tests use synthetic data and do not access CERN services; consumer-specific theme overrides are outside the synthetic site test.
|
|
79
|
+
- Retains Python 3.13 or newer and GPL-3.0-only licensing. No private snapshots or credentials are included in the package.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# v0.3.0
|
|
2
|
+
|
|
3
|
+
- Adds hosted documentation, a complete synthetic demo and local previews of group pages alongside the demo.
|
|
4
|
+
- Upgrades to stare 0.7, including support for timezone-free GLANCE paper timestamps.
|
|
5
|
+
- Fixes DOI resolution from curated registries and preserves CSV cell line endings during saved-HTML replay.
|
|
6
|
+
- Improves filtering performance, keyboard/accessibility behavior and download/recovery guidance.
|
|
7
|
+
- Adds coverage summaries on PRs, advisory public-API checks, browser failure diagnostics and package-content checks.
|
|
8
|
+
|
|
9
|
+
## Upgrading from 0.2.0
|
|
10
|
+
|
|
11
|
+
Generated snapshots now record generator identity instead of numeric schema versions. Structural validation remains strict; missing or differing generator metadata warns rather than rejecting valid data. Legacy schema-version fields are ignored. Rebuild unsupported inputs using the documented workflow, and preserve custom citation entries and provenance.
|
|
12
|
+
|
|
13
|
+
Python 3.13+ remains required. Documented support limits still apply.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# v0.4.0 — first GROVE release
|
|
2
|
+
|
|
3
|
+
The project is now GROVE: GLANCE Records Organised for Viewing and Exploration.
|
|
4
|
+
|
|
5
|
+
- Renames the distribution and GitHub repository to `glance-grove`, and the
|
|
6
|
+
Python package and command to `grove`. The previous names have no compatibility
|
|
7
|
+
aliases or import shims.
|
|
8
|
+
- Restores complete **Cite as** blocks in paper details, including full titles,
|
|
9
|
+
recorded TeX titles and DOI-aligned citations. Improves citation typography and
|
|
10
|
+
wrapping of long publication links on narrow screens.
|
|
11
|
+
- Adds `grove --version`, reporting the installed distribution version. Updates
|
|
12
|
+
documentation, demo commands, generated-page branding and packaged resources
|
|
13
|
+
to use the new names.
|
|
14
|
+
|
|
15
|
+
## Upgrading from v0.3.0
|
|
16
|
+
|
|
17
|
+
Install the `glance_grove-0.4.0-py3-none-any.whl` artifact in a fresh Python 3.13
|
|
18
|
+
environment. Pip treats `glance-grove` and `glance-analysis-lister` as separate
|
|
19
|
+
projects; installing the new distribution does not remove the old one.
|
|
20
|
+
|
|
21
|
+
Replace `analysis-lister` with `grove` in shell commands and automation, and
|
|
22
|
+
`analysis_lister` with `grove` in Python imports and module invocations. Update
|
|
23
|
+
dependency declarations to `glance-grove`. Use `grove --version` or
|
|
24
|
+
`python -m grove --version` to verify the installation.
|
|
25
|
+
|
|
26
|
+
The repository is https://github.com/knutzk/glance-grove and documentation is at
|
|
27
|
+
https://knutzk.github.io/glance-grove/. Update Git remotes and documentation links;
|
|
28
|
+
the old GitHub Pages address does not automatically redirect.
|
|
29
|
+
|
|
30
|
+
Snapshot filenames and generated group-page URLs are unchanged. Existing
|
|
31
|
+
supported curated snapshots remain readable, with advisory warnings for the old
|
|
32
|
+
generator identity. Newly built snapshots retain the optional paper `fullTitle`
|
|
33
|
+
and `publicationPhase.finalTitleTex` fields. Keep the previous snapshots and
|
|
34
|
+
environment for rollback and reproducibility. Rebuild from a saved API snapshot with
|
|
35
|
+
`grove build-registry` to recover full paper titles omitted by older curated
|
|
36
|
+
snapshots, then render into a separate output directory with `grove render-group`.
|
|
37
|
+
No fresh CERN download is needed. Preserve custom citation stores and policies
|
|
38
|
+
outside the environment and pass their explicit paths when rebuilding.
|
|
39
|
+
|
|
40
|
+
Historical v0.1.0–v0.3.0 tags and distribution artifacts retain their original
|
|
41
|
+
names and contents. They are not `glance-grove` packages.
|
|
42
|
+
|
|
43
|
+
Python 3.13+ and GPL-3.0-only licensing remain unchanged. Existing 0.x interface
|
|
44
|
+
and generated-data support limits still apply. Live retrieval requires authorised
|
|
45
|
+
CERN access; synthetic and offline checks do not establish live login.
|