[PATCH] dim: change the drm-intel-next and drm-intel-next-queued process

Jani Nikula jani.nikula at intel.com
Tue Nov 3 14:26:46 UTC 2020


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.

Cc: Daniel Vetter <daniel at ffwll.ch>
Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
Signed-off-by: Jani Nikula <jani.nikula at 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



More information about the dim-tools mailing list