On Fri, Feb 26, 2016 at 08:33:10AM -0500, Honza Šilhan wrote:
> > From: "Dennis Gilmore" <den...@ausil.us>
> >
> > I have unpushed from f24 and rawhide dnf-1.1.7-1 and revoked the requests 
> > for
> > updates. The main reason being that the api changed ina way that broke our
> > ability to create install media.
> > 
> > lorax --product=Fedora --version=24 --release=24
> > --source=file:///mnt/koji/compose/branched/Fedora-24-20160225.n.0/work/i386/repo
> > --variant=Workstation --nomacboot --noupgrade --buildarch=athlon
> > --volid=Fedora-WS-boot-i386-24 --installpkgs=fedora-productimg-workstation
> > /mnt/koji/compose/branched/Fedora-24-20160225.n.0/work/i386/buildinstall/Workstation
> > 2016-02-25 16:46:06,909: Added 'lorax-repo-0':
> > ...
> > self.basearch = dnf.arch.basearch(buildarch)
> > AttributeError: module 'dnf' has no attribute 'arch'
> > 
> > An API change like that is a point release is not acceptable, certainly not
> > without working With the users of the code to ensure that you do not break
> > peoples code. Given where we are in the Fedora 24 cycle where we need to be
> > reliably composing the OS in order to have a Alpha compose in a few short
> > weeks.
> 
> That was no API change, `basearch` function was actually introduced in this 
> release [1][2].
> 
> Lorax guys, can you adapt lorax, please?
> 
> "self.basearch = dnf.arch.basearch(buildarch)" -> "self.basearch = 
> dnf.rpm.basearch(buildarch)"
> 
> Keep in touch with me via IRC (jsilhan on #fedora-releng) when you are awake 
> so we can find
> the best solution for this issue.
> 
> Also double check what non DNF API functions are you using. If you want them 
> to be added into API,
> file the bug for DNF and we will happily document it. We would like to not 
> get back to yum age
> where no API existed and every tools was calling whatever they liked.
> 
> Whenever we break API it's in the next major release only while providing 
> patches to the consumers we
> know about.
> 
> Paradoxically, this was exposed on relengs demand - to add custom arch 
> support for
> repoclosure. This will be needed for F23.
> 
> 
> Thanks,
> Honza
> 
> [1] http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes
> [2] http://dnf.readthedocs.org/en/latest/api_rpm.html#dnf.rpm.basearch

This code was in a top level module and was not marked with _ as is
the python convention for private methods. Whether or not you document
the api is immaterial. If you expose a method it is going to eventually
get used by someone.

See
https://www.python.org/dev/peps/pep-0008/#public-and-internal-interfaces
for the correct way to manage exposing public methods (eg. use of
__all__ and _)

Also, it is pretty clear that this method is in use by dnf users. It
would be far better if you added arch.py with a deprecation warning
instead of insisting that all your users rewrite their code across 4
releases.

-- 
Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)
--
devel mailing list
devel@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to