Comments (8)
Thank you @briandfoy,
I'll look into it (and the PR). Keep you posted,
C.
from rakudo-pkg.
I was looking at the travis config and wondering how it could all happen there and be deployed automatically. Maybe just copy the right file to the target name. I won't have time to work that out this weekend but I'll experiment in my own fork. I bet there's something really simple that won't take a lot of work but may require clever thought. :)
from rakudo-pkg.
A little outside-the-box thinking: @nxadm could host the binaries directly on the new rakudo.org (content of which in a few months will relocate to perl6.org).
The site would offer stable URLs to the latest packages (like how http://hack.p6c.org:4242/latest/star/win64 currently gives latest win64 version of star) and it'd be less disorienting for users to not have to jump from rakudo.org/perl6.org page to a repo on a different site.
If we want to go this route, I can handle the front-end stuff and nxadm should ask moritz for uploading permissions to [email protected] so binaries could be uploaded (I can setup the keys myself, just need moritz to OK the addition of the new user to the system).
The new rakudo.org site will go live between Apr. 4 and and Apr. 14
from rakudo-pkg.
It's something I have been thinking about but haven't finished because of lack of time.
So in short, what we have today are automatically created releases based on a git tag. When travis sees a tag starting with "v", it builds the packages and uploads them to github. I got some help with javascript to create a shortcut to the latest package from the README. This is meant for humans, however, and poor for automated precesses. Firstly for security reasons but also for the lack of time, package creation and release should be in the open and end-to-end automated. The only thing I do manually is bumping the version on the travis file and upgrade a dev release to a regular release (next to figuring how when a Rakudo release fails tests or adding new target OSes).
About @briandfoy's suggestion, I see two options within github:
- copy the Ubuntu14.04 package to something like rakudo-pkg-travis.deb (uploaded one to the latest release). The problem is that the path in the URL need still be be rewritten. This is not difficult to do (see the JS code in /docs how it's done), but the code should be replicated on remote .travis.yml files. It does not scale.
- create a 2nd repo with 1 moving tag "latest". The travis file will have the link to the latest deb. The package would be downloaded, renamed and released. I don't know how github handles the combination of moving tags and releases. This needs to be tested.
@zoffixznet's solution is probably the one that makes the most sense, although even half a solution can also work.
- If moritz is OK, we just just need to figure how to safely upload the files to the rakudo server. Travis supports deployments to Multiple Providers and ssh-key storage, so it should be possible. I spent quite some time already creating the rakudo-pkg travis file, so it shouldn't be to much work any more.
- Even without remote uploads, a frontend web rewriting could do the same job but point to the latest files (see the JS example). Hosting the files on Rakudo in addition to Github is a good PR move in my opinion.
What I was thinking of but have postponed:
- create deb/rpm repos. I have an account at Jfrog for this purpose. I need to figure out how the metadata creation works, but I have been lacking time recently. However, for travis this may be overkill (a wget is way easier). On the other hand, a repo can keep historical releases so modules can test against several Rakudo releases. It's low on my TODO, though.
Thank you both for thinking along on this issue.
C.
from rakudo-pkg.
@briandfoy Just a small update. I was able to create a repo for the Debian and Ubuntu packages (and applied this by creating a new one for the CI of perl6/doc (it includes the needed modules). ATM I am trying to automate it through Travis. The included bintray deploy integration seems to not be able to work with multiple distros and releases at the same time, but the REST API seems to work fine. You'll get the latest package by doing this:
env:
global:
- PATH="/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$PATH"
sudo: required
install:
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 379CE192D401AB61
- echo "deb https://dl.bintray.com/nxadm/rakudo-pkg-debs trusty main" | sudo tee -a /etc/apt/sources.list
- sudo apt-get update && sudo apt-get install rakudo-pkg
apt-get being apt-get, you can also specify specific version (if in the repo).
C.
from rakudo-pkg.
@briandfoy
I will close this issue once 2018.04.1 is out and I release new packages. The new deb repo will be live then:
https://github.com/nxadm/rakudo-pkg/tree/pre2018.04#os-repositories
If this is not what you had in mind, ping me.
from rakudo-pkg.
Also, check this issue for rakudo travis support.
from rakudo-pkg.
Closing the ticket because the creation of a repo provides the latest package. Feel free to reopen.
C.
from rakudo-pkg.
Related Issues (20)
- May we have a spin for Fedora 39? HOT 2
- Perhaps emphasize the flow on the readme page HOT 1
- Bintray going down HOT 2
- OS repos migration from Bintray to CloudSmith + new Alpine repos
- β/opt/rakudo-pkg/share/perl6/vendor/shortβ: Permission denied HOT 25
- zef: install-zef from package version v2021.02.1 onwards
- Issues with zef after migration to CloudSmith HOT 13
- raku not found under Wayland HOT 5
- Fedora 34: `GLIBC_2.34' not found HOT 4
- automated setup with derivative OS HOT 1
- OpenSuse rakudo-pkg 2021.12.0-01 versions HOT 5
- WIP: Suggestions for Debian doc changes for the current system HOT 1
- Repository / package for Leap 15.4 HOT 2
- install zef as user HOT 17
- site path - share/perl6/bin vs share/perl6/site/bin HOT 1
- Show all 52 assets is broken HOT 1
- ARM support? HOT 2
- Install zef HOT 7
- rakudo-pkg for OpenSuse Leap 15.5 HOT 1
- zef install fails for rakudo-pkg Leap 15.5 HOT 5
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 rakudo-pkg.