Skip to content

Release 1.5.0: recipe scaling in Cook Mode, GPL-3.0 license - #19

Open
nikoneex wants to merge 5 commits into
mainfrom
release/v1.5.0
Open

nikoneex wants to merge 5 commits into
mainfrom
release/v1.5.0

Conversation

@nikoneex

@nikoneex nikoneex commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

Release 1.5.0: recipe scaling in Cook Mode, and the move to GPL-3.0.

Recipe scaling in Cook Mode

  • Cook Mode opens on an ingredients page before step 1. A checklist with native checkboxes and a −/+ servings stepper that rescales every amount. Ticks and the chosen servings are kept while moving through the steps.
  • Scaling follows the same rules as the Kaper web app. Amounts round to two decimals; to taste, as needed, pinch, and dash pass through unchanged.
  • Recipes with no ingredients skip straight to step 1. Recipes whose servings count is not a positive whole number show amounts as written and hide the stepper.
  • The desktop cook panel starts a fresh session on every open, so a reused panel never carries one recipe's servings or ticks into the next. This matches the mobile modal.
  • Ingredient line markup is shared between the preview and the checklist via a new IngredientText component.

License (merged from #17)

  • From this release the plugin is licensed under GPL-3.0-only with a narrow Obsidian linking exception. Releases through 1.4.4 remain available under MIT, and the MIT notice is retained under docs/licensing/.
  • package.json metadata, the README's license and contribution sections, and the changelog are updated.
  • The production main.js and styles.css carry a license banner, and the Release workflow attaches LICENSE and the two notices to the draft release.

Changelog updated and version bumped to 1.5.0 (manifest.json, versions.json, package.json).

Test plan

  • npm run format:check, npm run lint, npm test (132 tests), and npm run build pass locally on the merged branch; CI runs the same.
  • Built main.js and styles.css start with the GPL banner.
  • Scaling 2 → 4 doubles amounts, 2 → 1 halves with two-decimal rounding, pinch is untouched, and − is disabled at 1.
  • Ticks and servings survive leaving the ingredients page and returning; arrow keys, Previous/Next, and Finish work.
  • Manual check in the Obsidian test vault on desktop.

After merge

  1. Tag the merge commit on main as 1.5.0 and push the tag; the Release workflow builds and publishes the GitHub release from it. Confirm the draft release contains LICENSE, OBSIDIAN-LINKING-EXCEPTION.txt, and MIT-previous-versions.txt alongside the plugin assets.
  2. Merge main back into dev so it carries the version bump; License future plugin releases under GPL-3.0 #17 then closes as merged.

Cook Mode now opens on an ingredients page before step 1: a grocery-style
checklist with native checkboxes and a −/+ servings stepper that rescales
every amount. The scaling engine is a port of the Kaper web app's, so a
recipe scales identically in both: amounts round to two decimals and units
with no meaningful multiple (to taste, as needed, pinch, dash) pass through.

Cook Mode navigation is now a page model (page 0 = ingredients, page n =
step n), so the progress bar reads 0% before cooking starts. Recipes with no
ingredients skip straight to step 1; recipes whose servings count is not a
positive whole number show the amounts as written with no stepper, so a
negative or NaN count can never throw mid-render. The desktop leaf keys the
component per open so a reused panel never carries one recipe's servings or
ticks into the next.

The ingredient line markup (amount, name, note, optional, substitution) is
extracted into a shared IngredientText so the preview and the checklist
cannot drift.
@nikoneex nikoneex changed the title Release 1.5.0: recipe scaling in Cook Mode Release 1.5.0: recipe scaling in Cook Mode, GPL-3.0 license Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant