Skip to content

Commit 6515ff9

Browse files
bpamiriclaude
andauthored
chore: bump version from 3.0.0 to 3.1.0 (#1886)
* chore: bump version from 3.0.0 to 3.1.0 Update version references across the entire codebase: - Runtime version in onapplicationstart.cfc - Package versions in box.json files - CLI version in ModuleConfig.cfc - Template and dependency constraints (^3.1.0) - Documentation URLs (wheels.dev/3.1.0/) - API reference URLs (wheels.dev/api/v3.1.0/) - Docs sync workflow path - Design docs and release candidate guide Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: update version field in templates/base/src/box.json to 3.1.0-SNAPSHOT This file is the source of truth for ForgeBox published versions. The dependency constraint was updated but the version field itself was missed during the initial bump (was still 3.0.1-SNAPSHOT). * refactor: inject -SNAPSHOT in workflow instead of source files Source box.json files now use clean versions (e.g. 3.1.0) instead of 3.1.0-SNAPSHOT. The release workflow injects -SNAPSHOT for develop builds and publishes stable versions from main — no file changes needed when promoting develop to main. Changes: - release.yml: branch-aware version calculation adds -SNAPSHOT for develop - release.yml: validation checks source files are clean (no SNAPSHOT) - version-bump.yml: clean version inputs (patch/minor/major, no -snapshot) - generate-changelog.yml: remove SNAPSHOT suffix stripping (no longer needed) - box.json files: remove -SNAPSHOT suffix from version fields --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 815b535 commit 6515ff9

File tree

128 files changed

+614
-606
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+614
-606
lines changed

.ai/wheels/configuration/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
The `/config` directory contains all configuration files for your Wheels application. In Wheels 3.0.0+, configuration was moved from `/app/config` to the root-level `/config` directory for better organization and clearer separation of concerns. These files control application behavior, database connections, routing, environment settings, and framework-wide defaults.
5+
The `/config` directory contains all configuration files for your Wheels application. In Wheels 3.1.0+, configuration was moved from `/app/config` to the root-level `/config` directory for better organization and clearer separation of concerns. These files control application behavior, database connections, routing, environment settings, and framework-wide defaults.
66

77
## File Structure and Purpose
88

@@ -87,7 +87,7 @@ if (get("environment") == "production") {
8787

8888
## Migration from Pre-3.0
8989

90-
### Breaking Change in Wheels 3.0.0
90+
### Breaking Change in Wheels 3.1.0
9191

9292
Configuration moved from `/app/config` to `/config` at root level.
9393

.ai/wheels/configuration/routing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Define URL patterns and map them to controller actions:
4646
<cfscript>
4747
// Use this file to add routes to your application
4848
// Don't forget to reload after changes: ?reload=true
49-
// See https://wheels.dev/3.0.0/guides/handling-requests-with-controllers/routing
49+
// See https://wheels.dev/3.1.0/guides/handling-requests-with-controllers/routing
5050
5151
mapper()
5252
// Resource-based routing (recommended)

.claude/settings.local.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@
9292
"WebFetch(domain:helpx.adobe.com)",
9393
"WebFetch(domain:opencode.ai)",
9494
"Bash(lsof:*)",
95-
"Bash(wc:*)"
95+
"Bash(wc:*)",
96+
"Bash(git merge-tree --write-tree origin/develop origin/feat/v3.1-internal-refactor 2>&1 | head -60)",
97+
"Bash(git merge origin/develop --no-commit 2>&1)"
9698
],
9799
"deny": []
98100
}

.github/workflows/docs-sync.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Sync docs into wheels.dev
2626
run: |
2727
# Guides: mirror with delete
28-
rsync -av --del wheels/docs/src/ wheels-dev/docs/3.0.0/guides/
28+
rsync -av --del wheels/docs/src/ wheels-dev/docs/3.1.0/guides/
2929
3030
# Images: additive (no delete)
3131
rsync -av wheels/docs/src/.gitbook/assets/ wheels-dev/public/images/

.github/workflows/generate-changelog.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ jobs:
8888
run: |
8989
# Detect version from box.json
9090
VERSION=$(jq -r '.version' templates/base/src/box.json)
91-
VERSION="${VERSION%-SNAPSHOT}"
9291
9392
BRANCH="changelog/$VERSION"
9493
git checkout -b "$BRANCH"

