On Tue, 03 Nov 2020, Daniel Vetter <[email protected]> wrote: > 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.
It's manual, right? Would be nice to automate it a bit. Anyway, the same can still be used for dinq/din after this change. BR, Jani. > -Daniel > >> >> Cc: Daniel Vetter <[email protected]> >> Cc: Joonas Lahtinen <[email protected]> >> Cc: Rodrigo Vivi <[email protected]> >> Signed-off-by: Jani Nikula <[email protected]> >> --- >> 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 >> -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ dim-tools mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dim-tools
