Packaging of Autokey #908
Replies: 8 comments 5 replies
-
I can't answer all of that, but I can give you the notes I've put together so far from what I've been able to figure out about how our process works and what will need to be done to build AutoKey. This is a work in progress and you're getting my sloppy copy here, but maybe some of it will be useful: Our Git Flow workflow:
Build AutoKeyIf you've got what seems like a good working copy of the code, it's time to build it into files that can be installed on a machine so you can try it out and see if it works. TODO: Find out if there's any difference between doing the build from the zip file, the way we do below, and doing it from a cloned copy of the fork.
|
Beta Was this translation helpful? Give feedback.
-
The Packaging wiki page may also be of use. |
Beta Was this translation helpful? Give feedback.
-
Getting this down will be a major infrastructure enhancement. AFAIK, the only packaging we do is our local debs and tarballs - which I believe are already automatically generated when a release tag is made and the PyPI/pip stuff. (IDK how that stuff works.) Although there are two aur packages. I don't think AutoKey makes them. Bluedrink9 was listed as their maintainer last I looked. There are other packages. RPM and DNF and whatever OpenSuse does come to mind, but they are all done by distribution team packagers (which is also the case for Debian who don't use ours). I think there's even a BSD package. I'm pretty sure distros want full control of the packages they include, so our efforts should be to ping them when a new release occurs. Two Debian packagers have communicated with us in the past, but neither are still involved with AutoKey. (Luke Faarone (probably misspelled) and Anthony Fok) Luke was only involved with the original branch of the project. Now the link shows "Debian packaging team" or some similar generic designation. |
Beta Was this translation helpful? Give feedback.
-
The Our Git Flow workflow: section above has been updated with lots of changes. |
Beta Was this translation helpful? Give feedback.
-
Took a look at the GitHub Cheatsheet page you built. Impressive. You might publish it someday. A few comments: Do you have to use a VM for everything you say to use it for? I never got the hang of those, but I'm sure they're much better than when I was trying to get them to work years ago. AFAIK, there are a number of VM systems other than Virtualbox. Is there any reason to only use Virtualbox? If you're not already familiar with the apt-file command, it's in the standard repos (not installed by default). It's quite handy for figuring out what package you need to install to get a particular file or program. It appears to be written in Perl. I noticed this when I was looking at the man page and saw a regex written in what I believe is the PCRE dialect. I have never needed to use a regex with it, but it's good to know. The command has a lot of powerful options, but I have never needed any of them, so don't be put off by the apparent complexity. |
Beta Was this translation helpful? Give feedback.
-
A VM isn't necessary, but I include it for safety so that you don't mess up your system or your existing AutoKey installation or files with any experimentation. If everything is done in a VM, it's isolated. Any time I do anything on a computer that involves trying something in which the outcome of the attempt is unknown or uncertain, it happens in a VM. A lot of things can go gloriously wrong when doing development, so you're better off safe than sorry. Instructions for getting VirtualBox and setting it up and using it are on that GitHub Cheat Sheet page, but that page is mighty busy, so I also created a separate VirtualBox Installation and Use Gist that gives a brief walk-through of getting and using VirtualBox. There's no reason to use VirtualBox over any other virtual-machine program. My reason for using it is that it was the only one I could figure out how to work when I tried them all years ago, so I've stuck with it. I hadn't heard of |
Beta Was this translation helpful? Give feedback.
-
The steps for Our Git Flow workflow above have been updated again. There are three sections where there are questions marks (?????) indicating that I'm unsure of those. As always, input, feedback, corrections, and/or suggestions are welcomed. |
Beta Was this translation helpful? Give feedback.
-
Probably too much confusion in that for me to totally clarify, but most of the ??? sections don't look that important so I'll ignore them. Arch:beta package auto-installs from the latest beta branch. CIBuilding the CI was intended to largely make releases trivial, I now realise there are several steps I took for granted. They should be clear to someone that is skilled in git. The CI will handle pip releases, and create debs to attach to the github page. debianAutomating the actual debian release was something I found far too difficult; I would definitely advise getting help there. |
Beta Was this translation helpful? Give feedback.
-
I'd like to start a concerted effort to understand, document and automate releases for autokey, I think decreasing the effort/friction needed to push out an update would greatly benefit autokey and the development lifecycle.
At minimum I know we have;
Last time I checked BlueDrink9 implemented a github actions workflow for updating the pip package which looks to still be in place.
So we need to document/automate;
Anyone have any idea how those systems work? I think we've gotten issues before from the person who maintains our debian package?
Beta Was this translation helpful? Give feedback.
All reactions