Repository navigation
Releases: NaderAbsy/sprintwise
Release list
v2.25: Easier to find
Clearer page titles and descriptions, in the words Product Owners search for. No phrase repeats across pages.
- Home: Sprintwise: user story readiness checker for Product Owners.
- Product, Guide and Demo: each has its own title (the readiness check, checking stories before sprint planning, scoring a sample backlog).
- New FAQ answer: what a Definition of Ready is, and how Sprintwise checks it.
- About page: says "code you can read on GitHub" instead of "open source", which matches the v2.24 license.
v2.24: A noncommercial license, who made it, and search engines
- New license: the code on GitHub stays public to read, but it's now under the PolyForm Noncommercial 1.0.0 license instead of MIT. Anyone can read it, learn from it and run it for themselves; selling it or using it in a business needs permission. Copies taken earlier keep MIT.
- Who made it: the footer says "Made by Nader Absy", linking to naderabsy.com.
- Search engines: the home page describes Sprintwise to them in the standard schema.org format (name, a free web app for Product Owners, its maker and the FAQ). That helps a search for "Sprintwise" find the site.
- Using Sprintwise: nothing changes; it's still free.
v2.23: Fairer scores, steadier screens
The second half of the full code review: scoring mistakes, screens that lost your place, and upkeep.
Scoring (rules version 7, so every story is scored again)
- A lone dash no longer counts as an acceptance criterion, and "2.5 MB is the limit" keeps its 2.
- Criteria in the description score the same as in the criteria field, so a vague word there no longer costs points twice.
- A bold or "##" Acceptance criteria heading isn't mistaken for text left over from an AI chat.
- Trends no longer claim that more Ready stories meant more done when sprints started equally Ready.
Screens
- Enter in the import search box filters the list instead of importing everything ticked. In the Jira search box, it runs the preview.
- Back button: unsaved story edits survive it, and opening the story again offers them back.
- Refinement stays on the story you're estimating.
- The change log's Why tags stay on their own rows.
- Keyboard focus stays put after a quick save.
- Delete, share-link and nightly-sync buttons say when they couldn't save.
- Phones: the band is written under each title, not shown by colour alone.
- The sprint day count uses your own date from the start.
Imports
- Points come from the column that has them.
- A row with an unquoted comma is flagged.
- Values like 1e3 are rejected.
Behind the scenes
- Database tests: the code that locks and merges is now tested against a real database, on every change.
- Database layout check: GitHub also checks that the database layout matches the code.
- Node: version 24 is pinned.
- Docs are updated.
v2.22.1: Jira works again
v2.22 made every Jira action (Sync, Send, Import from Jira) say the connection had expired. The cause was a token lock that the database library couldn't read. This release fixes it, and the error now records its real cause. Nothing was changed while those actions failed.
Checked live against a real Jira Cloud site:
- Sync updated all 9 stories.
- Send wrote new points while keeping a description change a teammate had just made in Jira.
- A second Sync brought that change into Sprintwise.
v2.22: Your text is safe with Jira
Fixes from a full review of Sprintwise's code: imports and Jira never quietly lose or overwrite anyone's work.
- Re-importing: a file with fewer columns (say, only Key, Summary and Status) leaves the descriptions, criteria and points already saved as they are.
- Send to Jira:
- It sends only what you edited here.
- It never sends a field back over a newer change a teammate made in Jira. If you both changed the same field, it tells you instead.
- Criteria into a Jira description: writing them no longer removes the code, tables, panels or notes that follow.
- Finished issues: stories finished in Jira are finished here after a Sync, even when the search leaves finished issues out.
- Stories edited here: they still take Jira's status and any change to fields you didn't edit. Points or criteria that Jira won't take stay edited, so Sync doesn't undo them. Points go to the story points field the issue actually uses.
- Left-out issues: issues unticked at import, or deleted here, stay out of later syncs.
- Sprint log: moving criteria between the description and the criteria field no longer shows as a change.
- Nightly sync:
- It records why a project failed.
- It carries on with the other projects.
- It can't run past its time limit.
- Jira connection: reconnecting with a different Atlassian account replaces the old connection.
- Snapshots: they're limited by stored text and by how many you can save in a few minutes.
- Re-scoring: it's faster, and scores always use the latest settings. Rules version 6.
Note: this release broke every Jira action. v2.22.1 fixes it, so use v2.22.1.
v2.21: Tested against a real Jira site
Fixes from importing, editing, sending and syncing real, messy Jira Cloud issues.
- Jira's numbered lists are no longer mistaken for text left over from an AI chat, which held those stories below Ready.
- Inline code keeps its braces, as in {{GET /cards/{id}}}.
- A code sample, panel or table after the acceptance criteria isn't counted as a criterion.
- Jira's info, note, warning and plain panels show as boxes instead of raw tags.
- Checklists read as bullets, with ticked items struck through.
- When a very long description is cut to fit, criteria written at its end are kept.
- A sub-task's parent story is no longer listed as an epic in the import filters.
- Projects linked to Jira say that statuses come from Jira, since Sync puts Jira's status back.
v2.20: Safer when things go wrong
A third test run, this time as a hostile user, with things failing, with a year's worth of data, and through a first-time visitor's eyes.
- A save that fails (offline, signed out, or during an update) keeps what you typed and says what happened, instead of showing an error page.
- Previewing a Jira search no longer changes which Jira site the project sends to; only importing does, and a project stays with one site.
- Exported CSVs can't hide a spreadsheet formula behind a list bullet.
- A long link or word wraps instead of pushing the page sideways on a phone.
- Invisible characters copied along with a key are dropped, and an odd key like STORY-9999999999999999 can't block new ones.
- A sprint's day count uses your own date, so it's right in New Zealand's morning too.
- The limits on projects, stories and sprints hold even for requests sent at the same moment, with a cap on stored snapshots and on heavy actions in a few minutes.
- A Reconnect Jira button appears when the connection has expired; Send to Jira stops when Jira is busy or slow and says what's left to send.
- Emoji are never cut in half, deep Jira bullets can't push text off screen, and a link that names one site but opens another shows where it really goes.
- Each public page has its own title and description for search results and link previews, with a sitemap and a home-screen icon.
- The FAQ says plainly that the rules read English.
v2.19: A second full test run
Fixes and touches from using Sprintwise start to finish again, plus speed-ups for teams with many sprints.
- Jira issues with very long descriptions are cut to fit instead of being skipped, so Sync keeps their status up to date. They aren't sent back, so Jira keeps the full text.
- Story points accept a decimal comma: 1,5 is 1.5.
- Point totals never show long decimals such as 0.30000000000000004.
- A new story never reuses the key of a deleted one that's still in a sprint.
- An edit saved while Jira syncs, or while stories are being sent, is never overwritten or lost.
- Issues created in Jira between Preview and Import are picked up by the next sync.
- Two snapshots saved at the same moment, from two tabs, can't double the change log.
- Sub-tasks are left unticked at import, like epics, and new ones aren't added by Sync.
- The backlog says why a story scoring 80 or more isn't Ready, such as "Too big".
- Running sprints show which day they're on and how many are left; a new sprint suggests its name and dates.
- Refinement leaves out stories the current sprint is already working on.
- A running sprint's report reads "so far" rather than as a final result.
- Shared reports and backlogs say what made them, for viewers who'd like the same.
- The Sprints page and sprint page load less, and two database indexes keep edits quick as history grows.
v2.18: Fixes from a full test run
Ten fixes found by using Sprintwise start to finish, the way a new Product Owner would.
- Long project names no longer push the page sideways on a phone.
- Epics in a Jira export or search are left unticked, as finished work is, and new epics aren't added by Sync.
- The report only compares the readiness of changed and unchanged stories once there are at least 3 of each.
- Net change says how much came from re-estimates, so a sprint that grew only that way adds up.
- "Import stories" (not "Import CSV") on the backlog, and an empty project mentions Jira.
- The key field explains STORY-1 and when to use the Jira key.
- Exported CSVs keep each story's type and epic, so re-importing keeps bugs as bugs.
- The demo sprint is always the last fortnight, so it never looks out of date.
- On a phone, statuses fit their box and the burn-up's labels are readable.
- The first project's name box has a visible label.
v2.17: Nightly Jira sync
While a sprint is running, Sprintwise syncs from Jira every night, so the burn-up fills in by itself.
- Projects connected to Jira with a sprint built from the backlog sync between 22:00 and 23:00 UTC, using your own Jira connection.
- Each day's changes land on that day, even when nobody clicked Sync.
- Stories you edited here and haven't sent to Jira are left as they are, as with Sync from Jira.
- The backlog says when the last sync was automatic, and why if a nightly sync couldn't run.
- Turn it off for a project in its Settings.