Thanks for the reply, this is indeed helpful. A lot of the release steps I
already recognize (i.e. convenience packages seems to be using
sbt-native-packager) and although our project isn't an application (so we
have no need for sbt-native-packager), it's a library so we do need to
publish JVM artifacts to Apache's Maven Repo (for example).

> There's definitely alot there that is specific to Daffodil, but a good
chunk of it is generic to any Apache project. If there's interest in
trying to generalize it to work with pekko, I'm happy to help out.

So we are trying to do this one step at a time. For now as mentioned before
we have created sbt-source-dist for the source packages and for the first
release we would likely manually sign the packages with gpg. As mentioned
before ideally we would like sbt-source-dist to also handle signing the
source packages via sbt-pgp (https://github.com/sbt/sbt-pgp), this would
help ensure that the same private key used for signing the source package
is also the same private key that will sign the maven artifacts for sbt
publishSigned. I have a suspicion that this might be useful for Daffodil as
well (haven't checked how Daffodil generates source packages, will do it
later). Doing this would require upstream changes to sbt-pgp.

A pie in the sky idea for later down the track would be to use sbt-release (
https://github.com/sbt/sbt-release) to combine all of these sbt steps and
also do additional checks (i.e. is the key that you are using to sign the
source package/JVM artifact an Apache one in the KEYS file?), this is
however not a priority right now.

On Wed, Feb 8, 2023 at 5:55 PM Steve Lawrence <slawre...@apache.org> wrote:

> Our release process is fairly complex since we do a lot more than just
> sources. We also do convenience binaries that are published to maven,
> RPM and Windows installers, documentation, publishing to dist.apache and
> the daffodil site, creating signatures, etc. It basically automates
> about 90% of everything we've found we need to do when building release
> candidate.
>
> It's fairly complex, but the steps are pretty thoroughly documented here:
>
>    https://cwiki.apache.org/confluence/display/DAFFODIL/Release+Workflow
>
> The automation of the release process is done with a container here:
>
>
> https://github.com/apache/daffodil/tree/main/containers/release-candidate
>
> We use this container to avoid improve reproducibility and use a known
> good environment.
>
> This container checks out the code from github, builds all the release
> artifacts and pushes them where necessary. It also includes a --dry-run
> option to skip pushing things out.
>
> Inside that container, to build the source tarball we use git archive:
>
>
>
> https://github.com/apache/daffodil/blob/main/containers/release-candidate/src/daffodil-release-candidate#L248
>
> Most of the logic to build the binary rpm/msi is done by the
> sbt-native-packager sbt plugin:
>
>    https://github.com/sbt/sbt-native-packager
>
> And most of the native packager configuration is done here:
>
>    https://github.com/apache/daffodil/blob/main/daffodil-cli/build.sbt
>
> And here's the sbt command we use to actually do a lot of the work:
>
>
>
> https://github.com/apache/daffodil/blob/main/containers/release-candidate/src/daffodil-release-candidate#L258-L270
>
> There's definitely alot there that is specific to Daffodil, but a good
> chunk of it is generic to any Apache project. If there's interest in
> trying to generalize it to work with pekko, I'm happy to help out.
>
>
>
>
>
> On 2023-02-08 11:32 AM, Matthew Benedict de Detrich wrote:
> > Hello Daffodil community,
> >
> > I am coming from Apache Pekko (
> https://github.com/apache/incubator-pekko/)
> > community, which is an Apache Incubator project that is a result of an
> open
> > source Akka fork. Since we are part of the incubator, we are undergoing
> the
> > standard procedures/process for creating an Apache release and I noticed
> > that Daffodil happens to be one of the few Apache TLP projects written in
> > Scala that also uses sbt as a build tool, the same with Pekko.
> >
> > The Pekko community is prototyping a plugin called sbt-source-dist (see
> > https://github.com/pjfanning/sbt-source-dist) whose goal is to generate
> the
> > source packages required for an Apache release and I was wondering if
> there
> > is an opportunity for cross collaboration (also learnings from our side
> on
> > possible alternatives for generating the source package)?
> >
> > Currently the basic functionality of generating the zip/tar source
> packages
> > in sbt-source-dist is working however there are additional improvements
> > that can be done (i.e.
> https://github.com/pjfanning/sbt-source-dist/issues/1
> > )
> >
> > Regards
>
>

-- 

Matthew de Detrich

*Aiven Deutschland GmbH*

Immanuelkirchstraße 26, 10405 Berlin

Amtsgericht Charlottenburg, HRB 209739 B

Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen

*m:* +491603708037

*w:* aiven.io *e:* matthew.dedetr...@aiven.io

Reply via email to