Comments (15)
Scheduled monthly build and release for the hooks is what we are aiming for, aren't we? So this is perfectly fine.
But: Why not run these schedule from the PyInstaller team? So all builds will seen under travis-ci.org/pyinstaller.
Regarding credentials: Using your personal ones is okay for me. But maybe you do not want to put your personal credentials into the CD settings?! PyPI seems to not have "api-keys". So maybe we'd better create a "pyinstaller" account? WDYT?
Tanks for you PyPi account name, I added you as an owner.
from pyinstaller-hooks-contrib.
@Legorooj Go ahead.
from pyinstaller-hooks-contrib.
All of the pipelines run the tests on python 3.5, 3.6, 3.7, once for pyinstaller development version and once for the stable release
Cool! Many thanks!
from pyinstaller-hooks-contrib.
What CI systems are provided by Github actions? Looking at https://github.com/marketplace?type=actions, I don't see Travis or Appveyor support. This means developing CI from scratch on a new platform, correct?
from pyinstaller-hooks-contrib.
This is curious: We use both travis and appveyoralready for PyInstaller core.
from pyinstaller-hooks-contrib.
@bjones1 (@htgoebel) GitHub actions is CI. They provide - with unlimited minutes for public repos - Linux, macOS, and Windows testing.
The actions in that link are tools to help your CI as such; pypa
have one called publish-pakage
or something, which does all of the twine stuff for you, with tokens you provide. Other actions are use-python-3.7
etc.
See https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions for info.
from pyinstaller-hooks-contrib.
It's a fair-sized project to get a new CI system running from scratch -- making sure the correct compilers are installed and in the path, X windows screen emulation, correct libraries for each OS, etc. So, it's not simply a matter of running a few pip installs then testing. I'd suggest staying with the current CI system, and making this a separate issue/project.
from pyinstaller-hooks-contrib.
@bjones1 compilers/path/tools aren't a problem; everything we could possibly want is available, installed and ready. Screen emulation as well.
Stages are available, so one for each OS. Each stage will have a job for each python version we want to test - though matrix style testing might be easier. I'll have a play around on another repo, and see if it all works fine.
Anyway, if we use other providers, this issue still addresses them: it's just add CI.
from pyinstaller-hooks-contrib.
I'd prefer to not use github actions for CD/CI, as this is binding us to github even more - and I want to avoid vendor lock-in. Test-setup for travis already exists at https://github.com/pyinstaller/hooksample, resp. bjones' fork
I just actiated CI at https://travis-ci.org/github/pyinstaller/pyinstaller-hooks-contrib/ and https://ci.appveyor.com/project/PyInstaller/pyinstaller-hooks-contrib
For Appveyor I added the respective roles and permission For Travis I did not find any permission settings -( Please let me know if something is missing
from pyinstaller-hooks-contrib.
@htgoebel I use GitHub auth with Travis and AppVeyor, which means they see I'm in the PyInstaller org and give me restart/cancel access. That should be enough.
I'd like to do a CD pipeline (with Azure Pipelines; with GitHub actions I can't automate it) - scheduled monthly build - that builds an sdist
, wheel, uploads them to PyPI, and makes a release on GitHub. All would be done under my private account, and with my private GitHub creds, so as far as anyone could see, I might as well have done it myself (the release/tag/upload etc) Would that be alright? (Of course the project would be one with public visibility, and the yaml would be kept in this repo, so anyone could tweak it.)
Also, can I have access to the PyPI package? I need that anyway, whether its a manual or automated release. PyPI usename is Legorooj (https://pypi.org/user/Legorooj/)
from pyinstaller-hooks-contrib.
What I mean for personal credentials is the automated release would bump the version in the package and push back into the repo. Travis can't do that easily; Azure Pipelines can.
PyPI has and would use tokens, yes - if you'd like an example of an automated release I have currently, see https://github.com/fluffykoalas/sloth/blob/dev/.azure-pipelines/release-generator-and-uploader.yml. It's not scheduled and doesn't bump the version, but otherwise is similar to what I'd do for this. Azure Pipelines - because Microsoft runs GitHub to an extent, has an API that uses the GitHub social auth for pushing back into the repo, meaning "I" would be bumping the version.
I've got a private repo with an example - scheduled/automated - that I'll invite you to.
from pyinstaller-hooks-contrib.
@htgoebel quick request: Can we put Linux CI on Travis, Windows on AppVeyor, and macOS on GitHub actions? Actions is easier to configure.
Also, we should consider shelling out the lint checks to Actions in the PyInstaller main repo. I'm always annoyed that lint is the last thing checked, and this way we'd get the results faster.
from pyinstaller-hooks-contrib.
@Legorooj This is fine for me.
Rational: Basically I do not care about which CI we are using, But: We should avoid vendor lock-in as far as possible. And we should avoid promoting commercial or proprietary services - even if they are "free". I'm aware of we are failing on both of this currently. Anyway I would prefer to no adding yet another service (azure), as this locks us in even more.
from pyinstaller-hooks-contrib.
@htgoebel I understand your reasons. Also, I'll only be using Azure for release because it allows me to automate it - with manual triggers or scheduling - and docutils has a bug in it which means you can't render RST READMEs on Windows propely, so you need Linux. That means I can't do it locally.
from pyinstaller-hooks-contrib.
Whoo! CI is finally done. I've written virtually identical test pipelines for Linux (Travis), Windows (AppVeyor), and macOS (GitHub actions). All of the pipelines run the tests on python 3.5, 3.6, 3.7, once for pyinstaller development version and once for the stable release. I just need to write the auto-releaser pipeline now...
from pyinstaller-hooks-contrib.
Related Issues (20)
- PyInstaller issue with `transformers\__init__.py` file not found HOT 2
- FileNotFoundError: [WinError 2] The system cannot find the file specified: ... fastparquet.libs HOT 5
- sympy library causes maximum recursion depth exceeded with python 3.11 HOT 5
- Can't find libtorchtext.so when executing file HOT 10
- SVM module not found error HOT 2
- June release / release schedule HOT 1
- Pydantic.compiled Depreciated
- Pydantic V2 no longer containers a compile flag which results in an error during build HOT 1
- jsonschema hook is broken for jsonschema >= 4.18
- hook-rtree.py: libspatialindex is either not installed ... HOT 2
- ModuleNotFoundError: No module named 'dbus_fast._private.marshaller' HOT 1
- for python3 it is no need `prettytable` hooks HOT 2
- Missing imports during packaging with PyInstaller 5.13 and pyinstaller-hooks-contrib 2023.12 HOT 2
- ImportError: cannot import name '_pylon' from 'pypylon' after pyinstaller 6.3.0 HOT 2
- OpenCV missing data files in /cv2/data directory HOT 1
- sklearn dropped neighbors._typedef in version 1.0.2 HOT 1
- Add PyInstaller in 'I want to help' section HOT 2
- Falcon hook
- PyInstaller: Unable to find '/usr/sbin/neato' when adding binary and data files HOT 8
- hook-transformers fails to run due to partially initialized huggingface_hub HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyinstaller-hooks-contrib.