Skip to content

Commit

Permalink
Add release procedure in CONTRIBUTING (#1039)
Browse files Browse the repository at this point in the history
  • Loading branch information
timholy authored Jul 23, 2023
1 parent 530aacb commit ef6acdc
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
18 changes: 13 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,24 +50,25 @@ If you've never submitted a pull request before, it can take a little while to b

* Create a [GitHub account](https://github.com/signup/free).

* Fork whatever repository you plan to commit to by clicking on the "Fork" button at the upper-right of the home page.

* If you plan to fix a bug, feel free to first report the bug as an issue on its own.
In the text, you can mention whether you're planning on addressing it yourself.
*Pro tip*: if you do submit a pull request to fix it, put "Fixes #<issue number>" in the commit message and it will close automatically when your pull request is merged.

If you're concerned your change might be controversial, you can also use an issue to propose your change in general terms and discuss it before implementation.

* Fork whatever repository you plan to commit to by clicking on the "Fork" button at the upper-right of the home page.

* If you haven't already implemented your changes, check the package out for development: hit `]` in the Julia REPL and then type (for example) `dev Images`.
You'll get a copy of the full repository in your `~/.julia/dev` folder. See the [package manager documentation](https://julialang.github.io/Pkg.jl/v1/) for further details.

* Make your changes. Generally you should be working on a branch, so your work doesn't conflict with ongoing development in the `master` branch. Ensure you follow the [Julia style guide](https://docs.julialang.org/en/v1/manual/style-guide/index.html) for your contribution.

* Test your changes. We aspire to have test coverage for every bit of "user visible" functionality. Tests are stored, appropriately, in the `test/` folder of each package. You can run existing tests yourself and add new ones. Sometimes testing is more work than the actual change itself, but having tests ensures that no well-meaning future developer will accidentally mess up your functionality---it's worth it! *"A fix is for today. A test is forever."*

* *Pro tip*: if your change fixes a bug, put "Fixes #<issue number>" in the commit message and it will close automatically when your pull request is merged.

* Submit your changes up to your fork and then submit a pull request---whoopee!

* See what happens to the automated tests that run on Travis and/or AppVeyor. If there are errors, check the logs and see whether they look like they are related to your changes; if so, try to fix the problem by adding new commits to your pull request. Once the tests pass, hooray! :tada:
* See what happens to the automated tests that run via GitHub Actions. If there are errors, check the logs and see whether they look like they are related to your changes; if so, try to fix the problem by adding new commits to your pull request. Once the tests pass, hooray! :tada:

* Relax and wait for feedback. We try to review contributions quickly and courteously. But we are human, and sometimes we get busy with other things or fail to notice an email; if it's been a while since you submitted your pull request, try posting a polite reminder about the existence of your pull request.

Expand All @@ -77,6 +78,14 @@ You'll get a copy of the full repository in your `~/.julia/dev` folder. See the

From the whole team, thanks in advance for your contribution!

### Making a breaking release

- delete the old tests in `test/deprecated.jl`
- delete the code in `src/deprecations.jl` that is marked as being from the previous release (there should be a section marked, e.g., `## v0.26 deprecations`)
- ensure that any new deprecations (including deprecated tests) are in place. Note that tests that generate depwarns should be in `test/deprecated.jl`, as these are skipped if `--depwarn=error`.
- run the existing tests with `--depwarn=error` and check that tests pass. If they don't, consider running with `--depwarn=yes` and follow the hints about fixing the deprecations.
- update NEWS.md

### Contribution tips

* [Revise](https://github.com/timholy/Revise.jl) is a package that
Expand All @@ -88,5 +97,4 @@ your changes.
* Debuggers can help you get to the root of a problem. There are many choices and interfaces:
+ [VSCode](https://code.visualstudio.com/docs/languages/julia#_debugging) has a polished GUI for debugging
+ [Debugger](https://github.com/JuliaDebug/Debugger.jl) has a polished command-line interface
+ [Rebugger](https://github.com/timholy/Rebugger.jl) has an innovative but somewhat less-polished command-line interface
+ [Infiltrator](https://github.com/JuliaDebug/Infiltrator.jl) offers more limited debugging, but often it's precisely what you need while avoiding the performance penalties that some of the other options suffer from.
4 changes: 4 additions & 0 deletions src/deprecations.jl
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
## v0.26 deprecations

@deprecate otsu_threshold(img::AbstractArray{T}, nbins::Int = 256) where {T<:Union{Gray,Real}} T(find_threshold(img, Otsu(); nbins))
@deprecate yen_threshold(img::AbstractArray{T}, nbins::Int = 256) where {T<:Union{Gray,Real}} T(find_threshold(img, Yen(); nbins))

## v0.27 deprecations

2 comments on commit ef6acdc

@timholy
Copy link
Member Author

Choose a reason for hiding this comment

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

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

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

Registration pull request created: JuliaRegistries/General/88134

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.26.0 -m "<description of version>" ef6acdcfd9f4fefb4dd2aa884a43016322ed4715
git push origin v0.26.0

Please sign in to comment.