On Tue, Nov 03, 2020 at 04:26:46PM +0200, Jani Nikula wrote: > Remove the special casing of drm-intel-next/drm-intel-next-queued > tagging and pull requests. Instead of having a two-step process for > dinq, follow the same pull request process for all branches. As the > first step, use drm-intel-next-queued for pull requests, and ignore > drm-intel-next for now. The change is only relevant for maintainers. > > In the future, we'll want to switch from drm-intel-next-queued to > drm-intel-next completely. This will need a flag day switch for all > committers and maintainers. > > We also decouple driver date update from dinq pull requests. We may want > to apply the driver date update to drm-intel-gt-next branch instead. > > With the change, we also lose the ability to add multiple drm-intel-next > tags, and create a single pull request for them. In practice, we haven't > really used this possibility, as it lacks the merging of the annotated > tag changelogs together, missing information. We may want to resurrect > the feature in an improved form in the future, generalized for all > branches.
I think the approach used in drm-misc is to do a culmulative tag. Essentially just use the tag for note keeping partway through the merge window. -Daniel > > Cc: Daniel Vetter <dan...@ffwll.ch> > Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com> > Cc: Rodrigo Vivi <rodrigo.v...@intel.com> > Signed-off-by: Jani Nikula <jani.nik...@intel.com> > --- > dim | 61 ++++++---------------------------------- > dim.rst | 35 ++++------------------- > maintainer-drm-intel.rst | 17 +++-------- > 3 files changed, 19 insertions(+), 94 deletions(-) > > diff --git a/dim b/dim > index 8f2151365556..640844a93c65 100755 > --- a/dim > +++ b/dim > @@ -2027,34 +2027,9 @@ function dim_update_driver_date > git commit $DRY_RUN -sm "$prefix: Update DRIVER_DATE to $driver_date" > } > > -function dim_update_next > +function dim_update_i915_driver_date > { > - assert_branch drm-intel-next-queued > - > - git pull --ff-only > - > dim_update_driver_date "drm/i915" "drivers/gpu/drm/i915/i915_drv.h" > - > - gitk --first-parent drm-intel-next-queued ^$(branch_to_remote > drm-next)/drm-next & > - > - # try to push dinq first in case someone raced > - FORCE=1 dim_push_queued > - > - dim_update_next_continue > -} > - > -function dim_update_next_continue > -{ > - local remote tag > - > - assert_branch drm-intel-next-queued > - > - remote=$(repo_to_remote drm-intel) > - > - git_push -f $remote drm-intel-next-queued:drm-intel-next > - tag=$(tag_name "drm-intel-next") > - > - tag_branch $tag drm-intel-next > } > > function dim_tag_branch > @@ -2091,11 +2066,6 @@ function dim_tag_branch > tag_branch $tag $branch > } > > -function dim_tag_next > -{ > - dim_tag_branch "drm-intel-next" > -} > - > # dim_pull_request branch upstream > function dim_pull_request > { > @@ -2106,31 +2076,18 @@ function dim_pull_request > remote=$(branch_to_remote $branch) > req_file=$(mktemp) > > - if [ "$branch" != "drm-intel-next" ]; then > - assert_branch $branch > - else > - cd $DIM_PREFIX/$DIM_REPO > - fi > + assert_branch $branch > > git_fetch_helper ${upstream%%/*} > echo "Using $upstream as the upstream" > > - if [ "$branch" = "drm-intel-next" ]; then > - # drm-intel-next pulls have been tagged using dim update-next > - drm_intel_next_tags=$(git_unmerged_tags "$branch" "$upstream") > - prep_pull_mail $req_file $drm_intel_next_tags > - tag=$(git describe --all --exact "$branch@{upstream}") > - > - repo="drm-intel" > - else > - checkpatch_commit_push_range 1 "$upstream..$branch" > - tag=$(tag_name "$branch") > - gitk --first-parent "$branch" ^$upstream & > - tag_branch $tag $branch > - prep_pull_mail $req_file $tag > + checkpatch_commit_push_range 1 "$upstream..$branch" > + tag=$(tag_name "$branch") > + gitk --first-parent "$branch" ^$upstream & > + tag_branch $tag $branch > + prep_pull_mail $req_file $tag > > - repo=$(branch_to_repo $branch) > - fi > + repo=$(branch_to_repo $branch) > > url_list=${drm_tip_repos[$repo]} > git_url=$(pick_protocol_url git $url_list) > @@ -2143,7 +2100,7 @@ function dim_pull_request > function dim_pull_request_next > { > upstream=${1:-$(branch_to_remote drm-next)/drm-next} > - dim_pull_request drm-intel-next $upstream > + dim_pull_request drm-intel-next-queued $upstream > } > > function dim_pull_request_fixes > diff --git a/dim.rst b/dim.rst > index 22d6f5668571..757f7c7a4f16 100644 > --- a/dim.rst > +++ b/dim.rst > @@ -281,6 +281,10 @@ update-driver-date *prefix* *file* > Update the the DRIVER_DATE and DRIVER_TIMESTAMP macros in *file* to match > current date and time, and commit the change using given subject prefix. > > +update-i915-driver-date > +----------------------- > +**update-driver-date** shorthand for i915. > + > COMMANDS FOR MAINTAINERS > ======================== > > @@ -333,14 +337,8 @@ pull-request-next-fixes [*upstream*] > > pull-request-next [*upstream*] > ------------------------------ > -This is similar to **pull-request**, but for feature pull requests, with > -*drm-intel-next* as the branch and *\$DRM_UPSTREAM/drm-next* as the default > -upstream. > - > -The difference to **pull-request** is that this command does not generate a > -tag; this must have been done previously using **update-next**. This also > means > -that the pull request can be regenerated with the same commands if something > -goes wrong. > +**pull-request** shorthand for *drm-intel-next-queued* as the branch and > +*\$DRM_UPSTREAM/drm-next* as the default upstream. > > apply-pull *branch* > ------------------- > @@ -362,20 +360,6 @@ Rebases *branch* onto *upstream*, making a few sanity > checks on the way. The > using **pull-request**. Alternatively it can also be a tag, which if > available > should be preferred. > > -update-next > ------------ > -Pushes out the latest dinq to drm-intel-next and tags it. For an overview a > gitk > -view of the currently unmerged feature pile is opened. > - > -The tag will be signed using the key specified by \$DIM_GPG_KEYID, if set. > - > -update-next-continue > --------------------- > - > -When **update-next** fails to push the special release commit (because it > raced with > -another committer) rebase and push manually, and then continue using this > -command. > - > tag-branch *branch* [*upstream*] > -------------------------------- > Pushes a new tag for the specified branch after checking that the remote is > @@ -385,13 +369,6 @@ The tag will be signed using the key specified by > \$DIM_GPG_KEYID, if set. > > If upstream is provided, launch gitk to show the changes to be tagged. > > -tag-next > --------- > -**tag-branch** shorthand for drm-intel-next. > - > -Useful if drm-intel-next has been changed since the last run of the > -update-next command (e.g. to apply a hotfix before sending out the pull > request). > - > > DIM HELP COMMANDS > ================= > diff --git a/maintainer-drm-intel.rst b/maintainer-drm-intel.rst > index 5e6f1f0e5eba..853db6b4d018 100644 > --- a/maintainer-drm-intel.rst > +++ b/maintainer-drm-intel.rst > @@ -21,19 +21,10 @@ Take over when the last drm-intel feature pull has been > sent for an upcoming > merge window, and drm-intel-next-queued starts targeting the next merge > window > after that. This happens around -rc5 of the current development kernel. > > -Tag drm-intel-next-queued periodically, say every 1-2 weeks, depending on the > -rate of change. Use ``dim update-next``. Write a tag summary detailing the > -changes since the last tag. Send a testing request. > - > -Send drm-intel-next-queued pull requests periodically. Use ``dim > -pull-request-next``. Pull requests are based on the tags generated above. > Don't > -send a pull request immediately after tagging, leave some time for > -testing. Typically you would send a pull request for each tag, but the > tooling > -allows for accumulation of several tags into one pull request. Dave usually > -doesn't start pulling features until the pull requests for the previous > release > -have been merged to Linus' tree, so it's normal to accumulate several tags > -before and during the merge window. Only send your first pull request after > --rc1. > +Start queuing changes for drm-next after the merge window (i.e. after > +another -rc1 is out). Send drm-intel-next-queued pull requests periodically. > Use > +``dim pull-request-next``. Write a tag summary detailing the changes since > the > +last tag. > > Do backmerges as needed, but also don't let drm-intel-next-queued fall too > much > behind from drm-next; use your discretion. Use ``dim backmerge``. Never > rebase > -- > 2.20.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dim-tools mailing list dim-tools@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dim-tools