Skip to content

Commit f41bcd2

Browse files
authored
Merge pull request #1008 from devoxx/feature/task-209-feature-usage-analytics
feat(analytics): track feature enablement & usage (task-209)
2 parents 38acbf3 + 7591a00 commit f41bcd2

39 files changed

Lines changed: 2424 additions & 83 deletions

Taskfile.yml

Lines changed: 119 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,14 @@ tasks:
157157
- rm -f /tmp/recent-prs.json /tmp/changelog-content.md /tmp/plugin-changes.html
158158
- echo "✅ Temporary files cleaned"
159159

160+
version:
161+
desc: Show current plugin version
162+
vars:
163+
CURRENT_VERSION:
164+
sh: grep -E '^version\s*=' build.gradle.kts | head -n1 | sed 's/.*"\(.*\)".*/\1/'
165+
cmds:
166+
- echo "DevoxxGenie plugin version {{.CURRENT_VERSION}}"
167+
160168
build:
161169
desc: Build the plugin using Gradle
162170
cmds:
@@ -207,6 +215,111 @@ tasks:
207215
- build
208216
- test
209217

218+
release:patch:
219+
desc: 📦 Release a patch version (e.g. 0.5.6 → 0.5.7)
220+
summary: |
221+
Bumps the patch version in build.gradle.kts, generates changelog, creates a git tag, and pushes to remote.
222+
preconditions:
223+
- sh: git diff-index --quiet HEAD --
224+
msg: "You have uncommitted changes. Please commit or stash them before releasing."
225+
vars:
226+
CURRENT_VERSION:
227+
sh: grep -E '^version\s*=' build.gradle.kts | head -n1 | sed 's/.*"\(.*\)".*/\1/'
228+
NEW_VERSION:
229+
sh: |
230+
current="{{.CURRENT_VERSION}}"
231+
major=$(echo "$current" | cut -d'.' -f1)
232+
minor=$(echo "$current" | cut -d'.' -f2)
233+
patch=$(echo "$current" | cut -d'.' -f3)
234+
new_patch=$((patch + 1))
235+
echo "$major.$minor.$new_patch"
236+
prompt: "Release patch version {{.NEW_VERSION}}? (current: {{.CURRENT_VERSION}})"
237+
deps:
238+
- check-tools
239+
cmds:
240+
- task: test
241+
- |
242+
sed -i.bak -E 's/^(version[[:space:]]*=[[:space:]]*")[^"]+(".*)$/\1{{.NEW_VERSION}}\2/' build.gradle.kts
243+
rm -f build.gradle.kts.bak
244+
echo "✅ Updated build.gradle.kts to version {{.NEW_VERSION}}"
245+
- task: generate-changelog
246+
vars: {VERSION: "{{.NEW_VERSION}}"}
247+
- git add build.gradle.kts CHANGELOG.md {{.PLUGIN_XML}}
248+
- 'git commit -m "chore(release): prepare release v{{.NEW_VERSION}}"'
249+
- 'git tag -a "v{{.NEW_VERSION}}" -m "Release v{{.NEW_VERSION}}"'
250+
- git push origin HEAD
251+
- 'git push origin "v{{.NEW_VERSION}}"'
252+
- echo "✅ Released v{{.NEW_VERSION}}"
253+
254+
release:minor:
255+
desc: 📦 Release a minor version (e.g. 0.5.6 → 0.6.0)
256+
summary: |
257+
Bumps the minor version in build.gradle.kts, generates changelog, creates a git tag, and pushes to remote.
258+
preconditions:
259+
- sh: git diff-index --quiet HEAD --
260+
msg: "You have uncommitted changes. Please commit or stash them before releasing."
261+
vars:
262+
CURRENT_VERSION:
263+
sh: grep -E '^version\s*=' build.gradle.kts | head -n1 | sed 's/.*"\(.*\)".*/\1/'
264+
NEW_VERSION:
265+
sh: |
266+
current="{{.CURRENT_VERSION}}"
267+
major=$(echo "$current" | cut -d'.' -f1)
268+
minor=$(echo "$current" | cut -d'.' -f2)
269+
new_minor=$((minor + 1))
270+
echo "$major.$new_minor.0"
271+
prompt: "Release minor version {{.NEW_VERSION}}? (current: {{.CURRENT_VERSION}})"
272+
deps:
273+
- check-tools
274+
cmds:
275+
- task: test
276+
- |
277+
sed -i.bak -E 's/^(version[[:space:]]*=[[:space:]]*")[^"]+(".*)$/\1{{.NEW_VERSION}}\2/' build.gradle.kts
278+
rm -f build.gradle.kts.bak
279+
echo "✅ Updated build.gradle.kts to version {{.NEW_VERSION}}"
280+
- task: generate-changelog
281+
vars: {VERSION: "{{.NEW_VERSION}}"}
282+
- git add build.gradle.kts CHANGELOG.md {{.PLUGIN_XML}}
283+
- 'git commit -m "chore(release): prepare release v{{.NEW_VERSION}}"'
284+
- 'git tag -a "v{{.NEW_VERSION}}" -m "Release v{{.NEW_VERSION}}"'
285+
- git push origin HEAD
286+
- 'git push origin "v{{.NEW_VERSION}}"'
287+
- echo "✅ Released v{{.NEW_VERSION}}"
288+
289+
release:major:
290+
desc: 📦 Release a major version (e.g. 0.5.6 → 1.0.0)
291+
summary: |
292+
Bumps the major version in build.gradle.kts, generates changelog, creates a git tag, and pushes to remote.
293+
preconditions:
294+
- sh: git diff-index --quiet HEAD --
295+
msg: "You have uncommitted changes. Please commit or stash them before releasing."
296+
vars:
297+
CURRENT_VERSION:
298+
sh: grep -E '^version\s*=' build.gradle.kts | head -n1 | sed 's/.*"\(.*\)".*/\1/'
299+
NEW_VERSION:
300+
sh: |
301+
current="{{.CURRENT_VERSION}}"
302+
major=$(echo "$current" | cut -d'.' -f1)
303+
new_major=$((major + 1))
304+
echo "$new_major.0.0"
305+
prompt: "Release major version {{.NEW_VERSION}}? (current: {{.CURRENT_VERSION}})"
306+
deps:
307+
- check-tools
308+
cmds:
309+
- task: test
310+
- |
311+
sed -i.bak -E 's/^(version[[:space:]]*=[[:space:]]*")[^"]+(".*)$/\1{{.NEW_VERSION}}\2/' build.gradle.kts
312+
rm -f build.gradle.kts.bak
313+
echo "✅ Updated build.gradle.kts to version {{.NEW_VERSION}}"
314+
- task: generate-changelog
315+
vars: {VERSION: "{{.NEW_VERSION}}"}
316+
- git add build.gradle.kts CHANGELOG.md {{.PLUGIN_XML}}
317+
- 'git commit -m "chore(release): prepare release v{{.NEW_VERSION}}"'
318+
- 'git tag -a "v{{.NEW_VERSION}}" -m "Release v{{.NEW_VERSION}}"'
319+
- git push origin HEAD
320+
- 'git push origin "v{{.NEW_VERSION}}"'
321+
- echo "✅ Released v{{.NEW_VERSION}}"
322+
210323
preview-changes:
211324
desc: Preview what changes would be made without updating files
212325
summary: |
@@ -253,14 +366,19 @@ tasks:
253366
preview-changes - Preview changes without updating files
254367
clean-temp - Clean temporary files
255368
369+
📦 Release Tasks:
370+
release:major - Release a major version (e.g. 0.5.6 → 1.0.0)
371+
release:minor - Release a minor version (e.g. 0.5.6 → 0.6.0)
372+
release:patch - Release a patch version (e.g. 0.5.6 → 0.5.7)
373+
256374
Examples:
257375
# Development
258376
task build
259377
task test
260378
task run-ide
261379
262380
# Release
263-
task generate-changelog VERSION=0.8.0
381+
task release:patch
264382
task verify
265383
PUBLISH_TOKEN=xxx task publish
266384

0 commit comments

Comments
 (0)