.github/workflows/release-candidate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release Candidate Workflow
22
# This workflow builds and publishes Release Candidates for testing before final releases
3-
# Triggers on release candidate branches (e.g., release/3.0.0-rc.1)
3+
# Triggers on release candidate branches (e.g., release/3.1.0-rc.1)
44

55
name: Wheels Release Candidate
66

@@ -33,7 +33,7 @@ jobs:
3333
pwd
3434
cat box.json
3535
36-
# Extract version from box.json (should be something like 3.0.0-rc.1)
36+
# Extract version from box.json (should be something like 3.1.0-rc.1)
3737
VERSION=$(cat box.json | jq '.version' -r)
3838
echo "WHEELS_VERSION=${VERSION}+${{ github.run_number }}" >> $GITHUB_ENV
3939

.github/workflows/release.yml

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,17 @@ jobs:
3838
cd ./templates/base/src
3939
pwd
4040
cat box.json
41-
echo "WHEELS_VERSION=`cat box.json | jq '.version' -r`+${{ github.run_number }}" >> $GITHUB_ENV
42-
# main or snapshot
43-
echo "BRANCH=main" >> $GITHUB_ENV
44-
if [ $GITHUB_REF == 'refs/heads/develop' ]
45-
then
41+
BASE_VERSION=$(cat box.json | jq '.version' -r)
42+
echo "Base version from box.json: ${BASE_VERSION}"
43+
# Develop builds get -SNAPSHOT qualifier; main builds are stable releases.
44+
# Source files keep clean versions (e.g. 3.1.0) so no changes are
45+
# needed when promoting develop to main.
46+
if [ "$GITHUB_REF" == "refs/heads/develop" ]; then
47+
echo "WHEELS_VERSION=${BASE_VERSION}-SNAPSHOT+${{ github.run_number }}" >> $GITHUB_ENV
4648
echo "BRANCH=develop" >> $GITHUB_ENV
49+
else
50+
echo "WHEELS_VERSION=${BASE_VERSION}+${{ github.run_number }}" >> $GITHUB_ENV
51+
echo "BRANCH=main" >> $GITHUB_ENV
4752
fi
4853
4954
- name: Make build scripts executable
@@ -70,10 +75,13 @@ jobs:
7075
exit 1
7176
fi
7277
73-
# Check that version doesn't contain SNAPSHOT for main releases
74-
if echo "$WHEELS_VERSION" | grep -qi "snapshot"; then
75-
echo "ERROR: Version contains SNAPSHOT but this is a main branch release"
76-
echo "Please remove SNAPSHOT suffix from box.json files before releasing."
78+
# Check that source version in box.json is clean (no -SNAPSHOT suffix).
79+
# The workflow injects -SNAPSHOT for develop builds automatically.
80+
BASE_VERSION=$(jq -r '.version' templates/base/src/box.json)
81+
if echo "$BASE_VERSION" | grep -qi "snapshot"; then
82+
echo "ERROR: Version in box.json contains -SNAPSHOT suffix ($BASE_VERSION)"
83+
echo "Source files should have clean versions (e.g., 3.1.0)."
84+
echo "The workflow adds -SNAPSHOT automatically for develop builds."
7785
exit 1
7886
fi
7987

.github/workflows/version-bump.yml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ on:
88
workflow_dispatch:
99
inputs:
1010
new_version:
11-
description: 'New version number (e.g., 3.0.1-SNAPSHOT or 3.1.0-SNAPSHOT)'
11+
description: 'New version number (e.g., 3.1.1 or 3.2.0). No -SNAPSHOT suffix — the release workflow adds it automatically for develop builds.'
1212
required: true
1313
type: string
1414
bump_type:
1515
description: 'Type of version bump'
1616
required: true
1717
type: choice
1818
options:
19-
- patch-snapshot
20-
- minor-snapshot
21-
- major-snapshot
22-
default: patch-snapshot
19+
- patch
20+
- minor
21+
- major
22+
default: patch
2323

