mh-cbon / go-github-release

Guide to release automation
MIT License
73 stars 5 forks source link

PPA #6

Closed suntong closed 7 years ago

suntong commented 7 years ago

Can you put all your go github release related packages into a central PPA pls?

mh-cbon commented 7 years ago

I don't know how to do that.

suntong commented 7 years ago

So, instead of putting them in each of their repository in gh-pages (as in #5, I assume), is it possible that you create one gh-pages based repository to hold them all?

mh-cbon commented 7 years ago

i think i see what you mean.

Basically that means to execute this for as many package to add, https://github.com/mh-cbon/go-bin-deb/blob/master/setup-repository.sh#L95

suntong commented 7 years ago

Thx. Then can you create a repo, say PPA, and put all your go github release related packages there pls? It'll be much convenient for me or other people, than to download them one by one. Thx.

mh-cbon commented 7 years ago

i want to consider #1

https://snapcraft.io/create/

https://github.com/snapcore/snapd

suntong commented 7 years ago

i want to consider #1 https://github.com/mh-cbon/go-github-release/issues/1

Oh, a different packaging tool. Sure, go for it, if you have more time, but you are not forsaking the majority of the folks who use the apt repo in the meantime, right?

mh-cbon commented 7 years ago

Lets do a quick script that does just the job

mh-cbon commented 7 years ago

Hi,

I added a script to setup a ppa https://github.com/mh-cbon/go-bin-deb/blob/master/go-bin-deb-utils/setup-ppa.go

you can proceed to manual testing with https://github.com/mh-cbon/go-bin-deb/tree/master/go-bin-deb-utils

you can try a ppa here https://github.com/mh-cbon/go-bin-deb/tree/gh-pages/ppa

suntong commented 7 years ago

Horay~~~! I'll test it out this weekend.

suntong commented 7 years ago

Hmm..., several questions,

you can try a ppa here https://github.com/mh-cbon/go-bin-deb/tree/gh-pages/ppa

  1. So this ppa is still generated under the given project (e.g., go-bin-deb here), instead of all your tools in one or two central PPAs, right? is a central PPA that hold releases from different projects possible?
  2. How was the ppa generated? Did you generate it manually, or via .travis.yml triggering? If so, where can I find the build log?
  3. How can such ppa be used? Have you try to install something from this ppa? Can you show me the apt-cache policy output of such installed packages?

Thanks

mh-cbon commented 7 years ago

this is only a wip with a staging ppa for testing.

but yes that d be the idea.

Please check https://github.com/mh-cbon/go-bin-deb/tree/master/go-bin-deb-utils

You can check travis log of this repo indeed, look at the last tag, not commit, https://travis-ci.org/mh-cbon/go-bin-deb/builds

You can also start vagrant to run it locally on your own repo. One might prefer docker, up to him.

From i what i understood, it is a regular source repo with multiple packages. Nothing more. No fancy commands to install all its package. But yeah, on source to get them all.

Please check https://github.com/mh-cbon/go-bin-deb/tree/master/go-bin-deb-utils It contains information you are looking for, i believe so.

I m not super aware of apt/dnf practices, I did not know that command. Need to check and probably to add it to the readme here https://github.com/mh-cbon/go-bin-deb/tree/master/go-bin-deb-utils


spawn a vagrant box, give it a try to this ppa, test the function you want and list the question you have, let see what to do then with this idea.

suntong commented 7 years ago

Oh, yeah, gotya now.

Yeah, it's very much so, that it is a regular source binary repo with multiple packages. I did a comparison with my ppa on launchpad, e.g.,

http://ppa.launchpad.net/suntong001/ppa/ubuntu/dists/xenial/main/ vs. https://github.com/mh-cbon/go-bin-deb/tree/gh-pages/ppa/public/dists/all/contrib

The structure and content looks the same.

Oh, wait, I remember why I asked the question now --

The tree/gh-pages should not be in the url. I.e., everything should be under http://mh-cbon.github.io/go-bin-deb/ppa/, e.g., http://mh-cbon.github.io/go-bin-deb/ppa/public/dists/all/contrib but I get 404 for them.

Now I've seen the build log and am convinced that the ppa is generated via .travis.yml triggering. :-) So I'll continue watching your progress, until we reach to our goal, collecting all your tool into a single ppa.

Mean while, please try out my small ppa on launchpad, and install a small package, say histring:

$ cat /etc/apt/sources.list.d/suntong001-ubuntu-ppa-xenial.list 
deb http://ppa.launchpad.net/suntong001/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/suntong001/ppa/ubuntu xenial main

$ apt-cache policy histring
histring:
  Installed: 1.1.0-1
  Candidate: 1.1.0-1
  Version table:
 *** 1.1.0-1 500
        500 http://ppa.launchpad.net/suntong001/ppa/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

I'm sure it'll come handy when you test out your ppa on gh-pages.

cheers

mh-cbon commented 7 years ago

The tree/gh-pages should not be in the url.

I don't get what you mean see http://mh-cbon.github.io/go-bin-deb/ppa/public/dists/all/contrib/Contents-amd64.gz http://mh-cbon.github.io/go-bin-deb/ppa/go-bin-deb.list

Now I've seen the build log and am convinced that the ppa is generated via .travis.yml triggering. :-)

yeah, there s also a builder on top of vagrant. Some updates needs to be applied on it to make it a bit faster, and also to better manage git. It all grew up a bit too organically. see corresponding repo issues.

Mean while, please try out my small ppa on launchpad, and install a small package, say histring:

Please explain your thoughts, i did try install software out of the ppa, it worked.

thanks!

suntong commented 7 years ago

i did try install software out of the ppa, it worked.

The question is how you installed it. What I meant is that,

You add the file /etc/apt/sources.list.d/suntong001-ubuntu-ppa-xenial.list according to above content. Or, do as explained in https://launchpad.net/~suntong001/+archive/ubuntu/ppa:

You can update your system with unsupported packages from this PPA by adding ppa:suntong001/ppa to your system's Software Sources:

sudo add-apt-repository ppa:suntong001/ppa
sudo apt-get update

Then, to install histring, just do:

apt-get install histring
apt-cache policy histring

Is that what you did? or you installed via dpkg?

suntong commented 7 years ago

BTW, have you played with docker instead of vagrant/VirtualBox?

It's more than thousand times light-weighted than VirtualBox. Here are some interesting read for you, if you haven't.

https://sfxpt.wordpress.com/2013/11/17/debianubuntu-package-developing-with-docker-continued/ and http://stackoverflow.com/questions/28134239/how-to-ssh-into-docker

The first one is how I build my Debian packages (as my home machine is more than 8~9 years old and the performance of VirtualBox is unacceptable). HTH.

mh-cbon commented 7 years ago

I think i see what you mean,

Two ways, but i only talk about the one you are interested,**

See this install instruction, which is standard for this setup, https://github.com/mh-cbon/go-bin-deb#linux-rpmdeb-repository

The script downloads the list file https://github.com/mh-cbon/latest/blob/master/source.sh#L23

Put it into appropriate path https://github.com/mh-cbon/latest/blob/master/source.sh#L41

Then install the package via the package manager https://github.com/mh-cbon/latest/blob/master/source.sh#L49

I expect apt-cache policy to return correctly.

I don t expect the ppa to work sudo add-apt-repository ppa:suntong001/ppa, this need to make a new account/whatever at launchpad.

BTW, have you played with docker instead of vagrant/VirtualBox?

yeah yeah, see https://github.com/mh-cbon/go-bin-rpm/blob/master/setup-repository.sh docker within a vagrant/or whatever it is/ on travis.

** the other one is a standalone package.

suntong commented 7 years ago

Oh, I was talking about "collecting all your tool into a single ppa" and install SW from it part. I.e., not the scripted part, but from the end user perspective -- We build packages for other to consume. I'm talking about the end user experience.

So, do you have a Debian/Ubunutu box? Have you done apt-get install go-bin-deb from you current PPA?

I don t expect the ppa to work sudo add-apt-repository ppa:suntong001/ppa, this need to make a new account/whatever at launchpad.

mh-cbon commented 7 years ago

confused.

In my approach, you only run,

wget -O - https://raw.githubusercontent.com/mh-cbon/latest/master/source.sh \
| GH=mh-cbon/go-bin-deb sh -xe

or its variant with curl, depending of your system,

and the package get installed with a repository, so the update works out of the box every time the source changed.

The one-liner i provide handles both debian/red hat systems.

so yeah i m confused, in terms of end user experience, i don t quiet see what i can better using the command line.

suntong commented 7 years ago

Oh, OK, my bad.

Do you somehow have a log of running the above source.sh installing a package? Can you post it somewhere or here?

I guess our only difference is mentality. For me, under Debian/Ubunutu, every package should be installed via the packaging system, either via apt-get on command line, or via a package manager. Anything else, is not Kosher. :-)

