Add draft release notes for Djblets 5.0.
Review Request #13795 — Created April 25, 2024 and submitted
This change adds the draft release notes for Djblets 5.0.
Built HTML and checked the output.
Summary | ID |
---|---|
af58a57d04a851a928130a6220123530a1a52fad |
Description | From | Last Updated |
---|---|---|
We also now require Spina 3.1.x. This impacts extensions and any code importing our TypeScript. |
chipx86 | |
We need to mention that Ink is now required for applications consuming Djblets, and what needs to be done there. |
chipx86 | |
We removed a custom $.delay in favor of the jQuery one. |
chipx86 | |
For configforms, we should document how TypeScript code is now expected to import from this (we flattened the namespace). |
chipx86 | |
We fixed a focus recursion crash when there are multiple modalboxes on the screen using $.fn.modalBox. |
chipx86 | |
For datagrids: We now longer provide age1 through age5, month, or summary column styles. |
chipx86 | |
Djblets UI elements now support dark mode. |
chipx86 | |
Missing items for registries: Registries are now thread-safe (we should explain the implications and which parts), using a reentrant lock. … |
chipx86 | |
Sounds like we're saying "expand" too many times, can take out the "to expand". |
maubin | |
Might sound better to say "... methods that subclasses can ..." |
maubin | |
Let's also indicate what versions we've dropped. |
chipx86 | |
We should specify explicitly that 3.2 support has been removed, since this is a major change. |
chipx86 | |
Missing some text after the version. |
chipx86 | |
I realized, we assume the presence of this setting in our code, but we don't ever force it into existence … |
chipx86 | |
We should be specific about this being an issue in the form. |
chipx86 | |
We should :py:class: this. |
chipx86 | |
Since this is a development library, we probably need to go more into detail on this subject, link to the … |
chipx86 | |
We need to specify where this applies to, so people can know where use_distinct is set. |
chipx86 | |
:mailheader: role (legacy naming aside, this is the correct role to use). |
chipx86 | |
Should use :pypi: for the reference. Also, single backticks in ReST don't produce template literals, just broken references. |
chipx86 | |
We should reference the thing include_bundles is on. Should use: :py:attr:`Class.attr <path.to.Class.attr>`. Otherwise the context will be lost. |
chipx86 | |
This should use :pypi:. |
chipx86 | |
Same here. |
chipx86 | |
These need :py:func:. |
chipx86 | |
Two blank lines before reference definitions. |
chipx86 | |
This should reference the filter with :py:func:. |
chipx86 | |
These should reference using :py:class:. |
chipx86 | |
This should reference using :py:func:. |
chipx86 | |
Typo: "a new new items". |
chipx86 | |
This seems to be missing something? |
chipx86 | |
We should mention the version we removed. |
chipx86 | |
Keeping with prior releases, the second sentence should go in the description area. Makes it easier to skim. |
chipx86 | |
Same note as above. Also, it's not just the JavaScript, but anything outputting HTML as well. So maybe "consuming parts … |
chipx86 | |
We should also say that what this defaults to, and maybe give an example of changing this. |
chipx86 | |
Let's link to Ink. |
chipx86 | |
We don't really need it in the static media bundles. We just need it on the page. We're distributing as … |
chipx86 | |
:py:class: |
chipx86 | |
Literals require two backticks in ReST. |
chipx86 | |
This is far too dense to comfortably follow. It'll help readability a lot if we take these code samples and … |
chipx86 | |
These should be :py:meth:. since they're pointing to methods on a class. As-is, we're going to see the function names … |
chipx86 | |
Description should be in its own paragraph. Summary lines should be concise and scannable. |
chipx86 | |
This feels more like description content. Let's give it a more concise summary stating that we added the field, then … |
chipx86 | |
We should reference the class. |
chipx86 | |
These should be :py:meth:. |
chipx86 | |
Can we link nose, so there's context for anyone not familiar? |
chipx86 | |
Should be django.core.files.File. |
chipx86 | |
:py:meth: |
chipx86 | |
:py:meth: |
chipx86 | |
Should be split into a summary / description. |
chipx86 | |
Should be split into a summary / description list. |
chipx86 | |
Summary / description. The description isn't correct, though. I fixed this due to hitting it in production with the confirmation … |
chipx86 | |
Installation is always the first section in the release notes. |
chipx86 | |
Two blank lines between content and reference declarations. |
chipx86 | |
This will be 5.x, rather than 5.0. |
chipx86 | |
Let's explicitly document 0.5.x. |
chipx86 | |
This comment was resolved earlier, but we don't need data-theme= for Ink. |
chipx86 |
- Commits:
-
Summary ID d7922a77a6cd50866cc9868c65c25000130853cb 1e75d1070c5a45e5819aaa66e676450df95ac443
Checks run (2 succeeded)
-
-
-
-
I realized, we assume the presence of this setting in our code, but we don't ever force it into existence anywhere. We either need to either make this a breaking requirement for all consumers, or we need to conditionalize access in some form (which is error-prone to do in every single case).
Let's discuss on Slack. We need a solution to this.
-
-
-
Since this is a development library, we probably need to go more into detail on this subject, link to the affected methods.
-
-
-
Should use
:pypi:
for the reference.Also, single backticks in ReST don't produce template literals, just broken references.
-
We should reference the thing
include_bundles
is on. Should use::py:attr:`Class.attr <path.to.Class.attr>`.
Otherwise the context will be lost.
-
-
-
-
-
-
-
-
-
-
-
-
We need to mention that Ink is now required for applications consuming Djblets, and what needs to be done there.
-
-
For configforms, we should document how TypeScript code is now expected to import from this (we flattened the namespace).
-
We fixed a focus recursion crash when there are multiple modalboxes on the screen using
$.fn.modalBox
. -
-
-
Missing items for registries:
- Registries are now thread-safe (we should explain the implications and which parts), using a reentrant lock.
- Subclasses can override pre/post handlers for
populate()
,register()
,unregister()
, andreset()
. Subclasses must move to this instead of overriding these methods in order to ensure thread safety. - The
populated
attribute is deprecated. We now have astate
attribute.
-
- Commits:
-
Summary ID 1e75d1070c5a45e5819aaa66e676450df95ac443 e59fc10ada431aa7715fd5d275c980abb2414833
Checks run (2 succeeded)
- Commits:
-
Summary ID e59fc10ada431aa7715fd5d275c980abb2414833 03a40f18548aa409e938d0da6d3c95815d5119f2
Checks run (2 succeeded)
-
-
-
Keeping with prior releases, the second sentence should go in the description area. Makes it easier to skim.
-
Same note as above.
Also, it's not just the JavaScript, but anything outputting HTML as well. So maybe "consuming parts of Djblets that use JavaScript or provide HTML, ..."
-
-
-
We don't really need it in the static media bundles. We just need it on the page. We're distributing as compiled CSS/JS files that can be used directly.
I'd say, "Assuming you have added the Ink CSS file to your page, ..."
-
-
-
This is far too dense to comfortably follow. It'll help readability a lot if we take these code samples and turn them into code blocks.
-
These should be
:py:meth:
. since they're pointing to methods on a class.As-is, we're going to see the function names and not the parent classes. That mixed with us talking about two classes makes this a bit confusing.
I'd suggest we break this into two paragraphs, one per class, and add a reference for the class we're talking about. So, instead of "datagrid subclasses can ...", do a
:py:class:
with theDataGrid
class. And then same with theColumn
class. -
-
This feels more like description content. Let's give it a more concise summary stating that we added the field, then explain the field.
-
-
-
-
-
-
-
-
-
Summary / description.
The description isn't correct, though. I fixed this due to hitting it in production with the confirmation dialog for deleting a review within the Review Dialog. It blew up with crashes in the JavaScript console. Still operational, but we've been spamming crashes when bringing up a second dialog for many versions now.
- Commits:
-
Summary ID 03a40f18548aa409e938d0da6d3c95815d5119f2 55a80455df65e23c01c0232262dd154fd9b08d26
Checks run (2 succeeded)
- Commits:
-
Summary ID 55a80455df65e23c01c0232262dd154fd9b08d26 5901464a2f80270f4b6f428ab61d56f251f9ebc4
Checks run (2 succeeded)
- Commits:
-
Summary ID 5901464a2f80270f4b6f428ab61d56f251f9ebc4 1b2072efaaabf20d08b3bcc98e3ff514fb066da4