Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Aug 2018 21:05:53 -0600
From:      Adam Weinberger <adamw@adamw.org>
To:        helen.koike@collabora.com
Cc:        freebsd-ports@freebsd.org
Subject:   Re: workflow question: how do you maintain the port in sync with upstream?
Message-ID:  <CAP7rwchVHEK9-ojKD1wi83LpCZCh9mZ8V2qQapCxAZeigFQK4Q@mail.gmail.com>
In-Reply-To: <05457c2b-b85c-a929-20e7-38ff1b2899d6@collabora.com>
References:  <05457c2b-b85c-a929-20e7-38ff1b2899d6@collabora.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Aug 13, 2018 at 4:28 PM Helen Koike <helen.koike@collabora.com> wrote:
>
> Hello,
>
> I am new to the community, I am maintaining two packages and I would
> like to check with you if there is a better workflow to do this.
>
> The upstream project of the port I am maintaining is held in github, and
> I also have patches in the /usr/ports/sysutils/myport/file/ folder.
>
> So I keep a fork of the upstream project with a branch containing a
> commit with the patches from the /usr/ports/sysutils/myport/file/.
>
> Every time I need to update the port to a newer version, I do a git pull
> in this branch, then I run a script [1] to re-generate the patches in
> the /usr/ports/sysutils/myport/file/
>
> This script basically generates a file.orig of all modified files in
> git, then copy the modified file to WORK_DIR, then run make makepatch.
>
>
> for file in ${CHANGES}; do
>         mv ${WORK_DIR}/${file} ${WORK_DIR}/${file}.orig
>         cp ${PROJECT_PATH}/${file} ${WORK_DIR}/${file}
> done
> make makepatch
>
>
> I would like to know if there is a better way to do this (some tool that
> I am not aware of?).

IIUC, the process you're describing seems to be rebasing your changes
and then generating diffs. You might have an easier time if you just
do that: rebase, and then generate a diff (see the last point here).

Your script automates some of the routine Makefile changes, and while
there are some tools in ports-mgmt/ that can automate that, we don't
generally recommend them.

It's common for Makefiles to have a maintainer-update: target that
keeps the repetitive update tasks in the Makefile (which also helps
the next person to maintain the port).

Also, where many files are modified on a continually-changing basis,
it's acceptable (though less systemically desirable) to put all your
patches into one file. The benefit is that you can generate that one
file with a single git diff, and it makes PR submission far, far
simpler.

Do any of those help?

# Adam


-- 
Adam Weinberger
adamw@adamw.org
https://www.adamw.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP7rwchVHEK9-ojKD1wi83LpCZCh9mZ8V2qQapCxAZeigFQK4Q>