Skip to content

release(3.5.0): license, configuration and dependency improvements#891

Closed
beatrizsmerino wants to merge 37 commits intomasterfrom
release/3.5.0
Closed

release(3.5.0): license, configuration and dependency improvements#891
beatrizsmerino wants to merge 37 commits intomasterfrom
release/3.5.0

Conversation

@beatrizsmerino
Copy link
Owner

@beatrizsmerino beatrizsmerino commented Mar 12, 2026

release(3.5.0): license, configuration and dependency improvements

⏱️ Estimate 📊 Priority 📏 Size 📅 Start 📅 End
2h P1 M 12-03-2026 12-03-2026

📸 Screenshots

Before After
N/A — This change has no visual impact. N/A — This change has no visual impact.

🔄 Type of Change

  • Bug fix
  • Breaking change
  • Dependency
  • New feature
  • Improvement
  • Configuration
  • Documentation
  • CI/CD

📝 Summary

  • Minor release with license, configuration and dependency improvements
  • Includes stylelint peer dependency fix, prettier YAML formatting and .editorconfig updates
  • Overrides scoped to specific consumers to improve maintainability

📋 Changes Made

Configuration

License

  • Add missing LICENSE file with MIT and update package.json license from ISC to MIT

Prettier

  • Rename JSON config files to .json extension
  • Add .prettierrc to prettier:fix script
  • Add YAML override to .prettierrc.json and YAML to prettier:fix script
  • Add printWidth to YAML override in .prettierrc.json

EditorConfig

  • Sort properties alphabetically in [*] section
  • Update header comment with documentation URL
  • Create YAML section

New Features

  • Create .npmrc with engine-strict=true

Improvements

  • Convert author from string to JSON object in package.json
  • Format .prettierrc with correct indentation

Dependencies

  • Resolve stylelint peer dependency warnings
  • Update chalk, postcss and vue to latest patch versions
  • Scope global overrides to specific consumers

Documentation

  • Add License section to README.md

Version

  • Bump version from 3.4.1 to 3.5.0

🧪 Tests

  • Verify npm install completes without errors:
npm install
  • Verify npm run lint passes:
npm run lint
  • Verify vulnerability count is reduced:
npm audit

🔗 References

Related Issues

* master:
  feat(package): update project version number from `3.3.0` to `3.3.1`
  docs(readme): add dynamic badges for `node` and `npm` versions
  fix(workflow): add support for major version limit in `update-node-npm.yml`
* master:
  feat(package): update project version number from `3.3.1` to `3.3.2`
  feat(workflow): add `cache: 'npm'` support in `setup-node`
  fix(workflow): run `test` before `build` in `check-node.yml`
  fix(workflow): use `npm run test` instead of `npm test` in `check-node.yml`
* master:
  build(package): bump version from `3.4.0` to `3.4.1`
  fix(deps): pin `eslint-plugin-vue` to exact version `10.6.2`
Steps:
- Add `LICENSE` entry to `.eslintignore` to prevent ESLint parsing errors during `pre-commit`

Reason:
- `.lintstagedrc` is configured with `"*": "npm run lint"` which passes all staged files as arguments
- When `LICENSE` is passed directly as argument to ESLint, it tries to parse it regardless of the glob pattern in the command
- Unlike Prettier and Stylelint which ignore files not matching their patterns, ESLint processes any file passed as direct argument
- `LICENSE` file is not valid JavaScript/JSON and causes parsing errors

References:
- Issue #824
Steps:
- Create `LICENSE` file in repository root with `MIT` License text

Reason:
- The `LICENSE` option was not selected when creating the repository on GitHub
- Repositories without a `LICENSE` file have no clear terms of use

References:
- Issue #824
Steps:
- Change `"license": "ISC"` to `"license": "MIT"` in `package.json`

Reason:
- `npm init -y` sets `"license": "ISC"` by default
- GitHub does not offer `ISC` as a license option when creating a repository
- `MIT` and `ISC` are functionally equivalent licenses, but `MIT` is preferred for consistency with `LICENSE` file

References:
- Issue #824
* bugfix/license:
  fix(license): update `package.json` license from `ISC` to `MIT`
  fix(license): add missing `LICENSE` file with `MIT`
  fix(eslint): add `LICENSE` to `.eslintignore`
Error:
- The `.prettierrc` file is not formatted consistently

Reason:
- The `prettier:fix` script does not include `.prettierrc` in its file patterns

Solution:
- Add `.prettierrc` to the file patterns in `prettier:fix` script

References:
- Issue #825
Steps:
- Run `npm run prettier:fix` to format `.prettierrc`
- Compact arrays to single line according to project config

Reason:
- The `.prettierrc` file was not fully formatted
- Now the file follows the project's formatting configuration

References:
- Issue #825
* bugfix/prettier:
  style(prettier): format `.prettierrc` with correct indentation
  fix(prettier): add `.prettierrc` to `prettier:fix` script
