MycroftAI / mycroft-core

Mycroft Core, the Mycroft Artificial Intelligence platform.
https://mycroft.ai
Apache License 2.0
6.48k stars 1.27k forks source link

Debian packaging #2186

Open lyndalopez544 opened 5 years ago

lyndalopez544 commented 5 years ago

Build Debian packages and release them through your own repos; easing the usage for end users.

krisgesling commented 5 years ago

Hi Aurora,

This would be great, however we have other development priorities for the foreseeable future. Also without an automated build process it adds a lot of overhead for each release, and establishing those processes is not trivial unfortunately.

If you have experience with building packages or CI/CD we're always open to contributions :)

lyndalopez544 commented 5 years ago

@krisgesling I've made a rolling Debian package which remotely installs mycroft-core and all the deps from GitHub and PyPi and also integrates with systemd. I don't know if the dev branch is safe for end users or not.

github.com/aurora-of-earth/mycroft-debian

AIIX commented 5 years ago

@aurora-of-earth haven't tested it but any chances of getting this package into the official Debian repositories ?

lyndalopez544 commented 5 years ago

@AIIX

I'll work around these and some other issues and release the final working package

forslund commented 5 years ago

I did some preliminary work on a package for desktop installs using the same dh-virtualenv system we use for the arm-package. I can see if I can share that code if there's interest?

I set up a test repo here: https://github.com/forslund/mycroft-desktop-repo

lyndalopez544 commented 5 years ago

@forslund That's a whole repo, not a packaging tool. I'm doing the Debian package; just a while.

forslund commented 5 years ago

Yes that's the whole repo, I linked it so you could download and look at the structure of the package I generated. This is the direct link to the package: https://github.com/forslund/mycroft-desktop-repo/raw/gh-pages/pool/main/m/mycroft-core/mycroft-core_18.8.5%2B1542056664_amd64.deb

When I worked on that there was very little interest so I stopped updating the repo.

I'll try to get the build script online during the weekend. The good thing about using dh_virtualenv is that the resulting package will provide it's own python module dependencies, which makes it easier for us to use specific versions of the modules while still being compatible. The downside is of course that it's a bigger install.

lyndalopez544 commented 5 years ago

@krisgesling @AIIX @forslund Mycroft Debian package is finally ready. bit.ly/mycroft-debian

AIIX commented 5 years ago

Thanks, I am going to test this out and will file a official RFP for debian buster, being said more probably the requirement to make it officially available will be to follow XDG guidelines.

lyndalopez544 commented 5 years ago

@AIIX I've discovered that Mycroft does indeed have official deb packages; which I didn't know. I can contribute a few ideas to the official deb packages.

lyndalopez544 commented 5 years ago

@krisgesling

This would be great, however we have other development priorities for the foreseeable future. Also without an automated build process it adds a lot of overhead for each release, and establishing those processes is not trivial unfortunately.

Why didn't you tell me that Mycroft already has deb packages?

I have experience with making Debian packages, just tell me the model you want to build each package and I would make a pull request with the build scripts.

AIIX commented 5 years ago

Which ones exactly any repo or distribution links ? I know for sure Debian official repository requirements were xdg compatibility, it's just currently in KDE neon where we are packing the latest version via a ppa. One of the arch distributions seem to be more only Mycroft core being packaged than any efforts being pushed to making Mycroft core gold compatibile

lyndalopez544 commented 5 years ago

@AIIX So who's building repo.mycroft.ai/repos/apt/debian?

forslund commented 5 years ago

I can update the CI to build from your repo if you like. Will need basic instructions though

lyndalopez544 commented 5 years ago

@forslund No, because that's not an automatic process. Because mycroft-core is a little badly designed, I had to modify the dev_setup.sh and requirements.txt by hand.

Just two things

Then I can contribute debian build configs into each of those repos, thus all of them being auto packaged and released on official Debian and Ubuntu repositories by you.

forslund commented 5 years ago

Ok, if you have a place where you upload the package I can make the CI push it to the repo.

What do you mean "all repos"?

lyndalopez544 commented 5 years ago

@forslund As I see the mycroft-core repo is not the only repo of which its contents should be built for Mycroft to work correctly. With a few tweaks I'll make a pull request of the Debian build config so that you can build it yourself.

I also wanna have a separate repo on <a href="https://github.com/MycroftAI>github.com/MycroftAI for future ideas concerning the development of Mycroft. Who should I contact for that?

forslund commented 5 years ago

For the build script for the packaging I'll see if I can open the mycroft-packaging repo. I've been meaning to do that but haven't had time to go through and check so no secret keys exist in the commit history.

I'm going to upload the dh-virtualenv based packaging script I made before Christmas and we can discuss what's good/bad with that approach as well...

For repo about future development you basically need to talk with me, @krisgesling, @davidwagnerkc or @chrisveilleux. What sort of future developments are thinking about?