Re: [openstack-dev] [Ironic] ironic-lib library

2015-07-06 Thread Ramakrishnan G
Thanks everyone for the valuable feedback.  Few folks in the Ironic meeting
agreed as well releasing often is better idea than git submodules, and we
will go ahead with that if no one has any objection.


On Wed, Jun 17, 2015 at 9:50 PM, Jeremy Stanley  wrote:

> On 2015-06-17 10:10:22 -0400 (-0400), Doug Hellmann wrote:
> > Excerpts from Ramakrishnan G's message of 2015-06-17 12:50:25 +0530:
> > > Seems to me like we can keep ironic-lib git repository as a git
> submodule
> > > of the ironic and ironic-python-agent repositories.  Any commit in
> Ironic
> > > or Ironic-python-agent can change ironic-lib independently.  Also,
> looks
> > > like our CI system supports it by automatically pushing commits in the
> > > subscribed projects [1].  Sounds like that should be better instead of
> > > making a new release of ironic-lib and waiting for it to be published
> to
> > > make changes in Ironic or Ironic-python-agent.
> >
> > Please don't do this. It's similar to the incubator model used in Oslo,
> > but the benefits there (being able to evolve the API of code formerly
> > tightly coupled to an application) don't apply here. You're writing new
> > code, and can create a library directly. Releasing libraries is easy. We
> > do it often enough that people complain about the extra email.
> [...]
>
> Also, while the software we use does support Git submodules, our
> infrastructure admins are not supporting use of Git submodules in
> projects we host for a variety of reasons. The benefits of a
> submodule over a completely separate Git repository are slim, and
> usually a sign that you're working around poor design in the
> involved repos. Further, submodules pose significant potential for
> confusion among developers, especially those for whom this is their
> first experience interacting with Git--it's confusing enough--we
> should strive to keep things as simple as possible for them when the
> cost of doing so is not particularly high.
> --
> Jeremy Stanley
>
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Ironic] ironic-lib library

2015-06-17 Thread Jeremy Stanley
On 2015-06-17 10:10:22 -0400 (-0400), Doug Hellmann wrote:
> Excerpts from Ramakrishnan G's message of 2015-06-17 12:50:25 +0530:
> > Seems to me like we can keep ironic-lib git repository as a git submodule
> > of the ironic and ironic-python-agent repositories.  Any commit in Ironic
> > or Ironic-python-agent can change ironic-lib independently.  Also, looks
> > like our CI system supports it by automatically pushing commits in the
> > subscribed projects [1].  Sounds like that should be better instead of
> > making a new release of ironic-lib and waiting for it to be published to
> > make changes in Ironic or Ironic-python-agent.
> 
> Please don't do this. It's similar to the incubator model used in Oslo,
> but the benefits there (being able to evolve the API of code formerly
> tightly coupled to an application) don't apply here. You're writing new
> code, and can create a library directly. Releasing libraries is easy. We
> do it often enough that people complain about the extra email.
[...]

Also, while the software we use does support Git submodules, our
infrastructure admins are not supporting use of Git submodules in
projects we host for a variety of reasons. The benefits of a
submodule over a completely separate Git repository are slim, and
usually a sign that you're working around poor design in the
involved repos. Further, submodules pose significant potential for
confusion among developers, especially those for whom this is their
first experience interacting with Git--it's confusing enough--we
should strive to keep things as simple as possible for them when the
cost of doing so is not particularly high.
-- 
Jeremy Stanley

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Ironic] ironic-lib library

2015-06-17 Thread Doug Hellmann
Excerpts from Ramakrishnan G's message of 2015-06-17 12:50:25 +0530:
> Seems to me like we can keep ironic-lib git repository as a git submodule
> of the ironic and ironic-python-agent repositories.  Any commit in Ironic
> or Ironic-python-agent can change ironic-lib independently.  Also, looks
> like our CI system supports it by automatically pushing commits in the
> subscribed projects [1].  Sounds like that should be better instead of
> making a new release of ironic-lib and waiting for it to be published to
> make changes in Ironic or Ironic-python-agent.