Steps:
- Create `.npmrc` file in the project root
- Add `engine-strict=true` configuration

Reason:
- Ensures the correct Node.js version is used when installing dependencies
- Prevents compatibility issues with packages that require specific Node versions

References:
- Issue #826
* bugfix/npm:
  feat(npm): create `.npmrc` with `engine-strict=true`
Steps:
- Update `author` field in `package.json` from string to object format
- Include `name`, `email` and `url` properties

Reason:
- JSON object format provides more structured information
- Allows including `name`, `email` and `url` separately

References:
- Issue #827
* feature/package:
  refactor(package): convert `author` from string to JSON object
Error:
- `npm install` shows peer dependency warnings for `stylelint-config-recommended`

Reason:
- `stylelint-config-recommended-vue@1.6.1` installs `stylelint-config-recommended@18.0.0`
- Version `18.0.0` requires `stylelint@^17.0.0` but project uses `stylelint@16.26.1`

Solution:
- Add override in `package.json` to force `stylelint-config-recommended@17.0.0`
- Version `17.0.0` is compatible with `stylelint@^16.23.0`

References:
- Issue #835
* bugfix/stylelint:
  build(deps): reinstall npm packages
  fix(deps): resolve stylelint peer dependency warnings
  build(deps): reinstall npm packages
Error:
- JSON config files without extension (`.prettierrc`, `.lintstagedrc`) required manual configuration in overrides and script
- Adding files one by one to overrides is not practical because new JSON config files would be forgotten
- Using a pattern like `.*rc` to match all files causes parsing errors with non-JSON files (`.npmrc`, `.nvmrc`, `.browserslistrc`)

Reason:
- These files contain JSON format but Prettier cannot auto-detect them without the `.json` extension

Solution:
- Rename `.prettierrc` → `.prettierrc.json`
- Rename `.lintstagedrc` → `.lintstagedrc.json`
- Simplify overrides to only `*.json` pattern
- Remove individual file references from `prettier:fix` script

References:
- Issue #825
* bugfix/prettier:
  fix(prettier): rename JSON config files to `.json` extension
Error:
- YAML files are not formatted with the correct indentation
- The IDE shows incorrect indentation with red marks

Reason:
- No override block exists for `*.yml` and `*.yaml` files in `.prettierrc.json`
- YAML standard requires 2-space indentation, not tabs

Solution:
- Add override block for `*.yml` and `*.yaml` files with `tabWidth: 2` and `useTabs: false`

References:
- Issue #836
Error:
- YAML files are not included in the `prettier:fix` script
- Running `npm run lint` does not format YAML files

Reason:
- The glob pattern in `prettier:fix` script does not include `yml` and `yaml` extensions

Solution:
- Add `yml` and `yaml` extensions to the `prettier:fix` script glob pattern

References:
- Issue #836
Error:
- The IDE shows YAML files with red marks for incorrect indentation

Reason:
- No `.editorconfig` file exists in the project
- YAML standard requires 2-space indentation, not tabs

Solution:
- Create `.editorconfig` file with project settings
- Add `[*.{yml,yaml}]` section with `indent_style = space` and `indent_size = 2`

References:
- Issue #836
Error:
- Prettier cuts long lines in YAML files breaking readability

Reason:
- The default `printWidth: 120` applies to YAML files
- Long strings with GitHub Actions variables get split into multiple lines

Solution:
- Add `printWidth: 10000` to the YAML override to prevent line breaks

References:
- Issue #836
Steps:
- Run `npm run lint` to format all YAML files

Reason:
- Apply consistent formatting with 2-space indentation following YAML standard

References:
- Issue #836
* bugfix/prettier:
  style(prettier): format `YAML` files with 2-space indentation
  fix(prettier): add `printWidth` to `YAML` override in `.prettierrc.json`
  fix(prettier): create `.editorconfig` with `YAML` section
  fix(prettier): add `YAML` to `prettier:fix` script
  fix(prettier): add `YAML` override to `.prettierrc.json`
Steps:
- Add `## 📄 License` section at the end of `README.md`

Reason:
- Users should be able to quickly identify the license type from the README
- The `LICENSE` file and `package.json` already reference `MIT` but the README has no mention of it

References:
- Issue #824
* bugfix/license:
  fix(license): add `License` section to `README.md`
Steps:
- Replace `# editorconfig.org` with `# Editor configuration, see https://editorconfig.org`

Reason:
- Standardize header comment format across all repositories
- Include direct link to documentation for quick reference

References:
- Issue #840
Steps:
- Reorder properties in `[*]` section alphabetically

Reason:
- Consistent property order for quick visual comparison between repos

References:
- Issue #840
* bugfix/editorconfig:
  fix(editorconfig): sort properties alphabetically in `[*]` section
  fix(editorconfig): update header comment with documentation URL