I.e., the sudo add-apt-repository ppa:suntong001/ppa is only done once, when doing initial installation of the box on the first time. After that, everything come back to apt-get update and apt-get install, or that equivalent from the package manager.

I haven't see the run log of of the source.sh, maybe you should only do setting up apt source part there, then let the user do the rest? As a diehard Debian/Ubunutu fan, I feel much comfort doing things that way.

mh-cbon commented 7 years ago

I see your points, ppa looks nice indeed, understand, it is just not my personal interest.

I d be happy to know about it and document it, in an automatic way where possible.

But until then, i have a factory that does what i need, not exactly all of it, but that s already pretty much usable for me, also it looks the way i want it to be, composable.

I ll try to think about posting a log output of this script, there are few things i still want to update, so i might run some more tests indeed.

mh-cbon commented 7 years ago

although note that the idea to have all software within one source is cool, but a wip.

Now, i m not so sure its the best way, i suspect it is only a step toward a meta program to install all programs in one command. need time.

suntong commented 7 years ago

Ok.

You are working on Mac, are you? Do you have a Debian/Ubunutu box or VM?

Having all software within one source means having/enjoying all the benefit of the packaging system. E.g., I remember reading one of your how-to article explaining how to install a package via dpkg, then fix the dependencies via a second command, whereas install packages should have been just one command, apt-get install.

And, of course, installing all programs in one command is another benefit too, among many others.

Take you time. :-)

mh-cbon commented 7 years ago

@suntong , i ll kindly want to let you know, i feel a bit trolled.

Do you have a Debian/Ubunutu box or VM?

I kindly want to ask if you had a chance to open https://github.com/mh-cbon/go-bin-deb/tree/master/go-bin-deb-utils

I mean, in this page, that i linked 4th time by now, there s a huge block of bash about vagrant thing.

Kindly understand: :blah:

suntong commented 7 years ago

Ops, sorry, not meant to offend you.

In my mind, that bash thing can ran anywhere, in Debian, in Ubunutu of any flavor, in RedHat or CentOS, in Mandrake, or etc, etc, and even under Mac or Windows.

mh-cbon commented 7 years ago

ok cool, i could not figure this out!

Windows

very difficult. hardly depend the environment you target (pro vs nopro)

Mandrake

yeah, should be much easier now. My scripts maybe are not the best one, but now they exists, so to prototype something someone can re use them.

Mac

I don t cover it myself. I have seen interesting projects about it, some people are interested indeed, you are not alone.

I have not yet found an end-2-end manual over some CI system about it.

Looking for that and for mobile packaging.

suntong commented 7 years ago

Haha, I was knocking on my head thinking a long list that bash could possibly be run in, :-) not meant to adding those to your plate, haha :-)

mh-cbon commented 7 years ago

I think the last move to bintray should solve that.

https://github.com/mh-cbon/go-github-release/issues/18#issuecomment-325956359

let me know.

mh-cbon commented 7 years ago

21