2424
jobs:
2525
bump-version:
@@ -66,9 +66,7 @@ jobs:
6666
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6767
NEW_VERSION: ${{ github.event.inputs.new_version }}
6868
run: |
69-
# Strip -SNAPSHOT suffix for changelog header
70-
CHANGELOG_VERSION="${NEW_VERSION%-SNAPSHOT}"
71-
./tools/build/scripts/generate-changelog.sh "$CHANGELOG_VERSION" "" --write
69+
./tools/build/scripts/generate-changelog.sh "$NEW_VERSION" "" --write
7270
7371
- name: Commit Changes
7472
env:

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ We welcome contributions via **Issues** and **Pull Requests (PRs)**. Before you
3737
* If it's a **security issue**, please use our [Responsible Disclosure Program](mailto:webmaster@wheels.dev?subject=Responsible%20Disclosure%20Program) — do not post it publicly.
3838
* Search existing Issues and PRs to avoid duplicates.
3939
* If your issue is urgent or blocking, you can leave a polite comment pinging the maintainers.
40-
* If you're new to contributing, check out the [Contributing to Wheels Guide](https://wheels.dev/3.0.0/guides/working-with-wheels/contributing-to-wheels) for tips and examples.
40+
* If you're new to contributing, check out the [Contributing to Wheels Guide](https://wheels.dev/3.1.0/guides/working-with-wheels/contributing-to-wheels) for tips and examples.
4141

4242
### Development Environment Setup
4343

@@ -146,7 +146,7 @@ If you're making a **breaking change** or working on **core functionality**, it'
146146
### Developing with Docker
147147

148148
You can develop and test Wheels locally on multiple CFML engines using Docker.
149-
Follow the [Docker Instructions](https://wheels.dev/3.0.0/guides/working-with-wheels/contributing-to-wheels#developing-with-docker) to get set up quickly.
149+
Follow the [Docker Instructions](https://wheels.dev/3.1.0/guides/working-with-wheels/contributing-to-wheels#developing-with-docker) to get set up quickly.
150150

151151
---
152152

MONOREPO.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ This document provides a comprehensive guide to understanding the Wheels 3.0 mon
1414

1515
## Overview
1616

17-
Wheels 3.0 uses a monorepo structure to maintain all framework components in a single repository. This approach provides:
17+
Wheels 3.1 uses a monorepo structure to maintain all framework components in a single repository. This approach provides:
1818

19-
- **Unified Versioning**: All components share the same version number (currently `3.0.0-rc.1`)
19+
- **Unified Versioning**: All components share the same version number (currently `3.1.0`)
2020
- **Simplified Development**: Changes across components can be developed and tested together
2121
- **Atomic Commits**: Related changes across CLI, core, and templates happen in single commits
2222
- **Easier Testing**: Cross-component integration testing without dependency management
@@ -96,7 +96,7 @@ box install wheels-cli
9696

9797
```
9898
core/
99-
├── box.json # Package metadata (v3.0.0-rc.1)
99+
├── box.json # Package metadata (v3.1.0)
100100
├── src/
101101
│ └── wheels/ # Framework code (27 directories)
102102
│ ├── controller/ # Controller base class
@@ -344,7 +344,7 @@ All components share the same version number defined in their `box.json` files.
344344

345345
2. Update `CHANGELOG.md` with release notes
346346

347-
3. Create git tag: `git tag v3.0.0`
347+
3. Create git tag: `git tag v3.1.0`
348348

349349
4. Push and let CI/CD handle ForgeBox publishing
350350

@@ -429,7 +429,7 @@ User's Application:
429429

430430
## Key Characteristics
431431

432-
1. **Version Synchronization**: All components share version `3.0.0-rc.1`
432+
1. **Version Synchronization**: All components share version `3.1.0`
433433
2. **CFML-Based**: Framework written in CFML with CommandBox module system
434434
3. **Docker Testing**: Multi-engine and multi-database testing support
435435
4. **Template-Based Generation**: CLI uses Handlebars-style `{{variable}}` syntax
@@ -666,4 +666,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution guidelines.
666666
---
667667

668668
**Last Updated:** 2025-10-20
669-
**Version:** 3.0.0-rc.1
669+
**Version:** 3.1.0

0 commit comments

Comments
 (0)