Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub. But what if your code is not public and you want to have a central repository and continuous builds? Has anybody ever wrote a guide to develop with Pharo in the context of private development? So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can. Regards! Esteban A. Maringolo
On 01 Jan 2014, at 19:26, Esteban A. Maringolo <emaringolo@gmail.com> wrote:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
You have private projects in SmalltalkHub. For the continuous integration I would love to see a company/org offering a service like that. How much are you ready to pay for such service?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
What we can do is offer to you access to our continuous integration so that you get started and after you can fly by your own. You can use also travis (but I do not have experience with it).
Regards!
Esteban A. Maringolo
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask. Norbert [1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
On 02 Jan 2014, at 11:49, Norbert Hartl <norbert@hartl.name> wrote:
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask.
I use filetree and bitbucket for my private projects, and I use also metacello to build with them. if you do not want to use file tree format, you can use ftp or even dropbox :) there is no need to make anything different on your private development than you do in your public ones. ah, and scripts from Lukas are very outdated (I mean, a LOT). is a lot easier to take http://ci.inria.fr/pharo-contribution (any job there) as an example on how to configure a jenkins job in few lines.
Norbert
[1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
Am 02.01.2014 um 11:57 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On 02 Jan 2014, at 11:49, Norbert Hartl <norbert@hartl.name> wrote:
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask.
I use filetree and bitbucket for my private projects, and I use also metacello to build with them.
I still didnât find the time to look into filetree. It is yet another thing to learn. Can you commit to bitbucket from within pharo? And I use metacello, too, for building my projects.
if you do not want to use file tree format, you can use ftp or even dropbox :)
That might raise some difficulties integrating that into a jenkins setup. And to be honest I would avoid FTP where possible, there are other caveates with it and it has no advantage over http.
there is no need to make anything different on your private development than you do in your public ones.
It would be good if that would be the case. But all things that are public accessible are not necessarily accessible in a private context. You chose bitbucket which offers private repos. I chose to install my own WebDAV server for mimicking the same. But that doesnât work in all the contextes someone might work in.
ah, and scripts from Lukas are very outdated (I mean, a LOT). is a lot easier to take http://ci.inria.fr/pharo-contribution (any job there) as an example on how to configure a jenkins job in few lines.
Well, then I want to let you know that Iâm using those scripts happily for years. What do I get from upgrading? I donât care about a few lines because I have my workflow. Having the doubled amount of lines doesnât make it worse. So I read his inquiry that he is willing to build his on stuff. The apache config in my post is nearly a drop-in solution. Having that you just use monticello as you (most likely) always did. Having an CI server on your own machine (easy to install) gives you the control you need and you can skip authorization settings between http repo and jenkins server which makes not only building easier but also publishing results without having the need to go over them and remove all sensible data. I would be glad if you would describe a private development workflow in detail. Without that it is hard to spot the drawbacks in your approach ;) Norbert
Norbert
[1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
On 02 Jan 2014, at 12:25, Norbert Hartl <norbert@hartl.name> wrote:
Am 02.01.2014 um 11:57 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On 02 Jan 2014, at 11:49, Norbert Hartl <norbert@hartl.name> wrote:
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask.
I use filetree and bitbucket for my private projects, and I use also metacello to build with them.
I still didnât find the time to look into filetree. It is yet another thing to learn. Can you commit to bitbucket from within pharo? And I use metacello, too, for building my projects.
is just another mc repository type, so no need to learn much. but you have a second step, because you do your âcommitsâ to a local repository, then you do the actual commit/push using source tree or command line. Is a bit annoying, but well⦠at least all the authorisation stuff is made by others :) also, Thierry is doing gitfiletree so it will be better soon :)
if you do not want to use file tree format, you can use ftp or even dropbox :)
That might raise some difficulties integrating that into a jenkins setup. And to be honest I would avoid FTP where possible, there are other caveates with it and it has no advantage over http.
I worked with ftp without any problem. Anyway, itâs your choice :)
there is no need to make anything different on your private development than you do in your public ones.
It would be good if that would be the case. But all things that are public accessible are not necessarily accessible in a private context. You chose bitbucket which offers private repos. I chose to install my own WebDAV server for mimicking the same. But that doesnât work in all the contextes someone might work in.
like what? using filetree you delegate the authentication problems⦠so if you can reach the place from command line, you avoid the problem at zero cost.
ah, and scripts from Lukas are very outdated (I mean, a LOT). is a lot easier to take http://ci.inria.fr/pharo-contribution (any job there) as an example on how to configure a jenkins job in few lines.
Well, then I want to let you know that Iâm using those scripts happily for years. What do I get from upgrading? I donât care about a few lines because I have my workflow. Having the doubled amount of lines doesnât make it worse.
Maybe. People was using happily lots of things for years, yet things change. Improvement does not means always âold does not workâ, sometimes is ânewer is betterâ. New process is a lot simpler and does not require any external script⦠New process you just need to do: wget --quiet -O - get.pharo.org/30+vm | bash ./pharo Pharo.image config http://www.smalltalkhub.com/mc/Pier/Pier3/main ConfigurationOfPier3 --install=$VERSION --group=Tests ./pharo $JOB_NAME.image test --junit-xml-output "Pier.*" to install a configuration and run the tests⦠you cannot tell me that this is not an improvement, even if you already know how to use the older scripts.
So I read his inquiry that he is willing to build his on stuff. The apache config in my post is nearly a drop-in solution. Having that you just use monticello as you (most likely) always did. Having an CI server on your own machine (easy to install) gives you the control you need and you can skip authorization settings between http repo and jenkins server which makes not only building easier but also publishing results without having the need to go over them and remove all sensible data. I would be glad if you would describe a private development workflow in detail. Without that it is hard to spot the drawbacks in your approach ;)
Norbert
Norbert
[1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
Am 02.01.2014 um 13:22 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On 02 Jan 2014, at 12:25, Norbert Hartl <norbert@hartl.name> wrote:
Am 02.01.2014 um 11:57 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On 02 Jan 2014, at 11:49, Norbert Hartl <norbert@hartl.name> wrote:
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask.
I use filetree and bitbucket for my private projects, and I use also metacello to build with them.
I still didnât find the time to look into filetree. It is yet another thing to learn. Can you commit to bitbucket from within pharo? And I use metacello, too, for building my projects.
is just another mc repository type, so no need to learn much. but you have a second step, because you do your âcommitsâ to a local repository, then you do the actual commit/push using source tree or command line. Is a bit annoying, but well⦠at least all the authorisation stuff is made by others :) also, Thierry is doing gitfiletree so it will be better soon :)
So, good to wait and use other stuff, hehe :)
if you do not want to use file tree format, you can use ftp or even dropbox :)
That might raise some difficulties integrating that into a jenkins setup. And to be honest I would avoid FTP where possible, there are other caveates with it and it has no advantage over http.
I worked with ftp without any problem. Anyway, itâs your choice :)
there is no need to make anything different on your private development than you do in your public ones.
It would be good if that would be the case. But all things that are public accessible are not necessarily accessible in a private context. You chose bitbucket which offers private repos. I chose to install my own WebDAV server for mimicking the same. But that doesnât work in all the contextes someone might work in.
like what? using filetree you delegate the authentication problems⦠so if you can reach the place from command line, you avoid the problem at zero cost.
How do you give your jenkins server permission to get the sources from bitbucket. Having passwords for bitbucket or store the key somewhere on a server?
ah, and scripts from Lukas are very outdated (I mean, a LOT). is a lot easier to take http://ci.inria.fr/pharo-contribution (any job there) as an example on how to configure a jenkins job in few lines.
Well, then I want to let you know that Iâm using those scripts happily for years. What do I get from upgrading? I donât care about a few lines because I have my workflow. Having the doubled amount of lines doesnât make it worse.
Maybe. People was using happily lots of things for years, yet things change. Improvement does not means always âold does not workâ, sometimes is ânewer is betterâ. New process is a lot simpler and does not require any external scriptâ¦
New process you just need to do:
wget --quiet -O - get.pharo.org/30+vm | bash ./pharo Pharo.image config http://www.smalltalkhub.com/mc/Pier/Pier3/main ConfigurationOfPier3 --install=$VERSION --group=Tests ./pharo $JOB_NAME.image test --junit-xml-output "Pier.*"
to install a configuration and run the tests⦠you cannot tell me that this is not an improvement, even if you already know how to use the older scripts.
I canât see what it does different to my approach. Donât get me wrong I like it when things become easier. But Iâm also in the need to plan the time to invest. I have a workflow and I cannot see anything that is better in your approach. So why invest the time and risk something not working? To me this is more like "if it ain't broke don't fix itâ. But you are right, taking Estebans view it wouldnât be a good idea to learn an older workflow if a newer and easier is in place. Norbert
So I read his inquiry that he is willing to build his on stuff. The apache config in my post is nearly a drop-in solution. Having that you just use monticello as you (most likely) always did. Having an CI server on your own machine (easy to install) gives you the control you need and you can skip authorization settings between http repo and jenkins server which makes not only building easier but also publishing results without having the need to go over them and remove all sensible data. I would be glad if you would describe a private development workflow in detail. Without that it is hard to spot the drawbacks in your approach ;)
Norbert
Norbert
[1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
On 02 Jan 2014, at 13:42, Norbert Hartl <norbert@hartl.name> wrote:
Am 02.01.2014 um 13:22 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On 02 Jan 2014, at 12:25, Norbert Hartl <norbert@hartl.name> wrote:
Am 02.01.2014 um 11:57 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On 02 Jan 2014, at 11:49, Norbert Hartl <norbert@hartl.name> wrote:
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask.
I use filetree and bitbucket for my private projects, and I use also metacello to build with them.
I still didnât find the time to look into filetree. It is yet another thing to learn. Can you commit to bitbucket from within pharo? And I use metacello, too, for building my projects.
is just another mc repository type, so no need to learn much. but you have a second step, because you do your âcommitsâ to a local repository, then you do the actual commit/push using source tree or command line. Is a bit annoying, but well⦠at least all the authorisation stuff is made by others :) also, Thierry is doing gitfiletree so it will be better soon :)
So, good to wait and use other stuff, hehe :)
if you do not want to use file tree format, you can use ftp or even dropbox :)
That might raise some difficulties integrating that into a jenkins setup. And to be honest I would avoid FTP where possible, there are other caveates with it and it has no advantage over http.
I worked with ftp without any problem. Anyway, itâs your choice :)
there is no need to make anything different on your private development than you do in your public ones.
It would be good if that would be the case. But all things that are public accessible are not necessarily accessible in a private context. You chose bitbucket which offers private repos. I chose to install my own WebDAV server for mimicking the same. But that doesnât work in all the contextes someone might work in.
like what? using filetree you delegate the authentication problems⦠so if you can reach the place from command line, you avoid the problem at zero cost.
How do you give your jenkins server permission to get the sources from bitbucket. Having passwords for bitbucket or store the key somewhere on a server?
you generate a credential in jenkins, and upload it to bitbucket
ah, and scripts from Lukas are very outdated (I mean, a LOT). is a lot easier to take http://ci.inria.fr/pharo-contribution (any job there) as an example on how to configure a jenkins job in few lines.
Well, then I want to let you know that Iâm using those scripts happily for years. What do I get from upgrading? I donât care about a few lines because I have my workflow. Having the doubled amount of lines doesnât make it worse.
Maybe. People was using happily lots of things for years, yet things change. Improvement does not means always âold does not workâ, sometimes is ânewer is betterâ. New process is a lot simpler and does not require any external scriptâ¦
New process you just need to do:
wget --quiet -O - get.pharo.org/30+vm | bash ./pharo Pharo.image config http://www.smalltalkhub.com/mc/Pier/Pier3/main ConfigurationOfPier3 --install=$VERSION --group=Tests ./pharo $JOB_NAME.image test --junit-xml-output "Pier.*"
to install a configuration and run the tests⦠you cannot tell me that this is not an improvement, even if you already know how to use the older scripts.
I canât see what it does different to my approach. Donât get me wrong I like it when things become easier. But Iâm also in the need to plan the time to invest. I have a workflow and I cannot see anything that is better in your approach. So why invest the time and risk something not working? To me this is more like "if it ain't broke don't fix itâ. But you are right, taking Estebans view it wouldnât be a good idea to learn an older workflow if a newer and easier is in place.
thatâs my point :)
Norbert
So I read his inquiry that he is willing to build his on stuff. The apache config in my post is nearly a drop-in solution. Having that you just use monticello as you (most likely) always did. Having an CI server on your own machine (easy to install) gives you the control you need and you can skip authorization settings between http repo and jenkins server which makes not only building easier but also publishing results without having the need to go over them and remove all sensible data. I would be glad if you would describe a private development workflow in detail. Without that it is hard to spot the drawbacks in your approach ;)
Norbert
Norbert
[1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
Le 02/01/2014 12:25, Norbert Hartl a écrit :
I use filetree and bitbucket for my private projects, and I use also metacello to build with them.
I still didnât find the time to look into filetree. It is yet another thing to learn. Can you commit to bitbucket from within pharo? And I use metacello, too, for building my projects.
Out of curiosity I took a look at the Dale Filetree presentation slides: it is very neat. It recalls me years ago Free software hackers were complaining the source code was not easily visible from Squeak/Smalltalk. At least it is not the case anymore. -- Dr. Geo http://drgeo.eu
I'll try to replicate the WebDAV part with nginx, I guess it will be easy if not easier. I was thinking of a local directory rsync'ed frequently. I'll take a look into the builder to see if I can implement it in my own VPS. I haven't created my Metacello configuration yet (shame on me...) Regards, Esteban A. Maringolo 2014/1/2 Norbert Hartl <norbert@hartl.name>:
Am 01.01.2014 um 19:26 schrieb Esteban A. Maringolo <emaringolo@gmail.com>:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
I do what you want to do. I have a central server that I use for code storage and for the CI builds. Have a look at [1]. There you can read how you can easily create a http repository for monticello. I just create sub directories for every project on my server and the rest just works. The next step would be to install jenkins and add [2]. The jenkins server then just uses the http repository you created before. If you need help on this just ask.
Norbert
[1] http://norbert.hartl.name/blog/2009/06/08/public-monticello-repository/ [2] https://github.com/renggli/builder
Smalltalkhub private project or bitbucket And I deployed my own Jenkins. Itâs as complicated as `sudo apt-get install jenkins` Ben On 01 Jan 2014, at 19:26, Esteban A. Maringolo <emaringolo@gmail.com> wrote:
Pharo as a community has support to use its CI server, among other goodies such as SmalltalkHub.
But what if your code is not public and you want to have a central repository and continuous builds?
Has anybody ever wrote a guide to develop with Pharo in the context of private development?
So far I managed to work with a file based repo and a set of workspaces to create a new working image or to prepare it for deployment. But I want to automate it as much as I can.
Regards!
Esteban A. Maringolo
participants (6)
-
Benjamin -
Esteban A. Maringolo -
Esteban Lorenzano -
Hilaire Fernandes -
Norbert Hartl -
Stéphane Ducasse