Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plan V4 Release #1908

Closed
52 of 58 tasks
bmish opened this issue Apr 23, 2021 · 19 comments
Closed
52 of 58 tasks

Plan V4 Release #1908

bmish opened this issue Apr 23, 2021 · 19 comments
Assignees
Labels
Milestone

Comments

@bmish
Copy link
Member

bmish commented Apr 23, 2021

Planned changes for v4

Future changes for v5

  • Require rules with options to provide a JSON Schema in meta.options like ESLint. This is a large feature and requires the meta property for rules to be implemented.

Pre-release checklist:

Post-release checklist:

Pre-release versions:

See the migration guide for a summary.

Please edit this list directly or reply in a comment to suggest additional changes to include or provide feedback about existing changes. Help with testing or implementing changes/fixes is welcome!

For reference, V3 was released 2021-03-02 (#1315).

Release command for betas:

EDITOR=vim  yarn release --preReleaseId=beta --npm.tag=next --github.preRelease 
@dcyriller
Copy link
Member

Hi @bmish, #2172 upgrades @glimmer/syntax from v0.65.0 to v0.83.0 via ember-template-recast v6. It will probably be a breaking change and could be released in the same release train? I am adding it to the list.

@bmish
Copy link
Member Author

bmish commented Nov 8, 2021

@ember-template-lint/maintainers we actually have a pretty large list of breaking changes lined up here already. It would be straightforward for me to address all of the current items when we decide we're ready to proceed with a major release. So it could be a good time for a major release soon.

Open questions:

  1. I added all the new rules since v3 to the list of new recommended rules. Let me know if any of these are unsuitable, or if there are other additional rules we should add to the recommended config.
  2. Should we add exports to package.json to restrict access to package internals? ESLint v8 did this too, but I'm not sure if there are valid/necessary use cases for accessing package internals directly in our plugin.
  3. We could consider converting this plugin to ESM. While most of this involve updating imports/exports, there could be some tricky parts too, so I'm not sure how much work it would be yet. If too much work or too big of a change, I'm not attached to it being part of this release.
  4. Are there other breaking changes we should add to this list?
  5. Is it a good time for a major release?

@bmish
Copy link
Member Author

bmish commented Nov 17, 2021

To get the ball rolling on this, I've begun merging changes into the next branch. I've also added more breaking changes to the list in this ticket. I still need to review the proposed list of new recommended rules. Interested to gather feedback from others too. Once we have all these changes ready in next, we can release an alpha version.

@scalvert
Copy link
Member

We should also consider lint-todo/utils#299 in this release, as it's a breaking change for how todos work/are stored. We were planning on supporting the old todos file format and the new simultaneously, but this potentially makes this easier.

I'm planning on writing a migration tool for folks to run to migrate their old format todos to new format. We'll likely want that in place for this.

@bmish
Copy link
Member Author

bmish commented Nov 17, 2021

@scalvert sounds good, I have added that to the list above, please update the section about TODOs to list each necessary step/change.

I'm thinking that we can do an alpha version in the very near future with most of the changes, and if any of these changes need additional time, we can land them in subsequent pre-release versions in the coming weeks.

@bmish
Copy link
Member Author

bmish commented Nov 19, 2021

I'm not entirely sure what to do about these deprecation comments I found in the code. Does anyone know how we remove the deprecated functionality here? If so, let us know or open a PR targeted to next.

  • // TODO: add a deprecation for accessing _filePath
  • The _moduleName property used in the '${this.ruleName}' rule has been removed. Please use _filePath instead.

@bmish
Copy link
Member Author

bmish commented Nov 19, 2021

Moving the discussion about new recommended rules into #2211. Please review the list in that PR and provide feedback.

@bmish
Copy link
Member Author

bmish commented Dec 3, 2021

v4.0.0-beta.0 has been released (2nd pre-release version)! We'll continue gathering feedback/changes for a few more weeks before the final release.

@elwayman02
Copy link
Contributor

Should this change be included in the v4 release, since it's a breaking change and a bugfix?

#2054

@bmish
Copy link
Member Author

bmish commented Dec 16, 2021

@elwayman02 sure, looks like that PR needs some work still, but I'll add it to the list--IF it can be completed. We have a few more beta releases / few more weeks potentially before the final v4 release here.

@bmish
Copy link
Member Author

bmish commented Dec 29, 2021

Released v4.0.0-beta.3. See the migration guide for a summary.

As far as I can tell, there are no more in-progress changes. So if we don't see any more big changes, we could release a final version next week.

@Windvis
Copy link
Contributor

Windvis commented Jan 3, 2022

I'm not sure I agree with adding the no-model-argument-in-route-templates to the recommended config. That rule forces a workaround for a bug which might have been fixed already according to the linked issue.

I also found this comment which seems to imply that the learning team still wants to use and teach @model instead of this.model so it seems weird that the recommended config would suggest something different.

@Windvis
Copy link
Contributor

Windvis commented Jan 3, 2022

Similarly I don't think the no-mut-helper rule should be added (yet) either. Personally I think using it as a simple setter is still valid until a replacement is officially added to Ember. Creating actions for those basic use-cases is very cumbersome and recommending ember-set-helper feels strange since it's not officially part of Ember itself.

The rfc issue that is linked also indicates that the future of the helper is uncertain, so unless that has changed since then it seems strange to already encourage people to no longer use it?

@bmish
Copy link
Member Author

bmish commented Jan 3, 2022

@Windvis sounds good, can you open separate PRs to remove each of those as recommended in the next branch?

Regarding no-model-argument-in-route-templates, it makes sense to remove this if the issue was fixed and if that style is still taught.

Regarding no-mut-helper, while the intention is to encourage DDAU, I agree this could be too heavy-handed, as mut can be convenient for simple use cases, and it seems there's not a consensus about it according to that issue.

More discussion: https://discord.com/channels/480462759797063690/666416704418611233/927561872637583440

@chriskrycho
Copy link
Contributor

chriskrycho commented Jan 3, 2022

FWIW, the no-model-argument-in-route-templates came out of the Octane migration for the app I work on, and we do not believe it should be a recommended rule. It is a useful tool to have to work around that bug, but @model is absolutely what we should be going with in general (and certainly all new code should be authored that way). The only time you want that lint is when you're migrating Classic code and trying to exactly preserve Classic behavior.

@bmish
Copy link
Member Author

bmish commented Jan 5, 2022

Release is complete: v4.0.0.

Thanks everyone for the feedback and help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants