Skip to content

APE4: Astropy Setup Helpers - #5

Merged
astrofrog merged 17 commits into
astropy:masterfrom
embray:astropy-helpers
Jun 28, 2014
Merged

astrofrog merged 17 commits into
astropy:masterfrom
embray:astropy-helpers

Conversation

@embray

@embray embray commented Dec 26, 2013

Copy link
Copy Markdown
Member

Going ahead and creating a PR for this so that I can give this APE a proper number, though the text is nowhere near finished yet.

I feel like the abstract is quite long...but it's difficult to describe in fewer words what the actual problem is that motivates this PEP. Perhaps a better abstract would explain what this proposes and leave the background motivation to the longer description.

…qualifies as an 'abstract' but it's somewhat complicated to explain the motivation behind this APE in the first place.
…escription section, started filling out the implementation section, and included links to the relevant pull requests
Comment thread APE4.rst Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, astropy-helpers might be better (and more consistent with other packages)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think it might help to have a sort of definition of terms up front? In particular, the term "package" is extremely overloaded. I try to use it only to refer to the Python package itself, while using "distribution" to refer to the entire project, though sometimes I use "project" for that purpose too.

It's important to be clear that the distribution might be named "astropy-helpers", though the package would have to be "astropy_helpers".

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's good to have an up front definition of terms to make sure there is no misunderstanding. I'm ok with the distribution having - and the package having _ since that's pretty common practice. The paragraph you have above this one already has an up-front definition, but maybe you can add the words 'package' and 'distribution'?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree a definition of terms make sense, but maybe as the first item in "Detailed description" rather than the abstract (which is supposed to be sort of an executive summary). That's what I did in APE5, anyway.

@eteq

eteq commented Jan 31, 2014

Copy link
Copy Markdown
Member

Some general questions/comments:

  • Will astropy_helpers be documented in the astropy documentation, or will it have its own documentation? (I'd prefer the former, aside from a README)
  • Along the same lines, while it have its own independent issue tracker, or will we direct everyone to astropy? Obviously PRs would have to be in its own repo, but it's possible to turn the issue tracker off... (Again, I'd prefer to keep as much as possible in the astropy repo, to prevent confusion.)
  • Two other pieces of astropy that might be in the "helper" category: logging and the configuration system. It's possible they even have to be, if any of the parts that we want to move to be helpers use the configuration items...?

@astrofrog

Copy link
Copy Markdown
Member

@eteq - the issue with the docs is that then they will be decoupled from the code itself. Since we want astropy_helpers to have a faster release cycle, we also want the associated docs to have the same release cycle, so we have to keep the docs separate. However, we can make it mostly seamless to users/developers if we use the same template, and include a link to it from the main astropy docs. We could have the domain helpers.astropy.org point to the helper docs.

For issues, the problem is that users should hopefully not know about the astropy_helpers package, it should be seamless to them, so they will open issues in the main repo anyway. However, we have to support pull requests for astropy_helpers so we may have to keep an issue tracker there too anyway. I'd vote that we keep an issue tracker for astropy_helpers, but understand that some of the issues will be reported in the main astropy repository, and there isn't much we can do about that.

I agree that the logging and configuration items could be included too. At the end of the day, we're basically separating infrastructure code from functionality, which in my mind is a good idea because they need different release cycles.

@eteq

eteq commented Jan 31, 2014

Copy link
Copy Markdown
Member

At the Developer Hangout today, we discussed this APE and decided a few things. I think this is a list of the key items, altough @astrofrog may have more:

  • We want separate docs for astropy and astropy_helpers, but not separate issue trackers.
  • As a result, all the sphinx stuff should be in astropy_helpers
  • @embray emphasized the importance of astropy_helpers being only build-time and not a run-time requirement
  • As a result, configuration and logging should not be in astropy_helpers. Similar for testing, although that may have to be a mix, depending on exactly how we end up supporting python setup.py test.
  • The sdist/bdist in astropy_helpers should have an option to include the latest astropy_helpers as part of the tarball when e.g., making an astropy release. When someone installs from that tarball, it will try to get the latest version, but if it can't (or if forced to with an --offline option), it will instead use the astropy_helpers that's in the tarball.
  • If there are actual API changes to astropy_helpers, rather than just bugfixes, they will have different version major numbers, so that versions of affiliated packages can be tied to a specific major version of astropy_helpers (but still get an up-to-date bugfix version)

So the APE should be updated to reflect those items.

@astrofrog

Copy link
Copy Markdown
Member

@eteq - thanks for already summarizing this :) There were only a couple of other things:

  • For testing, the idea is that astropy_helpers could implement a non-functional test command so that the command at least is recognized, but an error is given saying that Astropy is required for the tests to run. This was deemed reasonable since most affiliated packages will need astropy installed anyway for the tests to pass.
  • The sdist command in astropy_helpers should be make setting up the whole including the latest astropy_helpers in the tarball automated and transparent to the user.
  • There was concern as to what would happen if the URL request to get the latest astropy_helpers got stuck, and the solution is to put a message before the download saying that users should run with --offline if this command gets stuck - this forces to use the bundled astropy_helpers and doesn't try and get the latest and greatest.
  • We decided that it would make sense to aim for this APE to be decided by the end of February, so that we can give people a deadline for review and time for the implementation to be well tested.

@astrofrog

Copy link
Copy Markdown
Member

Just as a reminder, we tentatively set a deadline of roughly in a week time to decide on this APE, so it would be good to try and finalize it. Is there anything that I or others can do this week to help try and make sure this stays on track?

cc @embray @eteq

@eteq

eteq commented Feb 27, 2014

Copy link
Copy Markdown
Member

Well, I don't think I've actually done anything on this yet aside from offering opinions... so it'll be good to hear what @embray has to say on the implementation side :)

@embray

embray commented Feb 27, 2014

Copy link
Copy Markdown
Member Author

I've had exactly no time to work on this.

@eteq

eteq commented Feb 27, 2014

Copy link
Copy Markdown
Member

Do you think you might in the near future (i.e., so that we can try to have it for 0.4), @embray, or should we consider shopping around for someone else to work on the implementation with you who might have more time?

@embray

embray commented Feb 27, 2014

Copy link
Copy Markdown
Member Author

No, I'm just focused on getting releases done right now. Then I can turn my attention. I think we'll have that done today.

@eteq

eteq commented Feb 27, 2014

Copy link
Copy Markdown
Member

Ok, sounds good

@embray

embray commented Mar 19, 2014

Copy link
Copy Markdown
Member Author

Finally making some progress on this again. I'm going to make issues for the items brought up in the meeting from January (so glad somebody took notes!) and update the APE as I implement them.

@astrofrog

Copy link
Copy Markdown
Member

Sounds good!

@mwcraig

mwcraig commented Apr 12, 2014

Copy link
Copy Markdown
Member

I don't see much need for the option of including a source tarball of astropy_helpers -- it seems like a hassle to maintain as part of, e.g., an affiliated package. I don't object to it if others find it useful, just can't imagine using it myself.

@astrofrog

Copy link
Copy Markdown
Member

It sounds like there are also no objections to this APE, so I think we are also good to accept the APE and merge this and the two associated pull requests.

@embray - do you want to start making sure all three pull requests are ready for merging?

cc @eteq @mdboom @embray

@embray

embray commented Apr 22, 2014

Copy link
Copy Markdown
Member Author

I'm still a little hesitant. Has anyone actually tried adapting their affiliated package to this yet?

In any case, it more or less "works" with the package-template so maybe that's good enough for now, with revisions to be made once we get some real world use?

@eteq

eteq commented Apr 23, 2014

Copy link
Copy Markdown
Member

Hmm... good question. @keflavich @cdeil @kbarbary @wkerzendorf or @mwcraig , have any of you tried this in affiliated packages?

@cdeil

cdeil commented Apr 23, 2014

Copy link
Copy Markdown
Member

I haven't tried this, but if there's multiple pull requests it's kind of hard.
But merging it into master and ironing out issues over the next days / weeks should be fine, no?

@wkerzendorf

Copy link
Copy Markdown
Member

@eteq @embray Not yet - I'm still travelling but will try to update TARDIS, when I'm back in ~10 days.

@embray

embray commented Apr 23, 2014

Copy link
Copy Markdown
Member Author

For affiliated packages the only PR that really matters is astropy/package-template#46 as it demonstrates how one might set up a package to use this feature. In fairness, one major piece of this that is still missing is documentation, but I didn't want to start writing docs until there has been more immediate feedback. That said, maybe I should go ahead and start writing docs on how to use this in a project...

