-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Change Log generation tool. Automates change log generation. #2396
Change Log generation tool. Automates change log generation. #2396
Conversation
Looks great! Couple of minor comments:
|
I'm uncertain if this is the best option. These are maintenance tools which don't really have much to do with GitHub. Yet one could argue "there's a reason why we're generating markdown changelogs with hashtags to PRs". I also know that one of the next steps will be to write a bash script to produce the Compatibility report between versions. This last one has nothing to do with GitHub. How about creating a |
87782a0
to
ed12ff5
Compare
Just finished the Wiki article. Have a look at it. https://github.com/PointCloudLibrary/pcl/wiki/Preparing-Releases#creating-the-change-log Next step: labelling PRs. Edit: Just realized it's been almost 3-5 months since I looked at c++. Edit2: I just realized we now can print cool stats like the top 5 modules which suffered changes or the top 5 PR authors which submitted fixes. |
ed12ff5
to
19e5dba
Compare
On one hand 👍 for the comprehensive Wiki page! Do you think CI-related things need to go to the changelog? |
Answering your question: no, but it's already there. I think I enjoy more having it than not having it. |
OK. Perhaps you may want to fix or change something in this script during the release process, so probably want to leave this open until after the release, right? |
Exactly. I was expecting to merge right before the last change log step in release task list. Note to self: Don't forget to include #1652 in the change log. |
I realized I'm not entirely satisfied with the summary. I believe it should clearly answer the following questions:
1 and 2i are covered, however there is no distinction between the rest. Also, for example, #2380 is completely missing from the list, I suppose because we don't have (yet) a good label for it since it's not an API break. By the way, some food for thought. |
I think I would reorder your points to 1, 3, 4, 2. Rationale: removal of deprecated things always causes api changes and that way in point 2 we only mention things which didn't appear in 4. Meaning that in point 2 only things without proper deprecation cycle can appear. It's like we're guiding the process from good news to bad news. To account for these new categories I propose the creation of two new labels: Let's agree on an output text dump which matches the new bullet points. Change LogWhat's new?Things under the What's newly deprecated?Things under What deprecated stuff was removed?Things under Any surprises?Changes in BehaviorThings under API BreakageThings under [ABI Breakage][3. Consider adding things Modules[...] There's two extra points it might be worth a retweak.
|
19e5dba
to
bedf09a
Compare
Solution to 1. was a little more simple than initially conjectured. Updated the change log. There's more stuff to categorize now. |
👍 for the proposed ordering. I'd probably go with more formal names for the sections, e.g.
Also, we can consider adding one-two sentences in the beginning of each section to explain it's meaning. Extra point 2: I think for this release we can do a bit of grouping and clean-up of the generated list manually just before releasing. In future a convention like you described could be helpful. Maybe we wait until situation like this occurs and decide on the approach? Finally, I added labels to the most of uncategorized PRs. (But you've noticed this already, I suppose). |
bedf09a
to
491a727
Compare
Have a look at the section reordering and the descriptions. We might need recheck the API/removal changes. I'm looking forward to close the change log for this release. |
Thanks, LGTM |
Latest Log (click to uncollapse)= master (25.09.2018) =
|
These are the current (undeprecated) API changes. Here's my current proposal in terms of course of action. Leave it as it is:
To discuss:
|
I agree with your proposals in the "leave as it is" section. As for the discussion points:
|
1. Agreed. In the other cases they're not virtual so I will remove the tags from those. I'll generate the final change log and push it here once I review the rest of the pending emails. |
Started going carefully through the abi/api reports and here's what it (additionally) complained about:
Final change log coming now. |
I will remove the change log update commit from this PR and add it to #2489, so that it is up to date when I bump versions. |
ff04991
to
eb6769d
Compare
Shall we merge this now or only after we implement the PR grouping strategy? |
I don't have a strong opinion on this, both options are fine for me. |
Then merge it. I'm trying to write a blog post about this and that way I can link to the file on PCL's repo. |
A tool written from Python3 to automate change log generation for each release. Here's the current reported usage with a Wiki article providing more details to follow.
Closes #2385
Here's the current generated output for my local clone.
= 1.8.1 (08.08.2017) =
New Features:
Newly added functionalities.
PCLVisualizer::addText3D()
that allows specifying text orientation [#2038]Deprecated:
Deprecated code scheduled to be removed after two minor releases.
Removed:
Removal of deprecated code.
Behavioral changes:
Changes in the expected default behavior.
API changes:
Changes to the API which didn't went through the proper deprecation and removal cycle.
const
qualifiers toRangeLikelihood
getters. [#2411]PointCloudColorHandlerRGBAField
[#2226]filter_indices.h
[#2193]ABI changes:
Changes that cause ABI incompatibility but are still API compatible.
GlasbeyLUT
indexing type tosize_t
[#2297]Modules:
Uncategorized:
CMake:
PCL_COMPILE_OPTIONS
. Expose PCL as a CMake imported target. [#2100]libpcl_2d:
RandomSample
. Removeio
dependency from2d
. [#2141]libpcl_common:
parse_file_extension_argument ()
. [#2347]transformPointCloud/WithNormals()
functions [#2247]GlasbeyLUT
indexing type tosize_t
[#2297]PCL_POINT_TYPES
andPCL_FEATURE_POINTTYPES
macros. [#2295]pca.hpp
[#2219]libpcl_cuda:
libpcl_features:
MomentOfInertia
instantiations consistent with the rest of the library [#2266]libpcl_filters:
VoxelGrid
boost pointer. [#2205]filter_indices.h
[#2193]RandomSample
. Removeio
dependency from2d
. [#2141]libpcl_gpu:
gpu_people
code [#2199]libpcl_io:
pcl::PCDReader::readHeader()
changenr_points
type tosize_t
to avoid possibleint32
overflow [#2408]::posix_fallocate
on Mac OSX [#2354]EnsensoGrabber
uint
is undefined in Visual studio. [#2223]PLYReader
Cast cloud point step as 64-bit integer [#2161]OpenNI2Device
Add device sensor check for IR and depth modesetting [#2150]PCDWriter
changedtoff
tosize_t
inwriteBinaryCompressed
[#2144]libpcl_kdtree:
libpcl_keypoints:
TrajkovicKeypoint2D/3D
to CMake build [#2179]libpcl_ml:
libpcl_octree:
octree_key.h
suppress GCC 8 ignored-qualifier warning [#2405]libpcl_outofcore:
libpcl_people:
libpcl_recognition:
libpcl_registration:
libpcl_sample_consensus:
libpcl_search:
libpcl_segmentation:
libpcl_simulation:
const
qualifiers toRangeLikelihood
getters. [#2411]libpcl_surface:
ON_Curve::EvaluatePoint
calculation [#2185]PCL Apps:
PCL Docs:
PCL Tutorials:
Eigen::Map<const Eigen::Vector3f>
from Normal ofpcl::PointXYZINormal
[#2128]PCL Examples:
PCL Tests:
PCL Tools:
pcl_uniform_sampling
tool to deal with several formats (PCD, PLY and VTK) as input or output point cloud [#2348]CI: