-
Notifications
You must be signed in to change notification settings - Fork 122
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
Config location separate from directory containing news file and fragments #548
Conversation
The create command already supports this.
5921bab
to
55debb9
Compare
for more information, see https://pre-commit.ci
Gave it some more thought: this is looking even more like a Bugfix because |
Many thanks for the PR. The thing is that normally an issue is created first. with that, we can have a PR created and referencing the original issue. As there is no issue, you can use 548 as the newsfragment / release notes id. Is there already documentation for this functionality ? If there is no documentation, this can be considered a new feature. If there is documentation, but the sub-command don't work as documented, then we have a bug. |
@adiroiban Thanks for the quick response. There is currently no documentation, but That's why it seems more like a bug to me than a missing feature. However, I'll defer to you for the final call, I'm also totally fine adding a feature-typed fragment. |
Can you add some documentation as part of this PR. The documentation should be the ultimate oracle telling what is a bug or a feature. If something is not documented, then any change is a feature. I guess that you try to use towncrier with a So I think that it make sense to add some information in the docs about how is the monorepo support implemented in Regards |
eacaa45
to
e6a6c8b
Compare
@adiroiban Thanks for the feedback, I addressed it. In the process of adding the docs I realized that the This PR is ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi,
Many thanks for this great PR.
I left a few comments.
The changes looks good.
I have a few comments in terms of the docstrings for the tests.
The --dir
option can be used for mono-repos, but I think that the core features, is that the --dir
path is joined with the directory
configuration option to generate the final path.
@@ -12,7 +12,8 @@ The following options can be passed to all of the commands that explained below: | |||
|
|||
.. option:: --dir PATH | |||
|
|||
Build fragment in ``PATH``. | |||
The command is executed relative to ``PATH``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we also have this information as part of the built-in CLI help system ?
this would need updating the @click.options
help text for build.
In an ideal case, we would only write the docs for click
and have it automatically exported in RST format.
Same comment is valid for create
and check
sub-commands
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add this to the options. Have you looked into using this sphinx plugin to extract the documentation automatically?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's the plan. It just needs someone to implement it into the current build system :)
|
||
towncrier build --config towncrier.toml --dir project_a --version 1.5 | ||
|
||
Note that we must explicitly pass ``--version``, there is no other way to get the version number. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe create a GitHub issue for this.
I think that if we want to support mono-repos, this should be a 1st class feature... so in the ideal case, the version could be extracted
I don't know how to do it... as we are missing the package name info... so it's not easy to know for which package to extract the version.
But maybe it's best to just have the issue created and linked from here.
If someone else wants this feature, they can send suggestion or PRs for how to fix this.
The sentence from below, reads like a bug description :)
|
||
result = runner.invoke( | ||
cli, | ||
("--yes", "--config", "pyproject.toml", "--dir", "foo", "--version", "1.0"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see normpath was previously used.
Maybe for the test, we can go wild, and add something like this, to make sure dir
still works when it is passed as a non-normalized path.
("--yes", "--config", "pyproject.toml", "--dir", "foo", "--version", "1.0"), | |
("--yes", "--config", "pyproject.toml", "--dir", "./foo/../foo/", "--version", "1.0"), |
also, do we need to pass --config=pyproject.toml
here ? I was thinking that this is already the default value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for "wild" suggestion, I'll try it out!
We must explicitly pass --config
here because otherwise we will search for pyproject.toml
inside the directory provided by --dir
:)
we test that custom settings also do. | ||
""" | ||
Path("pyproject.toml").write_text( | ||
"[tool.towncrier]\n" + 'directory = "changelog.d"\n' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe also add an explicit empty package
config here.
My understanding, is that this is required for this usecase.
""" | ||
main_branch = "main" | ||
Path("pyproject.toml").write_text( | ||
# Important to customize `config.directory` because the default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this comment.
Maybe something like
For monorepos, the directory
is used not as relative to the configuration file, but as relative to the --dir
CLI argument.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea, hmm, this must really be complicated cuz we're having to go over it a 3rd time now (I mentioned this in the PR description and in a comment about bug vs feature criteria).
Let me know if the following is clearer.
- We compute the fragments base dir path differently depending on whether
config.directory
is set or not. References: build, check and create. - The implementation for the case when
config.directory
is not set is the same across all 3 commands. This implementation supports the usecase we care about in this PR. - The problems start in the other case, however.
create
implementation already supports the usecase in this PR whereasbuild
andcheck
have to be adjusted. - Following the logic of testing "wilder" scenarios, and also to make sure I'm testing my changes, I'm setting
config.directory
.
Longer-term I think it makes sense to figure out how to merge these implementations for ease of maintenance. I didn't have time to do so for this PR.
call(["git", "checkout", "-b", "otherbranch"]) | ||
|
||
# We add a code change but forget to add a news fragment. | ||
write(subproject1 / "foo/somefile.py", "import os") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe also write a file like ./changelog.d/234.feature
that is relative to the config file.
I think that the main goal of this tests it to make sure that --dir
is used as the "working directory"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do I understand correctly that we don't want ./changelog.d/234.feature
to influence the changelog generation?
This is useful when multiple projects share one towncrier configuration. | ||
""" | ||
Path("pyproject.toml").write_text( | ||
# Important to customize `config.directory` because the default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this comment here.
Maybe, it's important to note that this is a configured using a sub-directory that is later combined with the CLI argument.
Also, maybe it's also important to pass an empty project
value for this test
Co-authored-by: Adi Roiban <adiroiban@gmail.com>
for more information, see https://pre-commit.ci
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR :)
I think the main thing here is that I am doing reviews at 1AM or during the day in 5 minutes intervals between the test runs of my main work :(
But I think we should merge this.
If anyone else is intersted into monorepo part, they can help improve the docs, the test or the configuration.
Please consider updating the tests to check for non-normalized path.
After that, I think that we can merge this.
Otherwise I don't know when I will have to review it or if someone else will have time soon to review this PR.
Let me know if you have a feeling that you'd want more time to consider this. We can also focus on 1 PR at a time and take a break with #553. I appreciate you carving out time to review and comment. I'll be addressing the part about non-normalized paths and CLI later today, so we should be good to merge over the weekend. |
@adiroiban thanks once more for bearing with this. I'm a bit tired and sick today, I'll get to it tomorrow for sure. I'm thinking of moving all monorepo-related tests into one file so that it's easier to share setup code and comments for it. I want to test some more combinations of settings. Too bad |
Hi. I hope you will get well soon. We can merge this PR as it is. No need to have a perfect PR. As long as it's better that we have in My comments were more of a "nice to have" category. Let me know if you want to have this PR merge as it is ? (I will take care of updating/rebase with trunk before merge) I have never worked on mono-repos so I don't have experince with them. This is why we can merge this and if someone else wants to use towncrier with monorepo, they can add more feedback or suggest changes. We can consider adding support for Is this the feature ?
I know that instead of simple |
Alrighty, let's merge then :) I owe you some docs and some tests. To be precise:
Your example with I have just one favor to ask of you: would it be possible to cut a release with this in the next couple days? That way I can incorporated it properly in our infrastructure (referencing branches isn't allowed in "prod"). |
You don't owe me anything :) towncrier is just a project that I find useful, and was not mantained, so in my spare time I look after it. we are standing on the shoulder of giants as many other people have contributed significant time for the project.
Sure. Will do. I have updated the branch and enabled auto-merge . I hope this will merge soon :) |
Bumps [towncrier](https://github.com/twisted/towncrier) from 23.6.0 to 23.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/twisted/towncrier/releases">towncrier's releases</a>.</em></p> <blockquote> <h2>Towncrier 23.10.0</h2> <h1>towncrier 23.10.0 (2023-10-23)</h1> <p>No significant changes since the previous release candidate.</p> <h2>Features</h2> <ul> <li> <p>Python 3.12 is now officially supported. (<code>[#541](twisted/towncrier#541) <https://github.com/twisted/towncrier/issues/541></code>_)</p> </li> <li> <p>Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (<code>[#548](twisted/towncrier#548) <https://github.com/twisted/towncrier/issues/548></code>_)</p> </li> <li> <p>Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.</p> <p><strong>Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template.</strong> (<code>[#552](twisted/towncrier#552) <https://github.com/twisted/towncrier/issues/552></code>_)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Towncrier now vendors the click-default-group package that prevented installations on modern Pips. (<code>[#540](twisted/towncrier#540) <https://github.com/twisted/towncrier/issues/540></code>_)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>The markdown docs now use the default markdown template rather than a simpler custom one. (<code>[#545](twisted/towncrier#545) <https://github.com/twisted/towncrier/issues/545></code>_)</li> <li>Cleanup a duplicate backtick in the tutorial. (<code>[#551](twisted/towncrier#551) <https://github.com/twisted/towncrier/issues/551></code>_)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>The support for Python 3.7 has been dropped. (<code>[#521](twisted/towncrier#521) <https://github.com/twisted/towncrier/issues/521></code>_)</li> </ul> <h2>Misc</h2> <ul> <li><code>[#481](twisted/towncrier#481) <https://github.com/twisted/towncrier/issues/481></code><em>, <code>[#520](twisted/towncrier#520) <https://github.com/twisted/towncrier/issues/520></code></em>, <code>[#522](twisted/towncrier#522) <https://github.com/twisted/towncrier/issues/522></code><em>, <code>[#523](twisted/towncrier#523) <https://github.com/twisted/towncrier/issues/523></code></em>, <code>[#529](twisted/towncrier#529) <https://github.com/twisted/towncrier/issues/529></code><em>, <code>[#536](twisted/towncrier#536) <https://github.com/twisted/towncrier/issues/536></code></em></li> </ul> <h2>Towncrier 23.10.0rc1</h2> <h1>towncrier 23.10.0rc1 (2023-10-23)</h1> <h2>Features</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/twisted/towncrier/blob/trunk/NEWS.rst">towncrier's changelog</a>.</em></p> <blockquote> <h1>towncrier 23.10.0 (2023-10-24)</h1> <p>No significant changes since the previous release candidate.</p> <h2>Features</h2> <ul> <li> <p>Python 3.12 is now officially supported. (<code>[#541](twisted/towncrier#541) <https://github.com/twisted/towncrier/issues/541></code>_)</p> </li> <li> <p>Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (<code>[#548](twisted/towncrier#548) <https://github.com/twisted/towncrier/issues/548></code>_)</p> </li> <li> <p>Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.</p> <p><strong>Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template.</strong> (<code>[#552](twisted/towncrier#552) <https://github.com/twisted/towncrier/issues/552></code>_)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Towncrier now vendors the click-default-group package that prevented installations on modern Pips. (<code>[#540](twisted/towncrier#540) <https://github.com/twisted/towncrier/issues/540></code>_)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>The markdown docs now use the default markdown template rather than a simpler custom one. (<code>[#545](twisted/towncrier#545) <https://github.com/twisted/towncrier/issues/545></code>_)</li> <li>Cleanup a duplicate backtick in the tutorial. (<code>[#551](twisted/towncrier#551) <https://github.com/twisted/towncrier/issues/551></code>_)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>The support for Python 3.7 has been dropped. (<code>[#521](twisted/towncrier#521) <https://github.com/twisted/towncrier/issues/521></code>_)</li> </ul> <h2>Misc</h2> <ul> <li><code>[#481](twisted/towncrier#481) <https://github.com/twisted/towncrier/issues/481></code><em>, <code>[#520](twisted/towncrier#520) <https://github.com/twisted/towncrier/issues/520></code></em>, <code>[#522](twisted/towncrier#522) <https://github.com/twisted/towncrier/issues/522></code><em>, <code>[#523](twisted/towncrier#523) <https://github.com/twisted/towncrier/issues/523></code></em>, <code>[#529](twisted/towncrier#529) <https://github.com/twisted/towncrier/issues/529></code><em>, <code>[#536](twisted/towncrier#536) <https://github.com/twisted/towncrier/issues/536></code></em></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/twisted/towncrier/commit/347e9440ae8507adfc22f5c993f4496b20d49ec5"><code>347e944</code></a> Update for final release.</li> <li><a href="https://github.com/twisted/towncrier/commit/ee857403c9a09ca7055f93dd8784e84b5cc2bb3a"><code>ee85740</code></a> Do RC1 instead of RC0.</li> <li><a href="https://github.com/twisted/towncrier/commit/0c3b82c9be435e23019b7064a57fbd7210f54300"><code>0c3b82c</code></a> venv/bin/towncrier build --yes</li> <li><a href="https://github.com/twisted/towncrier/commit/610247f8e0e2146cadb9f46937047dc08f923eab"><code>610247f</code></a> Update version.</li> <li><a href="https://github.com/twisted/towncrier/commit/0b023fa95926470482418d4e11f9ae9f0ada7d56"><code>0b023fa</code></a> Config location separate from directory containing news file and fragments (#...</li> <li><a href="https://github.com/twisted/towncrier/commit/3f24b6ef7e0c17f3e559b957526598c287774b70"><code>3f24b6e</code></a> Whitespace between releases can be configured in the template. (<a href="https://redirect.github.com/twisted/towncrier/issues/553">#553</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/7f37ab5daa72f5a761db1bf14cba1e2d3d87422d"><code>7f37ab5</code></a> docs(tutorial): Cleanup duplicate backtick typo (<a href="https://redirect.github.com/twisted/towncrier/issues/551">#551</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/5b732be979642c5b9ab4d22df6fb70ff4bd3ff2f"><code>5b732be</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/twisted/towncrier/issues/549">#549</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/239f84102c374e7395cdc0a50f7b4171cc8c3e83"><code>239f841</code></a> use markdown default template in markdown docs (<a href="https://redirect.github.com/twisted/towncrier/issues/546">#546</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/806bec1248b0ea8b86db21e0ce90b1849d3cd721"><code>806bec1</code></a> Add 3.12 (<a href="https://redirect.github.com/twisted/towncrier/issues/541">#541</a>)</li> <li>Additional commits viewable in <a href="https://github.com/twisted/towncrier/compare/23.6.0...23.10.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=towncrier&package-manager=pip&previous-version=23.6.0&new-version=23.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [towncrier](https://github.com/twisted/towncrier) from 23.6.0 to 23.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/twisted/towncrier/releases">towncrier's releases</a>.</em></p> <blockquote> <h2>Towncrier 23.10.0</h2> <h1>towncrier 23.10.0 (2023-10-23)</h1> <p>No significant changes since the previous release candidate.</p> <h2>Features</h2> <ul> <li> <p>Python 3.12 is now officially supported. (<code>[#541](twisted/towncrier#541) <https://github.com/twisted/towncrier/issues/541></code>_)</p> </li> <li> <p>Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (<code>[#548](twisted/towncrier#548) <https://github.com/twisted/towncrier/issues/548></code>_)</p> </li> <li> <p>Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.</p> <p><strong>Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template.</strong> (<code>[#552](twisted/towncrier#552) <https://github.com/twisted/towncrier/issues/552></code>_)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Towncrier now vendors the click-default-group package that prevented installations on modern Pips. (<code>[#540](twisted/towncrier#540) <https://github.com/twisted/towncrier/issues/540></code>_)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>The markdown docs now use the default markdown template rather than a simpler custom one. (<code>[#545](twisted/towncrier#545) <https://github.com/twisted/towncrier/issues/545></code>_)</li> <li>Cleanup a duplicate backtick in the tutorial. (<code>[#551](twisted/towncrier#551) <https://github.com/twisted/towncrier/issues/551></code>_)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>The support for Python 3.7 has been dropped. (<code>[#521](twisted/towncrier#521) <https://github.com/twisted/towncrier/issues/521></code>_)</li> </ul> <h2>Misc</h2> <ul> <li><code>[#481](twisted/towncrier#481) <https://github.com/twisted/towncrier/issues/481></code><em>, <code>[#520](twisted/towncrier#520) <https://github.com/twisted/towncrier/issues/520></code></em>, <code>[#522](twisted/towncrier#522) <https://github.com/twisted/towncrier/issues/522></code><em>, <code>[#523](twisted/towncrier#523) <https://github.com/twisted/towncrier/issues/523></code></em>, <code>[#529](twisted/towncrier#529) <https://github.com/twisted/towncrier/issues/529></code><em>, <code>[#536](twisted/towncrier#536) <https://github.com/twisted/towncrier/issues/536></code></em></li> </ul> <h2>Towncrier 23.10.0rc1</h2> <h1>towncrier 23.10.0rc1 (2023-10-23)</h1> <h2>Features</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/twisted/towncrier/blob/trunk/NEWS.rst">towncrier's changelog</a>.</em></p> <blockquote> <h1>towncrier 23.10.0 (2023-10-24)</h1> <p>No significant changes since the previous release candidate.</p> <h2>Features</h2> <ul> <li> <p>Python 3.12 is now officially supported. (<code>[#541](twisted/towncrier#541) <https://github.com/twisted/towncrier/issues/541></code>_)</p> </li> <li> <p>Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (<code>[#548](twisted/towncrier#548) <https://github.com/twisted/towncrier/issues/548></code>_)</p> </li> <li> <p>Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.</p> <p><strong>Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template.</strong> (<code>[#552](twisted/towncrier#552) <https://github.com/twisted/towncrier/issues/552></code>_)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Towncrier now vendors the click-default-group package that prevented installations on modern Pips. (<code>[#540](twisted/towncrier#540) <https://github.com/twisted/towncrier/issues/540></code>_)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>The markdown docs now use the default markdown template rather than a simpler custom one. (<code>[#545](twisted/towncrier#545) <https://github.com/twisted/towncrier/issues/545></code>_)</li> <li>Cleanup a duplicate backtick in the tutorial. (<code>[#551](twisted/towncrier#551) <https://github.com/twisted/towncrier/issues/551></code>_)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>The support for Python 3.7 has been dropped. (<code>[#521](twisted/towncrier#521) <https://github.com/twisted/towncrier/issues/521></code>_)</li> </ul> <h2>Misc</h2> <ul> <li><code>[#481](twisted/towncrier#481) <https://github.com/twisted/towncrier/issues/481></code><em>, <code>[#520](twisted/towncrier#520) <https://github.com/twisted/towncrier/issues/520></code></em>, <code>[#522](twisted/towncrier#522) <https://github.com/twisted/towncrier/issues/522></code><em>, <code>[#523](twisted/towncrier#523) <https://github.com/twisted/towncrier/issues/523></code></em>, <code>[#529](twisted/towncrier#529) <https://github.com/twisted/towncrier/issues/529></code><em>, <code>[#536](twisted/towncrier#536) <https://github.com/twisted/towncrier/issues/536></code></em></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/twisted/towncrier/commit/347e9440ae8507adfc22f5c993f4496b20d49ec5"><code>347e944</code></a> Update for final release.</li> <li><a href="https://github.com/twisted/towncrier/commit/ee857403c9a09ca7055f93dd8784e84b5cc2bb3a"><code>ee85740</code></a> Do RC1 instead of RC0.</li> <li><a href="https://github.com/twisted/towncrier/commit/0c3b82c9be435e23019b7064a57fbd7210f54300"><code>0c3b82c</code></a> venv/bin/towncrier build --yes</li> <li><a href="https://github.com/twisted/towncrier/commit/610247f8e0e2146cadb9f46937047dc08f923eab"><code>610247f</code></a> Update version.</li> <li><a href="https://github.com/twisted/towncrier/commit/0b023fa95926470482418d4e11f9ae9f0ada7d56"><code>0b023fa</code></a> Config location separate from directory containing news file and fragments (#...</li> <li><a href="https://github.com/twisted/towncrier/commit/3f24b6ef7e0c17f3e559b957526598c287774b70"><code>3f24b6e</code></a> Whitespace between releases can be configured in the template. (<a href="https://redirect.github.com/twisted/towncrier/issues/553">#553</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/7f37ab5daa72f5a761db1bf14cba1e2d3d87422d"><code>7f37ab5</code></a> docs(tutorial): Cleanup duplicate backtick typo (<a href="https://redirect.github.com/twisted/towncrier/issues/551">#551</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/5b732be979642c5b9ab4d22df6fb70ff4bd3ff2f"><code>5b732be</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/twisted/towncrier/issues/549">#549</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/239f84102c374e7395cdc0a50f7b4171cc8c3e83"><code>239f841</code></a> use markdown default template in markdown docs (<a href="https://redirect.github.com/twisted/towncrier/issues/546">#546</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/806bec1248b0ea8b86db21e0ce90b1849d3cd721"><code>806bec1</code></a> Add 3.12 (<a href="https://redirect.github.com/twisted/towncrier/issues/541">#541</a>)</li> <li>Additional commits viewable in <a href="https://github.com/twisted/towncrier/compare/23.6.0...23.10.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=towncrier&package-manager=pip&previous-version=23.6.0&new-version=23.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [towncrier](https://github.com/twisted/towncrier) from 23.6.0 to 23.10.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/twisted/towncrier/releases">towncrier's releases</a>.</em></p> <blockquote> <h2>Towncrier 23.10.0</h2> <h1>towncrier 23.10.0 (2023-10-23)</h1> <p>No significant changes since the previous release candidate.</p> <h2>Features</h2> <ul> <li> <p>Python 3.12 is now officially supported. (<code>[aio-libs#541](twisted/towncrier#541) <https://github.com/twisted/towncrier/issues/541></code>_)</p> </li> <li> <p>Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (<code>[aio-libs#548](twisted/towncrier#548) <https://github.com/twisted/towncrier/issues/548></code>_)</p> </li> <li> <p>Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.</p> <p><strong>Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template.</strong> (<code>[aio-libs#552](twisted/towncrier#552) <https://github.com/twisted/towncrier/issues/552></code>_)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Towncrier now vendors the click-default-group package that prevented installations on modern Pips. (<code>[aio-libs#540](twisted/towncrier#540) <https://github.com/twisted/towncrier/issues/540></code>_)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>The markdown docs now use the default markdown template rather than a simpler custom one. (<code>[aio-libs#545](twisted/towncrier#545) <https://github.com/twisted/towncrier/issues/545></code>_)</li> <li>Cleanup a duplicate backtick in the tutorial. (<code>[aio-libs#551](twisted/towncrier#551) <https://github.com/twisted/towncrier/issues/551></code>_)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>The support for Python 3.7 has been dropped. (<code>[aio-libs#521](twisted/towncrier#521) <https://github.com/twisted/towncrier/issues/521></code>_)</li> </ul> <h2>Misc</h2> <ul> <li><code>[aio-libs#481](twisted/towncrier#481) <https://github.com/twisted/towncrier/issues/481></code><em>, <code>[aio-libs#520](twisted/towncrier#520) <https://github.com/twisted/towncrier/issues/520></code></em>, <code>[aio-libs#522](twisted/towncrier#522) <https://github.com/twisted/towncrier/issues/522></code><em>, <code>[aio-libs#523](twisted/towncrier#523) <https://github.com/twisted/towncrier/issues/523></code></em>, <code>[aio-libs#529](twisted/towncrier#529) <https://github.com/twisted/towncrier/issues/529></code><em>, <code>[aio-libs#536](twisted/towncrier#536) <https://github.com/twisted/towncrier/issues/536></code></em></li> </ul> <h2>Towncrier 23.10.0rc1</h2> <h1>towncrier 23.10.0rc1 (2023-10-23)</h1> <h2>Features</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/twisted/towncrier/blob/trunk/NEWS.rst">towncrier's changelog</a>.</em></p> <blockquote> <h1>towncrier 23.10.0 (2023-10-24)</h1> <p>No significant changes since the previous release candidate.</p> <h2>Features</h2> <ul> <li> <p>Python 3.12 is now officially supported. (<code>[aio-libs#541](twisted/towncrier#541) <https://github.com/twisted/towncrier/issues/541></code>_)</p> </li> <li> <p>Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (<code>[aio-libs#548](twisted/towncrier#548) <https://github.com/twisted/towncrier/issues/548></code>_)</p> </li> <li> <p>Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.</p> <p><strong>Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template.</strong> (<code>[aio-libs#552](twisted/towncrier#552) <https://github.com/twisted/towncrier/issues/552></code>_)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Towncrier now vendors the click-default-group package that prevented installations on modern Pips. (<code>[aio-libs#540](twisted/towncrier#540) <https://github.com/twisted/towncrier/issues/540></code>_)</li> </ul> <h2>Improved Documentation</h2> <ul> <li>The markdown docs now use the default markdown template rather than a simpler custom one. (<code>[aio-libs#545](twisted/towncrier#545) <https://github.com/twisted/towncrier/issues/545></code>_)</li> <li>Cleanup a duplicate backtick in the tutorial. (<code>[aio-libs#551](twisted/towncrier#551) <https://github.com/twisted/towncrier/issues/551></code>_)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>The support for Python 3.7 has been dropped. (<code>[aio-libs#521](twisted/towncrier#521) <https://github.com/twisted/towncrier/issues/521></code>_)</li> </ul> <h2>Misc</h2> <ul> <li><code>[aio-libs#481](twisted/towncrier#481) <https://github.com/twisted/towncrier/issues/481></code><em>, <code>[aio-libs#520](twisted/towncrier#520) <https://github.com/twisted/towncrier/issues/520></code></em>, <code>[aio-libs#522](twisted/towncrier#522) <https://github.com/twisted/towncrier/issues/522></code><em>, <code>[aio-libs#523](twisted/towncrier#523) <https://github.com/twisted/towncrier/issues/523></code></em>, <code>[aio-libs#529](twisted/towncrier#529) <https://github.com/twisted/towncrier/issues/529></code><em>, <code>[aio-libs#536](twisted/towncrier#536) <https://github.com/twisted/towncrier/issues/536></code></em></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/twisted/towncrier/commit/347e9440ae8507adfc22f5c993f4496b20d49ec5"><code>347e944</code></a> Update for final release.</li> <li><a href="https://github.com/twisted/towncrier/commit/ee857403c9a09ca7055f93dd8784e84b5cc2bb3a"><code>ee85740</code></a> Do RC1 instead of RC0.</li> <li><a href="https://github.com/twisted/towncrier/commit/0c3b82c9be435e23019b7064a57fbd7210f54300"><code>0c3b82c</code></a> venv/bin/towncrier build --yes</li> <li><a href="https://github.com/twisted/towncrier/commit/610247f8e0e2146cadb9f46937047dc08f923eab"><code>610247f</code></a> Update version.</li> <li><a href="https://github.com/twisted/towncrier/commit/0b023fa95926470482418d4e11f9ae9f0ada7d56"><code>0b023fa</code></a> Config location separate from directory containing news file and fragments (#...</li> <li><a href="https://github.com/twisted/towncrier/commit/3f24b6ef7e0c17f3e559b957526598c287774b70"><code>3f24b6e</code></a> Whitespace between releases can be configured in the template. (<a href="https://redirect.github.com/twisted/towncrier/issues/553">#553</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/7f37ab5daa72f5a761db1bf14cba1e2d3d87422d"><code>7f37ab5</code></a> docs(tutorial): Cleanup duplicate backtick typo (<a href="https://redirect.github.com/twisted/towncrier/issues/551">#551</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/5b732be979642c5b9ab4d22df6fb70ff4bd3ff2f"><code>5b732be</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/twisted/towncrier/issues/549">#549</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/239f84102c374e7395cdc0a50f7b4171cc8c3e83"><code>239f841</code></a> use markdown default template in markdown docs (<a href="https://redirect.github.com/twisted/towncrier/issues/546">#546</a>)</li> <li><a href="https://github.com/twisted/towncrier/commit/806bec1248b0ea8b86db21e0ce90b1849d3cd721"><code>806bec1</code></a> Add 3.12 (<a href="https://redirect.github.com/twisted/towncrier/issues/541">#541</a>)</li> <li>Additional commits viewable in <a href="https://github.com/twisted/towncrier/compare/23.6.0...23.10.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=towncrier&package-manager=pip&previous-version=23.6.0&new-version=23.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Description
This adds official support for the scenario where one towncrier config is shared between multiple projects with independent news files and fragments.
This is useful in monorepo-style setups.
Checklist
src/towncrier/newsfragments/
. Describe yourchange and include important information. Your change will be included in the public release notes.
docs/tutorial.rst
is still up-to-date.docs/cli.rst
reflects those changes.docs/configuration.rst
reflects those changes.