Closed robdennis closed 8 years ago
I've created a gist with a version of our specfile edited to remove references to our internal infrastructure, since that would be unhelpful to anyone trying to build this in the wild: https://gist.github.com/EliAndrewC/10328292
Here are some things I note about this file:
# some systems dont have initrddir defined -- it seems that CentOS may be one of them (?)
%{?_initrddir:%define _initrddir /etc/rc.d/init.d}
--never-download
is the default behavior for virualenv
on all of versions that Sideboard requires/supports so we don't need it in our specfilesideboard
user and group, but this is not actually used; the sideboard
python process just runs as root
(this was a ticket which I didn't bother moving into the Github issue tracker because it wasn't relevant until now since we didn't include any packaging in the initial version uploaded to Github)Ensconce has now been open-sourced and I'm planning on converting it to be a Sideboard plugin. Having working packaging would be super-helpful for this. Even if we couldn't run on Heroku, just having working RPMs and Debian packages would be amazing.
That's really cool :-)
On Tue, May 20, 2014 at 4:08 PM, Eli Courtwright notifications@github.com wrote:
Ensconce has now been open-sourced and I'm planning on converting it to be a Sideboard plugin. Having working packaging would be super-helpful for this. Even if we couldn't run on Heroku, just having working RPMs and Debian packages would be amazing.
Reply to this email directly or view it on GitHub: https://github.com/appliedsec/sideboard/issues/49#issuecomment-43676267
Does TravisCI provide a mechanism for hosting artifacts (i.e. RPM packages)? Or do you guys have a strategy for distributing RPMs you build for Sideboard -- or does that make sense as a standalone RPM? (I'm curious, because the same thing will apply to Ensconce, where distributing RPMs is quite a bit more helpful than the tar.gz)
No it does not, the closest thing thing I know of is sourceforge
On Wed, May 21, 2014 at 7:41 AM, Hans Lellelid notifications@github.com wrote:
Does TravisCI provide a mechanism for hosting artifacts (i.e. RPM packages)? Or do you guys have a strategy for distributing RPMs you build for Sideboard -- or does that make sense as a standalone RPM? (I'm curious, because the same thing will apply to Ensconce, where distributing RPMs is quite a bit more helpful than the tar.gz)
Reply to this email directly or view it on GitHub: https://github.com/appliedsec/sideboard/issues/49#issuecomment-43743819
We definitely plan on having deb and rpm packages for Sideboard, as well as for Sideboard plugins. This will be especially helpful for the MAGFest code, since I'd like to be able to make a change and then push a button to deploy the new RPM to production.
I did a little Googling and it looks like Travis does support uploading artifacts to Amazon S3: http://blog.travis-ci.com/2012-12-18-travis-artifacts/
With that being said, needing to manually build packages would be a pain but isn't an unacceptable solution. So as long as we have some way to create deb and rpm packages, that would get us 90% of the way there.
After doing some more research, it looks like there's a new way to do this. Github added support for "releases" last year (https://github.com/blog/1547-release-your-software) and Travis closed their ticket (https://github.com/travis-ci/travis-ci/issues/1648) for supporting this 2 months ago. It looks like this uses the Travis dpl
utility: https://github.com/travis-ci/dpl#github-releases
So the workflow seems to be something like this:
dpl
tool and uploads the packages back to the Github reporeleases
branch then it builds the stable packages, otherwise it'll build development packagesThat's just a thought, and it sounds like it might take awhile to actually set all of this up. I probably won't have time for any of that anytime soon, so like I said before, being able to manually create packages would get me 90% of the way to where I want to be.
Hey sup Eli I am all commenting on your projects. Booya.
FYI, I might be taking a stab at this someday as it'd be useful for Magfest deploys for ubersystem which now runs as a sideboard plugin.
That's cool. For what it's worth, @robdennis has created a separate repo for codifying some Python packaging "best practices": https://github.com/robdennis/ship_it
Unfortunately, at the moment this works with Python 2.7 but fails on Python 3 due to the fact that it uses fabric
, which is not yet Python 3 compatible. I'm going to give ship_it
a try this week with a project at work that's a small Sideboard app which needs some packaging which also uses Python 2.7, and in the long run we can just wait for fabric
to become Python 3 compatible or make a pull request to fix it ourselves :)
Cool, also looks like Fabric might be just about ready to upgrade to py3: https://twitter.com/bitprophet/status/468082051842064384
Nice. I'd really love for MAGFest to be deploying packages instead of running git pull
to fetch updates, but that might need to wait until next year. Or maybe we'll have some time in like September / October after I finish the department head checklist, revamping the Angular app for Shift Signups, and finish clearing out some of the open issues in our issue tracker.
We probably don't care about "Heroku" for this ticket, and instead replace that with "Vagrant and/or Docker and/or whatever makes it easiest for a new developer to get up and running with Sideboard".
To support running a sideboard plugin in a Heroku-like container, packaging sideboard for rpm or deb would allow:
the plugin can configured the system installed sideboard to find the working directory
sub-requirements: