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

chore: prepare v8.20.0 release #6175

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

chore: prepare v8.20.0 release #6175

wants to merge 1 commit into from

Conversation

Antreesy
Copy link
Contributor

@Antreesy Antreesy commented Oct 29, 2024

v8.20.0 (2024-10-29)

Full Changelog

📝 Notes

Now you can use v-model directive, :model-value prop, and @update:model-value (@update:modelValue) event in all data input components to have compatibility with v9 in the future.

<!-- Only v8 (Vue 2) -->
<NcTextField :value.sync="username" />
<!-- Compatible with both v8 (Vue 2) and v9 (Vue 3) -->
<NcTextField v-model="username" />
<!-- same as -->
<NcTextField :model-value="username" @update:model-value="username = $event" />

If you already use v-model with a custom writable computed on :value.sync components before, it might not work as expected anymore. Make sure to remove or adjust it before update.
See the full list in v9 breaking changes.

🚀 Enhancements

  • feat: add v-model support for input-like components #5418 (kyteinsky)
  • feat: forward compatibility with v9 on v-model props/events #6172 (ShGKme)
  • feat(NcRichText): add styles to mount point for custom picker and custom widget elements #6108 (julien-nc)
  • feat(NcRichText): make interactive widgets opt-in #6151 (Antreesy)

🐛 Fixed bugs

Changed

  • Updated workflows and dependencies
  • Updated translations

@Antreesy Antreesy added the 4. to release Ready to be released and/or waiting for tests to finish label Oct 29, 2024
@Antreesy Antreesy added this to the 8.20.0 milestone Oct 29, 2024
@Antreesy Antreesy self-assigned this Oct 29, 2024
@Antreesy
Copy link
Contributor Author

Antreesy commented Oct 29, 2024

Using of event.target.value now fails for inputs:

<NcTextField v-model="computedProp"/>

computedProp: {
	set(event) {
		this.updateValue(event.target.value)
	},
},

as it emits 'update:value', event.target. value instead:

<NcTextField v-model="computedProp"/>

computedProp: {
	set(value) {
		this.updateValue(value)
	},
},

Should we consider it a breaking change?

Copy link
Contributor

@julien-nc julien-nc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Antreesy Yes it's a breaking change IMO.

@ShGKme
Copy link
Contributor

ShGKme commented Oct 29, 2024

Should we consider it a breaking change?

I wouldn't call it a breaking change. This is invalid usage, component didn't have documented v-model, direct (correct) usage of v-model didn't work. It had different kind of value on get and set.

@ShGKme
Copy link
Contributor

ShGKme commented Oct 29, 2024

  • feat: add v-model support for input-like components #5418 (kyteinsky)

Would be good to combine with #6172

Then it actually has almost no breaking change with v9 in one step

@Antreesy
Copy link
Contributor Author

Antreesy commented Oct 29, 2024

This is invalid usage

I have to check, if :value.sync is also affected by it

Would be good to combine with #6172

Waiting for you then

@susnux
Copy link
Contributor

susnux commented Oct 29, 2024

I have to check, if :value.sync is also affected by it

Also would consider this unexpected / undocumented / invalid behavior.
value.sync should return the synced value, not the keyboard event. For that there is the input event.

@ShGKme
Copy link
Contributor

ShGKme commented Oct 29, 2024

:value.sync would only be affected if update:value event payload was changed. New model option only affects v-model directive.

@Antreesy
Copy link
Contributor Author

Antreesy commented Nov 5, 2024

:value.sync would only be affected if update:value event payload was changed. New model option only affects v-model directive.

Tested.

  1. :value + @input emits ('update:value', event.target.value)
  2. :value.sync emits ('update:value', newValue)

v-model before this release worked as p.1, now as p.2. I'd skip mentioning it in changelog as undocumented feature, that shouldn't suppose to work before.

CHANGELOG.md Outdated Show resolved Hide resolved
Copy link
Contributor

@susnux susnux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would also add the note @ShGKme proposed.

Signed-off-by: Maksim Sukharev <[email protected]>
@ShGKme
Copy link
Contributor

ShGKme commented Nov 6, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
4. to release Ready to be released and/or waiting for tests to finish
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants