Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: stochtree
Title: Stochastic Tree Ensembles (XBART and BART) for Supervised Learning and Causal Inference
Version: 0.4.5
Version: 0.4.6.9000
Authors@R:
c(
person("Drew", "Herren", email = "drewherrenopensource@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-4109-6611")),
Expand Down
2 changes: 1 addition & 1 deletion Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ PROJECT_NAME = "StochTree"
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 0.4.5
PROJECT_NUMBER = 0.4.6.9000

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 2 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# stochtree 0.4.6.9000

# stochtree 0.4.5

## Bug Fixes
Expand Down
39 changes: 37 additions & 2 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ This document describes the end-to-end process for releasing a new version of st
- No empty version section in `NEWS.md` (CRAN will flag this)
- `MANIFEST.in` includes any new C++ dependency header trees added since the last release
- All tests pass locally (`source venv/bin/activate && python -m pytest` and `NOT_CRAN=true Rscript -e "devtools::load_all('.'); testthat::test_dir('test/R/testthat')"`)
- If sampler output changed this cycle, regenerate the reproducibility references under `tools/reproducibility/{R,python}` and confirm the `reproducibility_check` workflow **fails on drift** against the new references. (A stale-reference / lenient-check mismatch caused a post-tag follow-up in 0.4.5.)

---

Expand Down Expand Up @@ -81,6 +82,13 @@ git push origin --delete v0.4.2

Then you can start a new draft and pre-release it as above

## Do post-tag fixes need a re-tag?

When a fix lands on `main` after the release tag is cut, decide by what it touches:

- **Re-tag** if it changes anything shipped in the R/Python packages — `R/`, `src/`, `stochtree/`, the version files, or `NEWS.md`.
- **Leave the tag** if it only touches things outside the distributed packages — CI workflows, `tools/reproducibility/` references, benchmarks, docs-site config. The tagged artifact is unchanged, so moving the tag buys nothing. (In 0.4.5, a CI-only reproducibility fix landed post-tag and was correctly left out of the release.)

## Updating a full release (minor fixes after promotion)

For small fixes (doc corrections, man page updates, typos) discovered after promoting to a full release, delete-and-recreate is overkill. Instead, merge the fix to `main` and force-move the tag:
Expand Down Expand Up @@ -143,9 +151,36 @@ Review the Actions tab for results. If a check fails, fix the issue on `main`, t
Promoting the pre-release to a full release fires `published`, which:

- **Automatically updates the `r-dev` branch** (via `r-cran-branch.yml`) and tags the R release as `r-x.y.z` (which from 0.4.2-on is a git tag but not a separate github release)
- **Triggers wheel builds** (via `pypi-wheels.yml`); PyPI publication is currently a **manual step** — download the wheel artifacts from the Actions run and upload via `twine upload dist/*`. Setting up [PyPI trusted publishing](https://docs.pypi.org/trusted-publishers/) (OIDC) will automate this and in upcoming release cycles.
- **Triggers wheel builds** (via `pypi-wheels.yml`); PyPI publication is currently a **manual step** — see [PyPI publication](#pypi-publication-manual) below.

**How (UI):** Edit the pre-release → uncheck **"Set as a pre-release"** → click **"Update release"**.

**How (CLI):**

```bash
gh release edit vx.y.z --repo StochasticTree/stochtree --prerelease=false --latest
```

`--latest` forces the "Latest" badge (and `/releases/latest` redirect) onto this release rather than relying on GitHub's auto-detection. A release cannot be both prerelease and latest, so these two flags work together. This does not affect which workflows fire — the `published`/`released` events trigger regardless.

### PyPI publication (manual)

After promotion, the `pypi-wheels.yml` run on the `published` event builds the per-platform **wheels** as artifacts (it does **not** build an sdist). Download the wheels, build the sdist locally, then upload both:

```bash
# 1. download the wheel artifacts from the release run
# find the run id (event=release, workflow "Build Python Wheels for PyPI")
gh run list --repo StochasticTree/stochtree --event release
gh run download <run-id> --repo StochasticTree/stochtree --dir dist_wheels

# 2. build the sdist locally (the CI workflow does not produce one)
rm -rf dist && pipx run build --sdist

# 3. upload wheels + sdist
twine upload dist_wheels/**/*.whl dist/*.tar.gz
```

**How:** Edit the pre-release → uncheck **"Set as a pre-release"** → click **"Update release"**.
Confirm `x.y.z` appears at https://pypi.org/project/stochtree/. Setting up [PyPI trusted publishing](https://docs.pypi.org/trusted-publishers/) (OIDC) will automate this in an upcoming release cycle.

---

Expand Down
18 changes: 9 additions & 9 deletions configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for stochtree 0.4.5.
# Generated by GNU Autoconf 2.72 for stochtree 0.4.6.9000.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
Expand Down Expand Up @@ -600,8 +600,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='stochtree'
PACKAGE_TARNAME='stochtree'
PACKAGE_VERSION='0.4.5'
PACKAGE_STRING='stochtree 0.4.5'
PACKAGE_VERSION='0.4.6.9000'
PACKAGE_STRING='stochtree 0.4.6.9000'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''

Expand Down Expand Up @@ -1204,7 +1204,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
'configure' configures stochtree 0.4.5 to adapt to many kinds of systems.
'configure' configures stochtree 0.4.6.9000 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

Expand Down Expand Up @@ -1266,7 +1266,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of stochtree 0.4.5:";;
short | recursive ) echo "Configuration of stochtree 0.4.6.9000:";;
esac
cat <<\_ACEOF

Expand Down Expand Up @@ -1334,7 +1334,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
stochtree configure 0.4.5
stochtree configure 0.4.6.9000
generated by GNU Autoconf 2.72

Copyright (C) 2023 Free Software Foundation, Inc.
Expand Down Expand Up @@ -1371,7 +1371,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by stochtree $as_me 0.4.5, which was
It was created by stochtree $as_me 0.4.6.9000, which was
generated by GNU Autoconf 2.72. Invocation command line was

$ $0$ac_configure_args_raw
Expand Down Expand Up @@ -2380,7 +2380,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by stochtree $as_me 0.4.5, which was
This file was extended by stochtree $as_me 0.4.6.9000, which was
generated by GNU Autoconf 2.72. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -2435,7 +2435,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
stochtree config.status 0.4.5
stochtree config.status 0.4.6.9000
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"

Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# https://github.com/microsoft/LightGBM/blob/master/R-package/configure.ac

AC_PREREQ(2.69)
AC_INIT([stochtree], [0.4.5], [], [stochtree], [])
AC_INIT([stochtree], [0.4.6.9000], [], [stochtree], [])
# Note: consider making version number dynamic as in
# https://github.com/microsoft/LightGBM/blob/195c26fc7b00eb0fec252dfe841e2e66d6833954/build-cran-package.sh

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "stochtree"
version = "0.4.5"
version = "0.4.6-dev"
dependencies = [
"matplotlib",
"numpy",
Expand Down
Loading