Skip to content

release: v2.3.2 — sync dev, CI hardening, metadata refresh#73

Merged
jpazvd merged 21 commits intomainfrom
develop
Mar 23, 2026
Merged

release: v2.3.2 — sync dev, CI hardening, metadata refresh#73
jpazvd merged 21 commits intomainfrom
develop

Conversation

@jpazvd
Copy link
Contributor

@jpazvd jpazvd commented Mar 23, 2026

Summary

Merges all outstanding work from develop into main, consolidating:

Current platform versions

Platform Version
R 2.3.0
Python 2.3.2
Stata 2.3.1
Repo tag v2.3.2 (after merge)

Test plan

  • CI passes on all matrix entries
  • After merge: tag v2.3.2

🤖 Generated with Claude Code

jpazvd and others added 11 commits March 7, 2026 03:25
…elop

chore(ci): stabilize workflows and add public ci policy
- Updated dataflow dimension values
- Enriched indicator metadata with dimension values
- Auto-generated by GitHub Actions workflow

Workflow: .github/workflows/metadata-sync.yml
Triggered: push
fix: post-release housekeeping from Copilot review (PR #70)

Synced from: jpazvd/unicefData-dev@0d0a2b0
release: v2.3.2 — Python version bump, version validation CI, metadata refresh

Synced from: jpazvd/unicefData-dev@91e2dc2
fix(r): eliminate flaky R-CMD-check CI from live API calls

Synced from: jpazvd/unicefData-dev@20c2344
# Conflicts:
#	.github/workflows/check.yaml
#	.github/workflows/metadata-sync.yml
#	.github/workflows/validate-schemas.yml
# Conflicts:
#	stata/src/_/_unicefdata_dataflow_metadata.yaml
#	stata/src/_/_unicefdata_sync_history.yaml
Copilot AI review requested due to automatic review settings March 23, 2026 00:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Release merge bringing develop → main for v2.3.2, including CI version validation, docs/metadata refresh, and R example hardening to reduce flaky checks.

Changes:

  • Switched many R examples from \donttest{} to \dontrun{} to avoid network/stateful execution during automated checks.
  • Added a PR-gating GitHub Action to validate version bumps and cross-platform consistency.
  • Refreshed release/versions documentation and added an auto-generated component version manifest.

Reviewed changes

Copilot reviewed 30 out of 313 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
R/man/*.Rd Updated documentation examples to \dontrun{}.
R/R/*.R Updated roxygen examples to \dontrun{}.
R/doc/__COMPONENT_VERSIONS.yaml Added generated component version manifest.
R/doc/VERSIONING_POLICY.md Updated current-state versioning notes and CI enforcement section.
R/cran-comments.md Updated CRAN submission notes re: examples policy.
R/CITATION.cff Bumped citation version/date.
CHANGELOG.md Added 2.3.2 repository release entry.
.github/workflows/versioning-check.yml Added version validation workflow.
.github/workflows/r-scripted-tests.yaml Adjusted path filters to R/** casing.
.github/workflow-config.yml Removed workflow config file.
.github/scripts/load_workflow_config.py Removed config loader script.
.github/RELEASE_GUIDE.md Expanded release/versioning rules and guidance.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +7 to +10
python/pyproject.toml: 2.3.2
python/unicefdata/__init__.py: 2.3.2
r/CITATION.cff: 2.3.2
r/DESCRIPTION: 2.3.0
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The manifest uses lowercase r/ paths (e.g., r/DESCRIPTION, r/R/...) but this repo’s R package directory appears to be R/ (uppercase), as reflected by other changes in this PR (workflow path filters and file paths). On case-sensitive filesystems (Linux CI), these entries won’t resolve and can break version-check tooling or confuse consumers. Regenerate or normalize the manifest to use the correct R/ casing consistently (and ensure the generator enforces canonical casing).

Copilot uses AI. Check for mistakes.
Comment on lines +85 to +89
r:
r/R/metadata_sync.R: 1.6.0
r/R/unicef_core.R: 1.6.1
r/R/unicefData.R: 2.0.0
r/scripts/generate_metadata.R: 2.0.0
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The manifest uses lowercase r/ paths (e.g., r/DESCRIPTION, r/R/...) but this repo’s R package directory appears to be R/ (uppercase), as reflected by other changes in this PR (workflow path filters and file paths). On case-sensitive filesystems (Linux CI), these entries won’t resolve and can break version-check tooling or confuse consumers. Regenerate or normalize the manifest to use the correct R/ casing consistently (and ensure the generator enforces canonical casing).

Copilot uses AI. Check for mistakes.

| Platform | Version file(s) |
|---|---|
| R | `r/DESCRIPTION` (`Version:` field) |
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The R version-file path is documented as r/DESCRIPTION, but this repo uses R/DESCRIPTION (uppercase), and CI path filters were updated accordingly in this PR. Update the guide to reference R/DESCRIPTION (and any other r/ path mentions) to avoid incorrect instructions and mismatches with tooling.

Suggested change
| R | `r/DESCRIPTION` (`Version:` field) |
| R | `R/DESCRIPTION` (`Version:` field) |

Copilot uses AI. Check for mistakes.
python-version: '3.x'
- name: Run version bump checks
run: |
python scripts/check_versions.py origin/${{ github.base_ref }} --check-consistency
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using origin/${{ github.base_ref }} assumes the base branch ref is present locally after actions/checkout. That ref is not guaranteed to exist (especially for PRs from forks), which can cause this workflow to fail even when the code is correct. Prefer comparing against the base SHA from the event payload (e.g., github.event.pull_request.base.sha) or explicitly git fetch the base branch ref before invoking check_versions.py.

Suggested change
python scripts/check_versions.py origin/${{ github.base_ref }} --check-consistency
python scripts/check_versions.py ${{ github.event.pull_request.base.sha }} --check-consistency

Copilot uses AI. Check for mistakes.

on:
pull_request:
branches: [ main, develop, '**' ]
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Including ** makes the job run for PRs targeting any base branch, which can increase CI cost/noise beyond main/develop. If the intent is to enforce versioning only on integration branches, drop the wildcard and keep [ main, develop ]; if the intent is truly all branches, remove the explicit main, develop entries for clarity.

Suggested change
branches: [ main, develop, '**' ]
branches: [ main, develop ]

Copilot uses AI. Check for mistakes.
Comment on lines +40 to 43
#' \dontrun{
#' clear_schema_cache()
#' # Cache: 0 items (0 MB)
#' }
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These examples appear to be local-only (no network) and low cost; switching them to \\dontrun{} reduces the amount of executable documentation exercised by automated checks. Consider keeping local, deterministic examples as runnable (or \\donttest{} if they’re slightly slow) and reserving \\dontrun{} for examples that truly require network access or unavoidable stateful side effects.

Copilot uses AI. Check for mistakes.
Comment on lines +57 to 59
#' \dontrun{
#' get_schema_cache_info()
#' }
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These examples appear to be local-only (no network) and low cost; switching them to \\dontrun{} reduces the amount of executable documentation exercised by automated checks. Consider keeping local, deterministic examples as runnable (or \\donttest{} if they’re slightly slow) and reserving \\dontrun{} for examples that truly require network access or unavoidable stateful side effects.

Copilot uses AI. Check for mistakes.
jpazvd and others added 10 commits March 22, 2026 22:46
- workflow-config.yml: public repo config (r_pkg_dir=R, sync disabled)
- load_workflow_config.py: config loader required by reusable workflows
- check_versions.py: version validation script for versioning-check workflow
- r-scripted-tests.yaml: fix r/ → R/ path for public repo layout

These files are required by the workflows synced from the dev repo but
were not included in the sync whitelist.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- README.md: update version table (Python 2.3.2, Stata 2.3.1, R/ paths)
- enforce_r_dir_policy.py: accept both R/ and r/ (public uses R/)
- unicefdata.py: search both R/inst/ and r/inst/ for metadata
- python/README.md: update "What's New" heading to 2.3.2
- __COMPONENT_VERSIONS.yaml: regenerated with R/ paths
- update_component_versions.py: added to scripts/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- prepare_r_test_fixtures.py: required by R-CMD-check reusable workflow
- validate_yaml_schema.py: required by validate-metadata workflow
- RELEASE_GUIDE.md: r/DESCRIPTION → R/DESCRIPTION for public repo
- versioning-check.yml: drop wildcard branch, use base SHA instead of
  origin/base_ref for fork compatibility

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
On case-sensitive filesystems (Linux CI), the script failed to write
fixtures because it hardcoded r/ but the public repo uses R/.
Now auto-detects the correct directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pure rename of 295 tracked files. No content changes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- workflow-config.yml: r_pkg_dir → r
- r-scripted-tests.yaml: R/tests/ → r/tests/, path triggers R/** → r/**
- RELEASE_GUIDE.md: R/DESCRIPTION → r/DESCRIPTION

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…or r/

- enforce_r_dir_policy.py: enforce canonical lowercase r/
- prepare_r_test_fixtures.py: extract fixtures to r/tests/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- README.md: R/ links → r/ links, version table updated
- unicefdata.py: restore r/inst/ metadata search path

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jpazvd jpazvd merged commit 795b266 into main Mar 23, 2026
49 checks passed
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.

2 participants