Decouple apio publishing and secrets to a separate repo
TL;DR, proposal for decoupling Apio software development repos from Apio's publishing, secrets and passwords.
This proposal is to have a new repo called apio-publishing that will contain the workflows and secrets necessary for signing apio packages and to publish them on markets such as PyPi and the VSCode extension market.
With this change, the rest of Apio's repos such as fpgawars/apio that are used for developing and building Apio stuff will not contain any secrets and will be more accessible for 'regular' team members.
A few selected people called publishers (e.g. Juan and Carlos) will have access to the newapio-publishing repo and will manage it, the secrets it contain, and the publishing processes.
@Obijuan, @cavearr, what do you think?
This is a very good idea, in fact i'm thinking in something similar, because i'm worried about that, thanks @zapta!, i'm working on it this weekend.
Very good! When you will remove all the secrets from fpgawars/apio please give me more access in the repo, e.g. to run workflows manually or edit releases, and I will move the build scripts to fpgawars/apio.
(Since we currently don't use the secrets in fpgawars/apio, you can remove them now, even before the publishing repo is working).
Regarding PyPi, I propose to publish Apio as a regular App using the existing packages and installers we already build and remove it from PyPi (leaving there a message pointing to the new installation procedures).
Rationale
- Easier and more 'native' to the platform installation process.
- Apio happened to be developed in Python but this is an implementation details that users should not care about.
- Removing the dependency on user installed python will provide us better control and reproducibility of the configuration.
- Developers that wants to play with Apio source code can still install it using the current 'invoke install-apio' script in the source code.
For reference, our current user installation guide is here https://fpgawars.github.io/apio/docs/installing-apio. With this proposal, the pip based installation will go away from the user instructions and developers will use the installation instructions here https://fpgawars.github.io/apio/docs/development-environment
@Obijuan, @cavearr, any thoughts?
Hi @zapta ! i'm not a "python pro developer" in my day to day i use python a lot but my prefer installer is miniconda.
I prefer you decide what is the better way to do that, in Icestudio i'm evaluating from few months ago use your bundlers without pypi because i'm very focused in do the process very easy for the users.
If you want to publish with pypi i finish to check it an we could do now if you want, i check the process because @Obijuan should do this, but now if not reply i think we need to move ahead.
Please don't take the decision for "publish now" because if you need it we could do in pypi now. Take the best way that you think is for the project and the users.
Tell me if you want to try to publish this afternoon/nigh(europe) ;) and we could coordinate by email or other medium.
Hi @cavearr, if you can publish now the latest apio (1.0.2) to PyPi it will be very good. We can decide later about the long term publishing policy.
fpgawars/apio has this workflow for publishing to pypi but I don't know if it works, you can fix it or delete it if it's not useful.
https://github.com/FPGAwars/apio/blob/develop/.github/workflows/publish-to-pypi.yaml
Hi @zapta! I'm finishing up the review and testing. I'll delay posting until tomorrow to make sure everything is okay. @Obijuan, have you been able to check it? Is everything okay on your end? If you'd rather post it yourself, go ahead, that's fine with me.
@Obijuan, @cavearr,
I published the Apio vscode extension at https://marketplace.visualstudio.com/items?itemName=fpgawars.apio , please give it a try (make sure to delete ~/.apio to verify that it works from scratch). This extension does not have any prerequisites and should installs apio and its packages automatically.
I will try to set a publishing workflow at fpgawas/apio-vscode and save the publishing secrets there. We can move the secrets to the publishing repo once it will be available.
Great @zapta !! very good job!!
... I also plan to update the installation instructions, providing two tracks similar to platformio, Apio IDE and Apio Core.
https://fpgawars.github.io/apio/docs/installing-apio/