kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #19789
Re: [Patch] Add gitlab support to github plugin
-
To:
kicad-developers@xxxxxxxxxxxxxxxxxxx
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Mon, 17 Aug 2015 15:05:35 -0400
-
In-reply-to:
<CABnVekVN-gCWBweWGpsKqb9pQGMSq09PmGvHki=r8j-LLXS8pg@mail.gmail.com>
-
User-agent:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
If someone wants to write a git plugin, I'm sure some users would find
it useful. I'm not sure most users will want to learn git to maintain
their footprint libraries even though it's a good thing. The gihub
server implementation was written because KiCad's libraries are
maintained on github which gives you direct access to the latest and
greatest footprint libraries provide by the project. This also means
that we do not need to package a snapshot of the footprint libraries.
Of course you can always keep a local clone of these and/or your own
libraries on your computer and access them directly by configuring your
footprint library table accordingly. That really is the power of the
footprint library table. You can store footprints on a central server
or you can store them locally on your system or store them both places.
This is entirely up to the user.
On 8/17/2015 2:52 PM, Matthew Beckler wrote:
> It seems very strange to target our software at specific implementations
> of git front-end websites. It seems even stranger to suggest to end
> users to install a web server to act as a proxy to improve performance.
>
> It seems like a simpler approach would be to support local git
> repositories in the filesystem. This would be vendor-neutral and would
> support any and all git front-ends like GitHub and GitLab. If users want
> to update their footprints, a simple git pull will do the trick, no need
> to embed that functionality into KiCad I think. I'm not sure of the
> benefits of having KiCad directly query git repositories online.
>
> Just my two cents, please feel free to ignore me.
>
> -Matthew Beckler
>
> On Mon, Aug 17, 2015 at 1:38 PM, Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
>
> Parameters (or properties as they are defined internally) are passed
> defined in the footprint library table. They are simple key=value pairs
> that are passed to the plugin defined by each footprint library table
> entry. The person that wrote this code thought that it would be more
> effort to code a property than your original patch. I also agree with
> his assessment that looking for "git" in the server name is not a robust
> solution. The problem with your patch is every time someone wants to
> support a git server with a different server naming convention, they
> will want to add another server name check to the github plugin code
> which IMO is not an acceptable solution. I'm guessing you are using
> Linux as your gitlab server. One thing that has been suggested is to
> use nginx on your server to act as a proxy between gitlab and the kicad
> github plugin. It should be possible to configure nginx to behave like
> github so that your gitlab server looks like a github server to the
> KiCad github plugin. It could also be a lot faster since nginx can be
> configured to cache the footprint libraries in memory. The other option
> is to maintain your patch until a more robust solution can be found that
> will play nice with all git servers.
>
> On 8/13/2015 10:42 AM, Ian Roth wrote:
> > A parameter would work. I am not familiar with how to define new
> > environmental variables in the code and what you would want it to be called.
> >
> > On Aug 13, 2015 8:27 AM, "Wayne Stambaugh" <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>> wrote:
> >
> > The next obvious question is what happens when "git" is part of the
> > server name and the server doesn't follow the same zip file path
> > semantics that gitlab does? This is my concern and the concern of the
> > person who wrote the github code. This patch seems very specific to
> > gitlab rather than a generic patch for all server use cases. My fear is
> > that everyone will want a patch specific to their git server api and the
> > code will spiral out of control. I'm wondering if there is a better way
> > to handle this outside of the code as a plugin parameter rather than a
> > hard coded path.
> >
> > On 8/12/2015 12:57 PM, Ian Roth wrote:
> > > Gitlab uses different URLs for zip file downloads. Rather than
> > > <project>/zip/master the URLs are of the pattern
> > > <project>/repository/archive.zip. There are similarities in the two
> > > APIs, but they are not the same.
> > >
> > > The URL cannot be <project> as in the kicad code that handles non
> > github
> > > servers; that points to the project main page.
> > >
> > > On Wed, Aug 12, 2015 at 11:44 AM, Wayne Stambaugh
> > <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
> > > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>> wrote:
> > >
> > > Please help me understand the purpose of this patch.
> Are you
> > saying
> > > that the github plugin does not work when KIGITHUB has the
> > properly
> > > specified URL and gitlab is configured properly? What's
> different
> > > between gitlab and github access that necessitates this
> change? I
> > > realize that it's a minor change but the comment in the
> source
> > says it
> > > all and I would rather avoid polluting the source if
> there is an
> > > external solution.
> > >
> > > For future reference, please include you patch as an
> > attachment rather
> > > than inline. Bazaar is the VCS used by KiCad so inline
> > patches are more
> > > work to apply. The git repo is only a mirror for devs who
> > prefer git.
> > > I noticed you created a pull request against the github
> mirror
> > which
> > > will never happen because the github mirror is not the
> official
> > > development repo.
> > >
> > > On 8/8/2015 6:37 PM, Ian Roth wrote:
> > > > This allows users to host the footprint libraries on a
> local
> > gitlab
> > > > server in case there is no access to github.
> > > >
> > > > I know this patch has the potential to be
> controversial because
> > > the code
> > > > in the plugin is supposed to be as generic as possible and
> > that the
> > > > server should change. I would like to counter that by
> noting
> > that
> > > gitlab
> > > > is probably the most popular option for self hosted
> git servers,
> > > and the
> > > > code change adds just one string comparison and a string
> > concatenation
> > > > to make the integration work.
> > > >
> > > > This patch can be found online
> > > > at:
> https://github.com/KiCad/kicad-source-mirror/pull/6/files
> > > >
> > > > Git diff:
> > > > diff --git a/pcbnew/github/github_plugin.cpp
> > > > b/pcbnew/github/github_plugin.cpp
> > > > index 695365c..8ab03a2 100644
> > > > --- a/pcbnew/github/github_plugin.cpp
> > > > +++ b/pcbnew/github/github_plugin.cpp
> > > > @@ -516,6 +516,14 @@ bool
> GITHUB_PLUGIN::repoURL_zipURL( const
> > > wxString&
> > > > aRepoURL, string* aZipURL )
> > > >
> > > > zip_url += repo.GetPath(); // path comes
> > with a
> > > > leading '/'
> > > >
> > > > + // This is intented for use with gitlab,
> for users
> > > who wish
> > > > to self-host
> > > > + // the library repos on a local server. The
> > KIGITHUB path
> > > > (and thus server name)
> > > > + // must contain "git" for this code to work.
> > > > + if ( repo.GetServer().Contains("git") )
> > > > + {
> > > > + zip_url += "/repository/archive.zip";
> > > > + }
> > > > +
> > > > // Do not modify the path, we cannot
> anticipate
> > the needs
> > > > of all
> > > > // servers which are serving up zip files
> > directly. URL
> > > > modifications
> > > > // are more generally done in the server,
> > rather than
> > > > contaminating
> > > >
> > > >
> > > > _______________________________________________
> > > > Mailing list: https://launchpad.net/~kicad-developers
> > > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > > Unsubscribe : https://launchpad.net/~kicad-developers
> > > > More help : https://help.launchpad.net/ListHelp
> > > >
> > >
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~kicad-developers
> > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > Unsubscribe : https://launchpad.net/~kicad-developers
> > > More help : https://help.launchpad.net/ListHelp
> > >
> > >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help : https://help.launchpad.net/ListHelp
> >
> >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~kicad-developers
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > More help : https://help.launchpad.net/ListHelp
> >
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
Follow ups
References