* master: (38 commits)
  build(deps): reinstall npm packages
  build(deps-dev): bump lint-staged from 16.3.2 to 16.3.3
  build(deps-dev): bump sass from 1.97.3 to 1.98.0
  build(deps): reinstall npm packages
  build(deps): bump immutable from 5.1.4 to 5.1.5
  build(deps): bump svgo from 2.8.0 to 2.8.2
  ci(deps): update `node@24.14.0` and `npm@11.9.0` versions
  build(deps-dev): bump @commitlint/config-conventional
  build(deps-dev): bump @commitlint/cli from 20.4.2 to 20.4.3
  build(deps-dev): bump lint-staged from 16.3.1 to 16.3.2
  build(deps): bump actions/setup-node from 6.2.0 to 6.3.0
  build(deps-dev): bump lint-staged from 16.3.0 to 16.3.1
  build(deps-dev): bump lint-staged from 16.2.7 to 16.3.0
  build(deps-dev): bump minimatch from 3.1.2 to 3.1.5
  build(deps): bump rollup from 4.57.0 to 4.59.0
  build(deps): bump svelte from 5.53.0 to 5.53.6
  build(deps-dev): bump ajv from 6.12.6 to 6.14.0
  build(deps): bump vue-router from 5.0.2 to 5.0.3
  build(deps-dev): bump @commitlint/config-conventional
  build(deps): bump svelte from 5.48.5 to 5.53.0
  ...

# Conflicts:
#	.github/workflows/check-node.yml
#	package-lock.json
Reason:
- Patch updates detected by `ncu` (`npm-check-updates`) not covered by Dependabot
- `chalk` `^5.6.0` → `^5.6.2`
- `postcss` `^8.5.6` → `^8.5.8`
- `vue` `^3.5.22` → `^3.5.30`

Solution:
- Update all three packages to their latest patch versions

References:
- Issue #890
Error:
- Global overrides for `braces`, `micromatch`, `postcss` and `stylelint-config-recommended` applied to all packages unnecessarily

Reason:
- `braces` override is redundant because `micromatch@4.0.8` already depends on `braces@^3.0.3`
- `micromatch` and `postcss` overrides are only needed by `vite-plugin-svg-icons` (via `svg-baker@1.7.0`)
- `stylelint-config-recommended` override is only needed by `stylelint-config-recommended-vue`

Solution:
- Remove redundant `braces` override
- Scope `micromatch` and `postcss` overrides to `vite-plugin-svg-icons`
- Scope `stylelint-config-recommended` override to `stylelint-config-recommended-vue`

References:
- Issue #890
* bugfix/deps:
  fix(deps): scope overrides to their specific consumers
  fix(deps): update `chalk`, `postcss` and `vue` to latest patch versions
@beatrizsmerino beatrizsmerino added this to the Project Setup milestone Mar 12, 2026
@beatrizsmerino beatrizsmerino added the enhancement New feature or request label Mar 12, 2026
@beatrizsmerino beatrizsmerino force-pushed the release/3.5.0 branch 2 times, most recently from a20646f to c070a5f Compare March 12, 2026 06:43
Steps:
- Update version field in `package.json` and `package-lock.json`

Reason:
- New minor release with license, configuration and dependency improvements

References:
- Issue #824, #825, #826, #827, #835, #836, #840, #890
- https://semver.org/
@beatrizsmerino
Copy link
Owner Author

beatrizsmerino commented Mar 14, 2026

CI fix applied in #892

This PR fails CI because check-node.yml tests Node [22, 24] but engines.node is 24.14.0 with engine-strict=true, causing Node 22 to fail npm install.

Fix applied

Issue #892 fixes the root cause:

  • Updated check-node.yml matrix from [22, 24] to [24.14.0]
  • Added deploy.yml to update-node-npm.yml automated workflow
  • Updated deploy.yml node-version from 20.x to 24.14.0
  • Updated update-node-npm.yml to propagate exact versions

Closing this PR as the CI incompatibility has been resolved directly on develop.

@beatrizsmerino beatrizsmerino added bug Something isn't working dependencies Dependency updates github_actions GitHub .github/ folder configuration configuration Project setup and configuration files labels Mar 14, 2026
@beatrizsmerino beatrizsmerino changed the title release(3.5.0): dependency updates, overrides review and configuration improvements release(3.5.0): license, configuration and dependency improvements Mar 14, 2026
@beatrizsmerino beatrizsmerino linked an issue Mar 14, 2026 that may be closed by this pull request
20 tasks
@beatrizsmerino beatrizsmerino removed the github_actions GitHub .github/ folder configuration label Mar 14, 2026
@beatrizsmerino beatrizsmerino linked an issue Mar 14, 2026 that may be closed by this pull request
20 tasks
@beatrizsmerino beatrizsmerino deleted the release/3.5.0 branch March 14, 2026 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment