rootpy release planning hangout and Google+ community

20 views
Skip to first unread message

Noel Dawe

unread,
Dec 8, 2012, 2:48:18 AM12/8/12
to rootp...@googlegroups.com

Hi everyone,

I've created a new Google+ community for rootpy (thanks to Christoph for suggesting this):


Feel free to sign up! We can use this community to facilitate organizing Google+ hangouts and for more social discussions.

I would like to have a hangout this weekend if possible to discuss the next rootpy release (when, and what we can deliver). Would Sunday work for most of you? It can be early Sunday morning for me (I'm currently in Vancouver) and later in the day for most/all of you. Let me know if this could work and we can set a time.

Cheers,
Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe

Christoph Deil

unread,
Dec 8, 2012, 4:45:49 AM12/8/12
to rootp...@googlegroups.com
On Dec 8, 2012, at 8:48 AM, Noel Dawe <noel...@gmail.com> wrote:
> I would like to have a hangout this weekend if possible to discuss the next rootpy release (when, and what we can deliver). Would Sunday work for most of you? It can be early Sunday morning for me (I'm currently in Vancouver) and later in the day for most/all of you. Let me know if this could work and we can set a time.

Works for me.

Christoph Deil

unread,
Dec 8, 2012, 9:15:41 AM12/8/12
to rootp...@googlegroups.com, deil.ch...@googlemail.com
One point that I think is important for the release and the website is how root_numpy and rootpy relate and should be installed.

Personally I would always install both together and use root_numpy not directly, but via rootpy.

So for developers it's pretty clear what the installation instructions should be. Something like:
```
source $ROOTSYS/bin/thisroot.sh
python -c 'import ROOT' # Check that PyROOT works
cd root_numpy
make install
make check
cd ..
cd rootpy
make install
make check
```

For normal users it is not clear to me what the installation instructions should be. At the moment http://pypi.python.org/pypi/rootpy mentions pip as the easiest way. So now it could look like this:
```
source $ROOTSYS/bin/thisroot.sh
python -c 'import ROOT' # Check that PyROOT works
pip install root_numpy
pip install rootpy
```
But then how can I run unit tests to check that my ROOT / PyROOT / root_numpy / rootpy installation is good?
And where are the examples and documentation?
Because test and examples and documentation are hard to find if installed this way, I don't think that should be the recommended way.

How about on the front page (or a download / install sub-page) we use something like this as default install instructions?
```
source $ROOTSYS/bin/thisroot.sh
python -c 'import ROOT' # Check that PyROOT works
tar zxf root_numpy-2.0.tar.gz
cd root_numpy-2.0
make install
make check
cd ..
tar zxf rootpy-0.7.tar.gz
cd rootpy-0.7
make install
make check
```

I guess root_numpy is a run-time (as opposed to install-time) optional dependency of rootpy, so we could have separate web pages for root_numpy and rootpy, each with a link to the other one. As I said, I'm not sure how to best structure the rootpy.org webpage in this regard.

Peter Waller

unread,
Dec 8, 2012, 9:20:50 AM12/8/12
to rootp...@googlegroups.com, deil.ch...@googlemail.com
On 8 December 2012 14:15, Christoph Deil <deil.ch...@googlemail.com> wrote:
One point that I think is important for the release and the website is how root_numpy and rootpy relate and should be installed.

I agree that this should be rated of high importance.

I disagree with your ultimate proposal because it involves putting lots of lines into bash. That will put people off, especially newbies who will end up typing each line out at worst, or copying line by line or the whole thing at best, which is also a recipe for problems.

You want to get as close to a one-line install as possible, and *maybe* do something interactive, such as invite the user to fetch numpy/etc if they want it.

Another possibility would be to give an instruction like:


Though that would put off security savvy users, especially if it's not from a https url. OTOH, life isn't much better ordinarily anyway whenever you run pip it amounts to the same thing.

Just my quick thoughts.

- Peter

P.S. (Btw, Christoph, I've been trying to hail you on gtalk/jabber for a while with no luck).

Noel Dawe

unread,
Dec 8, 2012, 3:11:21 PM12/8/12
to rootp...@googlegroups.com, deil.ch...@googlemail.com
I think my preferred method would be to use the extra_requires feature of setup():


rootpy's setup.py already has extra_requires filled out but is missing root_numpy in the optional 'array' requires.

Using this feature you can "pip install rootpy[array,hdf,mpl,term]" or just a subset of the extra_required like "pip install rootpy[array]"

Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe


--
You received this message because you are subscribed to the Google Groups "rootpy dev" group.
To post to this group, send email to rootp...@googlegroups.com.
To unsubscribe from this group, send email to rootpy-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Peter Waller

unread,
Dec 8, 2012, 3:13:02 PM12/8/12
to rootp...@googlegroups.com, deil.ch...@googlemail.com
On 8 December 2012 20:11, Noel Dawe <noel...@gmail.com> wrote:
Using this feature you can "pip install rootpy[array,hdf,mpl,term]" or just a subset of the extra_required like "pip install rootpy[array]"

Nice. I wasn't aware of this. 

Noel Dawe

unread,
Dec 8, 2012, 3:16:02 PM12/8/12
to rootp...@googlegroups.com, deil.ch...@googlemail.com
Seems like it was only recently supported:


Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe


--

Noel Dawe

unread,
Dec 8, 2012, 3:21:43 PM12/8/12
to rootp...@googlegroups.com, deil.ch...@googlemail.com
It has been close to a year for pip:


Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe


Noel Dawe

unread,
Dec 8, 2012, 3:34:59 PM12/8/12
to Christoph Deil, rootp...@googlegroups.com
Agreed. We should present both the easy pip install method as well as the more manual approach. For testing we can use what you suggest, which is exactly what scikit-learn uses:

http://scikit-learn.org/stable/install.html   (bottom of the page)

How about 5pm CET / 8am PST Sunday for the release hangout?

Noel


Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe


On Sat, Dec 8, 2012 at 12:27 PM, Christoph Deil <Deil.Ch...@gmail.com> wrote:

On Dec 8, 2012, at 9:16 PM, Noel Dawe <noel...@gmail.com> wrote:

Seems like it was only recently supported:


Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe


On Sat, Dec 8, 2012 at 12:13 PM, Peter Waller <p...@pwaller.net> wrote:
On 8 December 2012 20:11, Noel Dawe <noel...@gmail.com> wrote:
Using this feature you can "pip install rootpy[array,hdf,mpl,term]" or just a subset of the extra_required like "pip install rootpy[array]"

Nice. I wasn't aware of this. 


+1 on putting this on the front page, and other, more manual steps on a sub-page.

I would still think a sub-page with more manual instruction where the user downloads or clones the rootpy code into his home directly is important, since most new users will want to run / study / modify examples after install and with pip these go in a system directory which is harder to find and often not writable (unless --user or --home is used)

How would the user check if the install is OK?
Would `nosetests -exe rootpy` work already or can we make it work for both root_numpy and rootpy?
Alternatively `python -c "import rootpy; rootpy.test()"` would be just as good, whichever is easier to make work reliably.


Christoph Deil

unread,
Dec 10, 2012, 4:53:54 AM12/10/12
to rootp...@googlegroups.com
Wow, Noel and Peter worked all night, looks like the release could happen soon.

Noel, could you assign a milestone to these issues and add a label if they are features or bugs?

Same here, please add a milestone:

Let me know if I should do e.g. some Mac-testing or something for the website.

Christoph

Noel Dawe

unread,
Dec 11, 2012, 4:27:17 AM12/11/12
to rootp...@googlegroups.com
We had a very productive Sunday (thanks Christoph and Peter for the long hours of work!) and are now in a good position to release 0.7.

root_numpy 2.0.1 has already been released: http://pypi.python.org/pypi/root_numpy/2.0.1

Peter's latest PR can probably be merged before we release:

Anyone have any other outstanding issues in mind?

Today I cleaned up the scripts (they all use argparse from rootpy.extern and I moved some WIP scripts to devscripts for now) and fixed a few other miscellaneous issues.

Christoph, some mac-testing of the latest rootpy/master would be appreciated. Once we release we should shift focus to the website.

Cheers,
Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe



--
You received this message because you are subscribed to the Google Groups "rootpy dev" group.
To post to this group, send email to rootp...@googlegroups.com.
To unsubscribe from this group, send email to rootpy-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rootpy-dev/-/ZOTC0xQScIEJ.

Christoph Deil

unread,
Dec 8, 2012, 3:27:28 PM12/8/12
to Noel Dawe, rootp...@googlegroups.com
On Dec 8, 2012, at 9:16 PM, Noel Dawe <noel...@gmail.com> wrote:

Seems like it was only recently supported:


Noel

Vancouver: +1 778 373 9738
Geneva: +41 76 631 44 50 (cell)
Skype: noel.dawe


On Sat, Dec 8, 2012 at 12:13 PM, Peter Waller <p...@pwaller.net> wrote:
On 8 December 2012 20:11, Noel Dawe <noel...@gmail.com> wrote:
Using this feature you can "pip install rootpy[array,hdf,mpl,term]" or just a subset of the extra_required like "pip install rootpy[array]"

Nice. I wasn't aware of this. 


Christoph Deil

unread,
Dec 8, 2012, 9:43:27 AM12/8/12
to rootp...@googlegroups.com
I like the idea of the installer script (which would basically contain the commands I mentioned, probably with lots of checks added), but I don't know how robust and safe it would be so if we should advertise it as the default install method.

Making ROOT, root_numpy and rootpy available via Linux and Mac distros is probably the best way if you can sudo.

It's not very hard to do:

One thing that would help with such distributions is if the Python package layout is as standard as possible, which I think is already the case for rootpy, and for root_numpy this would help:

But I know, one step at a time: first the release and webpage …

Christoph

Christoph Deil

unread,
Dec 11, 2012, 3:06:49 PM12/11/12
to rootp...@googlegroups.com
On Dec 11, 2012, at 10:27 AM, Noel Dawe <noel...@gmail.com> wrote:

We had a very productive Sunday (thanks Christoph and Peter for the long hours of work!) and are now in a good position to release 0.7.

root_numpy 2.0.1 has already been released: http://pypi.python.org/pypi/root_numpy/2.0.1

Peter's latest PR can probably be merged before we release:

Anyone have any other outstanding issues in mind?

What about the two bugs (#9 and #99)?
Are they still there? Are these actually bugs ore did I misclassify them?

And what about #82.
It's an API change, so I think we should do it before the release.

I do want to run autopep8 on rootpy, which will make many small whitespace changes, so it should be done only after any outstanding PRs are merged.


Today I cleaned up the scripts (they all use argparse from rootpy.extern and I moved some WIP scripts to devscripts for now) and fixed a few other miscellaneous issues.

Christoph, some mac-testing of the latest rootpy/master would be appreciated. Once we release we should shift focus to the website.

Everything works with ROOT 5.34 on Mac 10.7 and 10.8

Peter, did you manage to build oder ROOT versions on Mac?
Can you commit your script to devscripts, then I'll test all these different versions on my 10.8 Mac

Peter Waller

unread,
Dec 11, 2012, 4:25:55 PM12/11/12
to rootp...@googlegroups.com
On 11 December 2012 20:06, Christoph Deil <deil.ch...@googlemail.com> wrote:
What about the two bugs (#9 and #99)?
Are they still there? Are these actually bugs ore did I misclassify them?

They're bugs, but not much we can do about at the moment. I don't have the time or energy to spend to figure out why they are broken. Both may possibly be helped by using rootcint directly (see my pull request), but this is unlikely to work in the near future unless Noel can figure out what the secret sauce is.

We're a bit closer on that front now that we figured out how to get ROOT to dump what it's doing when it builds things in CompileMacro (set ROOT.gDebug > 9 or something like that). But that ball is in Noel's court. I don't know how important it is to fix this. It depends whether anyone is using it.
 
And what about #82.
It's an API change, so I think we should do it before the release.

No opinion here.
 
I do want to run autopep8 on rootpy, which will make many small whitespace changes, so it should be done only after any outstanding PRs are merged.

Sounds good but please sanitize the result. One of the first things in PEP8 is that you can break violate PEP8 where it makes sense to do so. It's not about enforcing the rules just for the sake of it, but trying to write code as cleanly as possible.
 
Peter, did you manage to build oder ROOT versions on Mac?
Can you commit your script to devscripts, then I'll test all these different versions on my 10.8 Mac

Christoph Deil

unread,
Dec 11, 2012, 4:50:32 PM12/11/12
to rootp...@googlegroups.com
Updated coverage report is here, in case someone wants to make sure their new code actually does work in rootpy 0.7.
:-)

A lot of quite central code (e.g. in `rootpy.tree`) is not covered at the moment, so it might not work e.g. on Mac or with certain ROOT versions or in general.
I won't have time to write tests this week though, but this is something I can definitely contribute to in the future.

Christoph


Christoph Deil

unread,
Dec 11, 2012, 4:57:45 PM12/11/12
to rootp...@googlegroups.com
root_numpy coverage report is here:

coverage.py only works for Python modules, not C extensions, so it's not very useful for root_numpy.

Piti, could you please have a quick look if the most important functionality of root_numpy is covered?

$ nosetests -s root_numpy --verbose
test_PyRoot (root_numpy.tests.test.TestRootNumpy) ... ok
test_fill_array (root_numpy.tests.test.TestRootNumpy) ... ok
test_fixed (root_numpy.tests.test.TestRootNumpy) ... ok
test_lb (root_numpy.tests.test.TestRootNumpy) ... ok
test_lt (root_numpy.tests.test.TestRootNumpy) ... ok
test_offset_N (root_numpy.tests.test.TestRootNumpy) ... ok
test_single (root_numpy.tests.test.TestRootNumpy) ... ok
test_singlechain (root_numpy.tests.test.TestRootNumpy) ... ok
test_specific_branch (root_numpy.tests.test.TestRootNumpy) ... ok
test_tree2array (root_numpy.tests.test.TestRootNumpy) ... ok
test_tree2rec (root_numpy.tests.test.TestRootNumpy) ... ok
test_vary (root_numpy.tests.test.TestRootNumpy) ... ok
test_vector (root_numpy.tests.test.TestRootNumpy) ... ok
test_weights (root_numpy.tests.test.TestRootNumpy) ... ok

----------------------------------------------------------------------
Ran 14 tests in 0.288s

OK

Thanks!
Christoph

Peter Waller

unread,
Dec 11, 2012, 5:25:13 PM12/11/12
to rootp...@googlegroups.com
On 11 December 2012 21:50, Christoph Deil <deil.ch...@googlemail.com> wrote:

I like this. Thanks for going to the effort to get it working. How to I generate it? 

Piti Ongmongkolkul

unread,
Dec 11, 2012, 5:49:26 PM12/11/12
to rootp...@googlegroups.com
This looks very nice. Is it possible to make it so that travis give this to us(at least for head).
Just found a bug with coverage test XD.

Piti

Peter: 
make test-coverage
and your coverage will be in cover directory.

Christoph Deil

unread,
Dec 11, 2012, 11:54:06 PM12/11/12
to rootp...@googlegroups.com
I think Noel copied over this Makefile from the scikit-learn project, and it contained:
make test-coverage

We could make the coverage report on travis-ci, but I think it's simpler to make it on our Jenkins and then upload to rootpy.org.
I'm super busy this week, but I've noted it here to make sure it gets done next week:
Reply all
Reply to author
Forward
0 new messages