@mwcraig

mwcraig commented Apr 23, 2014

Copy link
Copy Markdown
Member

@eteq @embray -- not yet...should have time tomorrow.

@mwcraig

mwcraig commented Apr 24, 2014

Copy link
Copy Markdown
Member

I'm stuck -- how do I add astropy_helpers to an existing repo as a submodule?

@eteq

eteq commented Apr 24, 2014

Copy link
Copy Markdown
Member

@embray - maybe you can clear this up for @mwcraig , and then add it to the docs?

@mwcraig

mwcraig commented Apr 24, 2014

Copy link
Copy Markdown
Member

Question about a point not addressed here (and maybe it shouldn't be addressed in this APE, don't know): If an affiliated package uses six should it use the six bundled with astropy?

@embray

embray commented Apr 24, 2014

Copy link
Copy Markdown
Member Author

I think that's outside the scope of this. But it is a good question. I'm leaning toward yes, just for the deduplication. But it also depends on the range of Astropy versions you need/want to be compatible with, as we've updated the version of six a couple times.

@astrofrog

Copy link
Copy Markdown
Member

I agree this does not fall within the scope of this PR. I think that the answer is basically (as @embray said) that it depends which features of six you depend on and which astropy versions you want to support.

@astrofrog

Copy link
Copy Markdown
Member

I can try this with APLpy this evening.

@mwcraig

mwcraig commented Apr 30, 2014

Copy link
Copy Markdown
Member

Tried this out tonight, comments in astropy/package-template#46.

Bottom line: seemed to work after a couple changes.

@astrofrog

Copy link
Copy Markdown
Member

@embray - apart from the issues in the pull requests for the core package and the package template, is this APE ready to merge/accept? I don't think there have been any objections, and the issues that have popped up are likely just bugs that can be fixed? Or is there still the possibility that the implementation design will change a lot?

@cdeil

cdeil commented May 27, 2014

Copy link
Copy Markdown
Member

I read the APE ... there are some things that should be updated before it's merged.
@embray Do you want me to go through and leave comments now or update this PR now that astropy-helpers is active first?

Comment thread APE4.rst Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too late ... there are already a bunch of issues filed for astropy-helpers.

@astrofrog suggested that I move an issue from the astropy to the astropy-helpers repo here: astropy/astropy#2418 (comment)

@embray @astrofrog What do you want to do?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I naturally felt like it was right to open them on astropy-helpers since the milestones will likely be different for astropy-helpers than for astropy. Certainly pull requests have to be open on astropy-helpers. What do you think?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's some pros and cons to activating issues for astropy-helpers.
@embray as the astropy-helpers author (and presumably main maintainer?) should decide.

For developers and very knowledgeable users filing the issue directly against astropy-helpers is better because then commits can be attached directly to the issue.
Users with Astropy installation problems will in most cases not be able to figure out if they should file against astropy or astropy-helpers, even if the docs are really good and clear about that.
So there will in any case be astropy-helper issues filed against astropy ... maybe simply introducing a label for those would be better than asking users to re-file in astropy-helpers?

@astrofrog

Copy link
Copy Markdown
Member

Right, having both issues in astropy-helpers or in astropy with astropy-helpers label could work.

@eteq

eteq commented May 30, 2014

Copy link
Copy Markdown
Member

@embray - what's the situation with this PR? Should we merge it now, or do you think you need to make more changes? Of particular importance is finalizing the dicsussion of how to handle issues in astropy-helpers vs astropy.

…d out in reality. Added note about the versioning.
@astrofrog

Copy link
Copy Markdown
Member

@embray - should we go ahead and merge this?

@embray

embray commented Jun 26, 2014

Copy link
Copy Markdown
Member Author

I think so. I don't feel comfortable accepting my own APE so if you would like to do it and mark it as accepted that would be good :)

@astrofrog

Copy link
Copy Markdown
Member

Ok, merging now. Thanks for all your work on this @embray!

astrofrog added a commit that referenced this pull request Jun 28, 2014
@astrofrog
astrofrog merged commit ca98ba2 into astropy:master Jun 28, 2014
mwcraig pushed a commit to mwcraig/astropy-APEs that referenced this pull request Dec 1, 2014
Update uncertainty description to list normal distribution types
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.

6 participants