Please don't do this. It's similar to the incubator model used in Oslo,
but the benefits there (being able to evolve the API of code formerly
tightly coupled to an application) don't apply here. You're writing new
code, and can create a library directly. Releasing libraries is easy. We
do it often enough that people complain about the extra email.

Doug

> 
> [1] https://review.openstack.org/Documentation/user-submodules.html
> 
> 
> On Tue, Jun 16, 2015 at 9:24 PM, Lucas Alvares Gomes 
> wrote:
> 
> > Hi,
> >
> > > I haven't paid any attention to ironic-lib; I just knew that we wanted to
> > > have a library of common code so that we didn't cut/paste. I just took a
> > > look[1] and there are files there from 2 months ago. So far, everything
> > is
> > > under ironic_lib (ie, no subdirectories to group things). Going forward,
> > are
> > > there guidelines as to where/what goes into this library?
> >
> > I don't think we have guidelines for the struct of the project, we
> > should of course try to organize it well.
> >
> > About what goes into this library, AFAICT, this is place where code
> > which is used in more than one project under the Ironic umbrella
> > should go. For example, both Ironic and IPA (ironic-python-agent)
> > deals with disk partitioning, so we should create a module for disk
> > partitioning in the ironic-libs repository which both Ironic and IPA
> > will import and use.
> >
> >
> > > I think it would be good to note down the process wrt using this library.
> > > I'm guessing that having this library will most certainly delay things
> > wrt
> > > development. Changes will need to be made to the library first, then
> > need to
> > > wait until a new version is released, then possibly update the min
> > version
> > > in global-requirements, then use (and profit) in ironic-related projects.
> > >
> > >
> > > With the code in ironic, we were able to do things like change the
> > arguments
> > > to methods etc. With the library -- do we need to worry about backwards
> > > compatibility?
> >
> > I would say so, those are things that we have to take in account when
> > creating a shared library. But it also brings benefits:
> >
> > 1. Code sharing
> > 2. Bug are fixed in one place only
> > 3. Flexibility, I believe that more projects using the same code will
> > require it to be more flexible
> >
> > > How frequently were we thinking of releasing a new version? (Depends on
> > > whether anything was changed there that is needed really soon?)
> >
> > Yes, just like the python-ironicclient a release can be cut when needed.
> >
> > Thanks for starting this thread, it would be good to the community
> > evaluate whether we should go forward with ironic-libs or not.
> >
> > Cheers,
> > Lucas
> >
> > __
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Ironic] ironic-lib library

2015-06-17 Thread Ramakrishnan G
Seems to me like we can keep ironic-lib git repository as a git submodule
of the ironic and ironic-python-agent repositories.  Any commit in Ironic
or Ironic-python-agent can change ironic-lib independently.  Also, looks
like our CI system supports it by automatically pushing commits in the
subscribed projects [1].  Sounds like that should be better instead of
making a new release of ironic-lib and waiting for it to be published to
make changes in Ironic or Ironic-python-agent.

[1] https://review.openstack.org/Documentation/user-submodules.html


On Tue, Jun 16, 2015 at 9:24 PM, Lucas Alvares Gomes 
wrote:

> Hi,
>
> > I haven't paid any attention to ironic-lib; I just knew that we wanted to
> > have a library of common code so that we didn't cut/paste. I just took a
> > look[1] and there are files there from 2 months ago. So far, everything
> is
> > under ironic_lib (ie, no subdirectories to group things). Going forward,
> are
> > there guidelines as to where/what goes into this library?
>
> I don't think we have guidelines for the struct of the project, we
> should of course try to organize it well.
>
> About what goes into this library, AFAICT, this is place where code
> which is used in more than one project under the Ironic umbrella
> should go. For example, both Ironic and IPA (ironic-python-agent)
> deals with disk partitioning, so we should create a module for disk
> partitioning in the ironic-libs repository which both Ironic and IPA
> will import and use.
>
>
> > I think it would be good to note down the process wrt using this library.
> > I'm guessing that having this library will most certainly delay things
> wrt
> > development. Changes will need to be made to the library first, then
> need to
> > wait until a new version is released, then possibly update the min
> version
> > in global-requirements, then use (and profit) in ironic-related projects.
> >
> >
> > With the code in ironic, we were able to do things like change the
> arguments
> > to methods etc. With the library -- do we need to worry about backwards
> > compatibility?
>
> I would say so, those are things that we have to take in account when
> creating a shared library. But it also brings benefits:
>
> 1. Code sharing
> 2. Bug are fixed in one place only
> 3. Flexibility, I believe that more projects using the same code will
> require it to be more flexible
>
> > How frequently were we thinking of releasing a new version? (Depends on
> > whether anything was changed there that is needed really soon?)
>
> Yes, just like the python-ironicclient a release can be cut when needed.
>
> Thanks for starting this thread, it would be good to the community
> evaluate whether we should go forward with ironic-libs or not.
>
> Cheers,
> Lucas
>
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Ironic] ironic-lib library

2015-06-16 Thread Lucas Alvares Gomes
Hi,

> I haven't paid any attention to ironic-lib; I just knew that we wanted to
> have a library of common code so that we didn't cut/paste. I just took a
> look[1] and there are files there from 2 months ago. So far, everything is
> under ironic_lib (ie, no subdirectories to group things). Going forward, are
> there guidelines as to where/what goes into this library?

I don't think we have guidelines for the struct of the project, we
should of course try to organize it well.

About what goes into this library, AFAICT, this is place where code
which is used in more than one project under the Ironic umbrella
should go. For example, both Ironic and IPA (ironic-python-agent)
deals with disk partitioning, so we should create a module for disk
partitioning in the ironic-libs repository which both Ironic and IPA
will import and use.


> I think it would be good to note down the process wrt using this library.
> I'm guessing that having this library will most certainly delay things wrt
> development. Changes will need to be made to the library first, then need to
> wait until a new version is released, then possibly update the min version
> in global-requirements, then use (and profit) in ironic-related projects.
>
>
> With the code in ironic, we were able to do things like change the arguments
> to methods etc. With the library -- do we need to worry about backwards
> compatibility?

I would say so, those are things that we have to take in account when
creating a shared library. But it also brings benefits:

1. Code sharing
2. Bug are fixed in one place only
3. Flexibility, I believe that more projects using the same code will
require it to be more flexible

> How frequently were we thinking of releasing a new version? (Depends on
> whether anything was changed there that is needed really soon?)

Yes, just like the python-ironicclient a release can be cut when needed.

Thanks for starting this thread, it would be good to the community
evaluate whether we should go forward with ironic-libs or not.

Cheers,
Lucas

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [Ironic] ironic-lib library

2015-06-16 Thread Ruby Loo
Hi,

I haven't paid any attention to ironic-lib; I just knew that we wanted to
have a library of common code so that we didn't cut/paste. I just took a
look[1] and there are files there from 2 months ago. So far, everything is
under ironic_lib (ie, no subdirectories to group things). Going forward,
are there guidelines as to where/what goes into this library?


I think it would be good to note down the process wrt using this library.
I'm guessing that having this library will most certainly delay things wrt
development. Changes will need to be made to the library first, then need
to wait until a new version is released, then possibly update the min
version in global-requirements, then use (and profit) in ironic-related
projects.


With the code in ironic, we were able to do things like change the
arguments to methods etc. With the library -- do we need to worry about
backwards compatibility?


How frequently were we thinking of releasing a new version? (Depends on
whether anything was changed there that is needed really soon?)


Anything else that we should keep in mind when making changes to the
library?

--ruby

[1] https://github.com/openstack/ironic-lib
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev