-
Notifications
You must be signed in to change notification settings - Fork 75
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
Provide binary releases #361
Comments
Q: do we want a binary release for each PR merged, or manually on new tagged versions? |
I think we only need binary releases for tagged versions. |
@rhyolight can you help me with the release/tag process, please?
🍩 |
I've been working on this a lot today, some progress: Linux:
Work-flow should be as follows:
Here is the first passing build status with GH Release deployment: This is the release:
WIP, help wanted. AppVeyor CI Releases are WIP in |
There is an upcoming problem and inconveniences:
Instead of looking like this: Release 2.0.0Files:
we will have: Release 2.0.0-LinuxFiles:
Release 2.0.0 OSXFiles:
etc This is an inconvenience, but workable. |
ok, and the "problem" would not be a problem. I was worried about But just one CI should be responsible for publishing the PYPI package, and inside its setup.py it would decide which bindings to download based on platform. |
First Linux binary release available: https://github.com/htm-community/htm.core/releases/tag/v2.0.0-4 Please test if the binary works |
Great progress. I think we can live with this for a while but I agree that PyPi is a problem. What I envisioned was the PR build that succeeds would actually checkin its two packages so that after all three CI's are finished, the git for the PR would contain all 6 packages along with the source. Then during the merge the packages move into the master and a hook just needs to distribute the packages to the places they need to go at GitHub and PyPi. I don't know...is that possible? |
Cool. I downloaded the package and opened the tar.gz. Then ran the unit_tests and it worked.... of course one test failed. Let me try to figure out how to use the wheel file and I will try that too. |
That works too.
It includes the commands to load the dependencies too. It tells me that everything is already satisfied but I guess that is to be expected. |
Great to hear, testing on..Windows..er, Linux VM?
even on a local machine? That's unexpected. Does it fail on time, or exact output? |
yeah, that would be the best solution. But difficult to execute.
|
I'm trying one more option, if I could "create" a release with an existing name, and just push/update the new file, we could put all 3 artifacts into a single release. |
Ubuntu 19 using VBox.
I often get this on the local machine...fails on time. Not consistent. |
No, what I had in mind was to actually put the binaries into the Git repository and push it into GitHub. I know the CI can checkout, so can they also make changes to the PR's repository? Could get messy I guess. |
that's not a good solution, and not feasible long term. Git is not suited for large, binary files. Further, the CI don't have (and should not) git push access. |
since https://travis-ci.org/htm-community/htm.core/builds/571444454 @dkeeney this release can be used as testing for PyPI #19 package uploads. TODO:
|
this is a PR with tag:
This is merged the PR above to master:
So I don't think this woud trigger the deploy on master in Travis, @dkeeney . |
ok, crisis saved. It works ok with the workflow you need:
|
so, no. Crisis is even worse 😛
|
@dkeeney we still have a problem with the releases:
|
Hmmm, I have no idea. You know more about this than I :-( Maybe we need to re-think all of this.
don't know....just throwing out ideas. I feel a little handicapped not being able to login to AppVeyor and see what artifacts are there but between us we can figure this out. |
what limits you in AppV if you login with GH account? I'd like to make you able to see as much as you need |
I login with GH account. That part works. The drop down list in upper right shows my name (for my own projects) and numenta-ci. htm-community is not listed. If I select numenta-ci I can see their projects but there is no way to select htm-community. It is like it does not know that I am a member of htm-community. Very strange. If I go over to CircleCI or Travis and login I then can see htm-community and all of its projects. |
@dkeeney can you try again, please? I've changed AppV authorization, we're now using (recommended) "AppV Github App" which I installed under htm-community. Things should work now. |
No, did not help.
If I go to my profile page on github, I see that I am members of both numenta-ci and htm-community. I suspect AppVeyor has me messed up in its database. |
It should be working now, I've added htm-community/htm.core , and you're member of that team. Please let me know |
YES! That worked. Thanks. I will take a look at this and see if this helps me any. |
Binary releases are now available! @dkeeney would you please check that
|
this is because Windows build gets terminated early by failing PYPI upload on Linux, so non-issue here. See #19 (comment) |
I think I told you wrong. The requrements.txt file needs to be in the same folder as setup.py ... which is distr/ not distr/dist AND setup.py needs to be looking there to find it. I am looking at https://packaging.python.org/tutorials/packaging-projects/, In the section on "Generating distribution archives". This is all very confusing as to where things go. If I understand correctly, when pip installs using a .whl file, it runs the setup.py file contained in the wheel in order to process the requirements.txt. When setup.py runs in this environment it does not have the entire repository...only what is in the wheel and that is whatever we setup in build/Release/distr . So setup.py and requirements.txt need to be in distr/ and setup.py should be looking there to find requrements.txt. So the concept is to put together a folder that is needed for the wheel which in our case is build/Release/distr (and dist/ in the tutorial). This should have the following:
You will notice that in our repository top folder, there is a setup.py which redirects to the one in repro/bindings/py/packaging. This in turn tells its setup() function to use the folder build/Release/distr to create the egg and wheel. |
requirements cannot be in distr/ literally, as the folder is being created. It can be relative to setup.py (./requirements.txt, which is the case now)
ok, the /setup.py is the one called..but the path is relative to the packaging/setup.py,... |
Oh, I just discovered that I am telling you wrong again.... setup.py is NOT included in the wheel, but requirements.txt is included. |
since you are studying the setup now, would you mind making the changes if you run into them? What we need is a |
Sure, That is one way I can help. I cannot be much help with the rest of this deployment thing. |
Our 90th release
|
of nupic.cpp
bump minor version on each PR mergedwe use manual tag process for releasesTODO:
The text was updated successfully, but these errors were encountered: