Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the build reproducible #669

Conversation

lamby
Copy link
Contributor

@lamby lamby commented May 22, 2021

Whilst working on the Reproducible Builds I noticed that apispec could not be built reproducibly. This is due to the copyright message (configured in docs/conf.py) including the current build date. (I originally filed this in Debian as bug #988978.)

Whilst working on the Reproducible Builds effort [0] I noticed that
apispec could not be built reproducibly.

This is due to FIXME.

I originally filed this in Debian as bug #988978 [1].

 [0] https://reproducible-builds.org/
 [1] https://bugs.debian.org/988978
@lafrech
Copy link
Member

lafrech commented May 30, 2021

This should be harmonized amongst our repos (marshmallow, webargs).

I'd go for the simplest. It could be removing the auto-date feature and bump date manually. After all, we already bump the license year manually.

@sloria ?

@lafrech
Copy link
Member

lafrech commented Aug 11, 2021

@lamby, I suppose marshmallow (and webargs and all...) are affected, right?

@sloria, mind if I remove that dynamic part to hardcode the date just like we do in the license file? Here and in other impacted projects.

@lamby
Copy link
Contributor Author

lamby commented Aug 11, 2021

@lafrech Good qestion. Marshmallow may be fine as it uses the mtime of the file, but webargs needs updating too. (I would suggest using SOURCE_DATE_EPOCH for all of these, rather than mtime stuff.)

@lafrech
Copy link
Member

lafrech commented Aug 11, 2021

Thanks. I didn't know SOURCE_DATE_EPOCH was standardised. TBH, I didn't searched and somehow assumed it was a workaround you had to implement specifically for this, hence my proposal to simplify things and spare packagers the trouble.

https://reproducible-builds.org/docs/source-date-epoch/

Before implementing this, you should scan through our checklist to see if you can avoid implementing it.

I'm still willing to simplify things, but I have no experience in Debian packaging, so if you think SOURCE_DATE_EPOCH is better than mtime and not worth hardcoding the year, then fine, let's go for it.

@lamby
Copy link
Contributor Author

lamby commented Aug 11, 2021

I'm still willing to simplify things, but I have no experience in Debian packaging, so if you think SOURCE_DATE_EPOCH is better than mtime and not worth hardcoding the year, then fine, let's go for it.

👍

@lafrech
Copy link
Member

lafrech commented Aug 12, 2021

I opened equivalent PRs on marshmallow (marshmallow-code/marshmallow#1862) and webargs (marshmallow-code/webargs#631).

After we merge this, I'll change the copyright line into

    copyright = f"2014-{build_date:%Y}, Steven Loria and contributors"

to match webargs.

@lafrech lafrech merged commit acb793a into marshmallow-code:dev Aug 12, 2021
6 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants