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
Add awkward1 and uproot4 to python tools #6119
Conversation
The tests are being triggered in jenkins.
|
we really need two uproots and two awkwards? |
The first ones were added on your request. If you think, it’s ok to upgrade, I’d happy to have only the latest versions. |
+1 |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
This is presumably the developmental direction of the packages, so yes things should get replaced not added to
On 28 Jul 2020, at 23:12, Ianna Osborne <notifications@github.com> wrote:
we really need two uproots and two awkwards?
The first ones were added on your request. If you think, it’s ok to upgrade, I’d happy to have only the latest versions.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#6119 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABGPFQYBKDIR4ORU5C7JIDTR545H7ANCNFSM4PKVM6CA>.
|
please test |
The tests are being triggered in jenkins.
|
Pull request #6119 was updated. |
-1 Tested at: 1b514a2
I found compilation warning when building: See details on the summary page. You can see the results of the tests here: |
Pull request #6119 was updated. |
+1 |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
On Dec 8, 2020, at 1:06 PM, Malik Shahzad Muzaffar ***@***.***> wrote:
@mrodozov , this is failing to download the souerces for GCC10. Please check with @ianna and update the version.
@ianna , do we still need two version of awkward ( awkward and awkward1)?
Yes
…
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
We ought to switch the names: |
Also be aware that the default branch is named |
On Dec 8, 2020, at 1:21 PM, Ianna Osborne ***@***.***> wrote:
@mrodozov , this is failing to download the souerces for GCC10. Please check with @ianna and update the version.
@ianna , do we still need two version of awkward ( awkward and awkward1)?
We ought to switch the names: awkward to awkward0 and awkward1 to awkward
The same for uproot: uproot to uproot3 and uproot4 to uproot
When we upgrade to the appropriate pip versions, yes.
|
@smuzaffar I see it just failed again. checking the new names |
Why was the special source location for awkward1 needed?
… On Dec 8, 2020, at 1:41 PM, Mircho Rodozov ***@***.***> wrote:
@smuzaffar I see it just failed again. checking the new names
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
because of the recursive submodules awkward is downloading to build itself. note the submodules=1 in this line: |
I think thats bad. We should instead add dependencies to tell awkward about them. It looks like we have one of the dependencies (pybind11) and not the other (rapidjson)
… On Dec 8, 2020, at 2:21 PM, Mircho Rodozov ***@***.***> wrote:
Why was the special source location for awkward1 needed?
…
On Dec 8, 2020, at 1:41 PM, Mircho Rodozov @.***> wrote: @smuzaffar I see it just failed again. checking the new names — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
because of the recursive submodules awkward is downloading do build itself.
at the time I was checking, submodules were downloaded and used for awkward to build, but not installed with it. so that either tho we use a submodule that is available as external this submodule is not later installed in the awkward installation and there will be no duplication in externals. that was one way of doing it, and it worked.
note the submodules=1 in this line:
https://github.com/cms-sw/cmsdist/pull/6119/files#diff-c406bd44958425c52e021c208a1e0829141232bdd0f5655f683ac31e148fdde0R2
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Anyway, the release is still there. Can we not pull by release tag rather than commit?
… On Dec 8, 2020, at 2:31 PM, David Lange ***@***.***> wrote:
I think thats bad. We should instead add dependencies to tell awkward about them. It looks like we have one of the dependencies (pybind11) and not the other (rapidjson)
> On Dec 8, 2020, at 2:21 PM, Mircho Rodozov ***@***.***> wrote:
>
>
> Why was the special source location for awkward1 needed?
> …
> On Dec 8, 2020, at 1:41 PM, Mircho Rodozov @.***> wrote: @smuzaffar I see it just failed again. checking the new names — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
>
> because of the recursive submodules awkward is downloading do build itself.
> at the time I was checking, submodules were downloaded and used for awkward to build, but not installed with it. so that either tho we use a submodule that is available as external this submodule is not later installed in the awkward installation and there will be no duplication in externals. that was one way of doing it, and it worked.
>
> note the submodules=1 in this line:
> https://github.com/cms-sw/cmsdist/pull/6119/files#diff-c406bd44958425c52e021c208a1e0829141232bdd0f5655f683ac31e148fdde0R2
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub, or unsubscribe.
>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
Is it intentional that Awkward Array is being compiled from source, rather than using the wheels (sdist vs bdist)? The new structure of Awkward Array and Uproot PyPI names is:
This is the end of the name-change process, which started the last week of November. We're not planning on changing the names again: the old And yes, if you're getting things from the GitHub repos, the default branches of |
On Dec 8, 2020, at 3:21 PM, Jim Pivarski ***@***.***> wrote:
Is it intentional that Awkward Array is being compiled from source, rather than using the wheels (sdist vs bdist)?
Yes. We try to compile everything from source.
The new structure of Awkward Array and Uproot PyPI names is:
• awkward0 and uproot3 are the pure Python old versions with the old interfaces, intended for keeping old scripts working (by adding import awkward0 as awkward; import uproot3 as uproot).
• awkward and uproot (unqualified) are the new versions with new interfaces. The awkward package has CMake + compiler dependencies if compiled from source. The sdist tarball should include the pybind11 and RapidJSON header-only dependencies so that pip install . in the source directory should fully compile and install.
• awkward1 and uproot4 are now thin-wrappers (pure Python) that depend on awkward and uproot and pass through their symbols. Thus, pip install awkward1 will download and try to install awkward, so that import awkward1 creates a module full of references to the functions and classes that are actually defined in awkward.
This is the end of the name-change process, which started the last week of November. We're not planning on changing the names again: the old awkward0 and uproot3 libraries will always be available, under these names, but not actively maintained. Similarly, the awkward1 and uproot4 names exist for legacy, but as simple pointers.
And yes, if you're getting things from the GitHub repos, the default branches of scikit-hep/awkward-1.0 and scikit-hep/uproot4 are now named "main", rather than "master". (GitHub names have not changed yet, but when they do, GitHub will make redirect URLs.)
Ok, so my questions above are irrelevant… So we can just change repo name, or probably better avoid letting awkward download its own dependencies that will differ in version than ours.. (then we can get the source from pypi as with the other python tools we have)
…
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
From the current diff for this PR: + awkward1==0.2.27
+ uproot4==0.0.16 Okay, well, these versions of
The versions you've pinned to, awkward1==0.2.27 (July 23, 2020) and uproot4==0.0.16 (July 19, 2020), are quite old. A lot of work has been done since then. |
Since then we updated it to https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_11_3_X/master/pip/requirements.txt#L34 |
I'm going to try pip install awkward --no-binary :all: to make sure that this works in principle. I'm realizing now that in the checks for the new versions, I hadn't explicitly tried the source distribution, but of course that's important. It finished while writing this comment:
It looks like compilation from source is, in principle, not broken. CMake, make, and a compiler are required—I don't believe there are other compilation dependencies. (NumPy is a Python dependency, as you can see above.)
In Awkward Array, pybind11 is part of its public API (its only reason for being) but RapidJSON is not even "leaked" into the public API. None of the As for pybind11, this is going to be tricky. I've done tests in which two libraries both compile with different versions of pybind11. They can both be loaded into Python without errors (because pybind11 requires projects to hide symbols by default), but it wasn't possible to pass Awkward Arrays from one of these libraries to the other—it just didn't recognize the types. When both libraries are compiled with the same version of pybind11, there's no issue. So libraries that depend on Awkward Array at the C++ level (such as what we're planning for pyjet: scikit-hep/pyjet#31) will depend on Awkward with a particular version of pybind11. I'll probably need to document which versions of Awkward depend on which versions of pybind11 and change it infrequently. If you're compiling Awkward Array and injecting a different pybind11, that can make the Awkward-version/pybind11-version not match the table. We should at least talk about that to come up with a good plan. Right now, Awkward Array is pinned to pybind11==2.6.0 because this is the first version that supports Python 3.9. There's also a pybind11=2.6.1, but Awkward Array doesn't use it yet. |
Lines 33 to 34 in 044e6df
Lines 280 to 282 in 044e6df
These are nearly the latest versions before the name change. It would be a good idea to cross the boundary to the new names if this is a good time to make such a change. The new names and versions should be taken all at once, not piecemeal. |
please test
Resolves: #6117
@ianna