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

Remove user specific information from about.json #2239

Closed
wants to merge 1 commit into from

Conversation

mandeep
Copy link
Contributor

@mandeep mandeep commented Jul 26, 2017

In relation to #2140, this PR removes the writing of user specific information to about.json. I spoke with @kalefranz and @abarto and neither conda nor Anaconda.org uses the metadata from about.json. I wasn't sure if it was safe to remove the about.json file completely so I limited the content to package information.

@bollwyvl
Copy link

Ooh, don't know about this. I had done this in my hacky approach, but only because I didn't have anywhere canonical to put it. I don't think it's reasonable to suggest that two versions of conda-build will produce the same output, so at least that would have to be captured... but at that point, might as well specify everything that was available as who knows (yet) what might be needed.

Anyhow, I had been dreaming of a plugin/feature like:

conda-build --export-build-env foo-0.0.0.tar.bz2 > environment.yml

Which would indeed use the about.json specs to make an environment.yml that could be used to provision a build environment. Instead of a local file path, accepting a URL would be wonderful.

Better still would be...

conda-build --reproduce foo-0.0.0_0.tar.bz2

Which would do the same extraction as above, but then...

  • build a temporary environment with what it found
  • use the temporary conda in it
    • using the embedded recipe, run conda-build
  • check the hashes
    • if not the same, and available, use diffoscope against the generated tar.bz2 to report back what changed

The challenging thing in this are the channels. Without a requirements.txt style representation, one can't necessarily guarantee that conda will resolve what is reported there, so it might be better to reduce it down to a requirements.txt or environment.yaml-style representation. And indeed, at the end of the day, the goal is for two packages in two channels to be the same!

The other thing to do with this would be the .buildinfo approach, and have a separate file which captured this information.

One could also imagine checking/generating .sig files and all kinds of other goodies. For example, if a URL is used, having a well-known location, i.e. foo-0.0.0_0.sig could be automatically checked when reproducing. There's really no claim to be satisfied with a separate .buildinfo, but yet it would still be worthwhile to sign.

So at the end of the day, one could imagine a single run of conda-build generating:

foo-0.0.0_0.buildinfo
foo-0.0.0_0.buildinfo.sig
foo-0.0.0_0.tar.bz2.sig
foo-0.0.0_0.tar.bz2

But now we start getting to some pretty deep stuff, as really what one would want is the ability for other people to sign packages, not just the author, such that an organization could demand that their internal build system had reproduced something claimed in public.

@mandeep
Copy link
Contributor Author

mandeep commented Jul 27, 2017

@bollwyvl You bring up some great points! I think having those two commands in conda-build would be awesome. I'll have to discuss this with @msarahan to see if there's a certain way he would want to approach this.

@msarahan msarahan added the tag::reproducibility related to producing reproducible results label Aug 3, 2017
@github-actions
Copy link

Hi there, thank you for your contribution!

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs.

If you would like this pull request to remain open please:

  1. Rebase and verify the changes still work
  2. Leave a comment with the current status

NOTE: If this pull request was closed prematurely, please leave a comment.

Thanks!

1 similar comment
@github-actions
Copy link

Hi there, thank you for your contribution!

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs.

If you would like this pull request to remain open please:

  1. Rebase and verify the changes still work
  2. Leave a comment with the current status

NOTE: If this pull request was closed prematurely, please leave a comment.

Thanks!

@github-actions github-actions bot added the stale [bot] marked as stale due to inactivity label Jul 27, 2023
@github-actions github-actions bot added the stale::closed [bot] closed after being marked as stale label Aug 26, 2023
@github-actions github-actions bot closed this Aug 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale::closed [bot] closed after being marked as stale stale [bot] marked as stale due to inactivity tag::reproducibility related to producing reproducible results
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

3 participants