Skip to content

Move #39's changelog entries out of the released 3.3.0 - #41

Merged
billfreeman44 merged 1 commit into
masterfrom
worktree-dsdk-review-changelog
Sep 29, 2026
Merged

billfreeman44 merged 1 commit into
masterfrom
worktree-dsdk-review-changelog

Conversation

@billfreeman44

@billfreeman44 billfreeman44 commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

v3.3.0 was tagged at 1565e8c, 32 seconds before #39 merged (816c3cc). The 3.3.0 on PyPI has #38's changes but not #39's, yet master's CHANGELOG listed #39's changes under ## 3.3.0.

This moves #39's four entries from ## 3.3.0 to ## Unreleased, next to #40's:

  • the columns argument
  • the polars extra
  • the single RangeIndex
  • the pyarrow dataset read

Checks

  • The ## 3.3.0 section is now byte-identical to git show v3.3.0:CHANGELOG.md.
  • Everything below it is unchanged.
  • The CHANGELOG is the only file changed.

🤖 Generated with Claude Code

v3.3.0 was tagged 32 seconds before #39 merged, so its entries belong in Unreleased.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟢 Approval recommended

The changelog now accurately matches the tagged 3.3.0 release while preserving unreleased entries.

Review effort: Balanced
Findings: None

What changed in this PR

Moves post-release changes from the published 3.3.0 notes into Unreleased.

Changes:

  • Relocates four #39 changelog entries without altering their text.
  • Restores the 3.3.0 section to its tagged contents.
File Description
CHANGELOG.md Corrects release attribution for #39.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@billfreeman44

Copy link
Copy Markdown
Member Author

Thanks. Copilot recommended approval with no findings, and it counted the moved entries correctly: four, not five as my description first said. I've corrected the description.

@billfreeman44
billfreeman44 merged commit 2c69ca2 into master Sep 29, 2026
10 checks passed
@billfreeman44
billfreeman44 deleted the worktree-dsdk-review-changelog branch September 29, 2026 04:51
billfreeman44 added a commit that referenced this pull request Oct 4, 2026
* Narrow tomes that mix old and compact csds player tables

csgo-ppp will write player_vector and player_status with int8 to int32
integers, float32 floats and a dictionary place_name. Where a tome mixes
those files with older int64/float64 ones, build_basic_tomes and the
loaders now cast the wide columns to the narrow types instead of widening
the narrow ones. Every cast is checked: a value that doesn't fit raises
NarrowingError naming the column, the match (or page) and the value.
current_ammo stays int64, since older files hold 4294967295 there.

- build_basic_tomes narrows each page as it builds it (pyarrow or the
  pandas fallback), and narrows and rewrites at the end any page written
  before the first compact match.
- read_pages_pandas and scan_pages_polars narrow across pages.
- A narrow integer column with missing values is pandas' nullable IntN.
- prepare_table decodes dictionary columns, so compact player_status
  pages are built with pyarrow instead of pandas.
- widen=True on get_dataframe and scan returns 64-bit types.

Tomes of old files only build and load as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Document tome column types across csds versions; changelog

docs/tome-data-model.md gets a section on how old and compact csds files
load together, the checked casts, current_ammo, float32 rounding, the
nullable dtypes, narrow arithmetic and widen=True.

CHANGELOG: v3.3.1 was tagged with #39 to #41's entries still under
Unreleased, so they are titled 3.3.1, and this change opens a new
Unreleased section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Narrow every page to the widest narrow type seen

From the Copilot review: a page that joined an int8 match with an old
one was narrowed to int8, and stayed int8 when a later match brought
int16; an old value of 200 even stopped the build, though it fits int16.

- A page whose value doesn't fit its own matches' narrow type keeps that
  column wide instead of raising.
- At the end, every page not yet at the tome's types is cast to them:
  wide columns narrowed with checked casts, narrower integers widened
  exactly. A value that doesn't fit the tome's type still stops the
  build, naming the match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Narrow 0/1 integer flags to bool where other files hold bool

Older csds files hold flags such as burst_mode and is_silenced as 0 and
1 in int64 columns declared Int64; newer ones hold bool. A tome page
holding both couldn't be written: pd.concat made an object column of
bools and ints, which pyarrow refused, so tomes spanning those csds
versions failed to build (on master too).

The narrowing rule now casts the integer side to bool where a column is
bool in some tables or pages and integers in others, in the builder
(pyarrow path, pandas fallback, end-of-build rewrite) and both loaders.
0 and 1 become False and True, a missing value stays missing (pandas
boolean), and any other value raises NarrowingError naming the column,
the match (or page and row) and the value. widen=True leaves flags bool.

A page now keeps a column wide instead of raising only where a wider
narrow type may still come (int8, int16); bool, int32 and float32 raise
at once. Polars casts every page whose type differs from the plan's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Keep current_ammo int64 on every page of a mixed tome

From the second Copilot review: current_ammo is never narrowed, so a
compact-only page kept it int16 while the other pages held int64. Loads
promoted it, but the pages broke the rule that every page holds the
tome's types, and loads took the slower page-by-page path.

Where current_ammo is int64 in some tables and a narrower integer in
others, the plan now targets int64: the narrow pages are widened, which
is exact, and old values are still never narrowed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants