kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #44201
Re: Kicad 6 API
-
To:
Tim Hawkins <tim.thawkins@xxxxxxxxx>
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Thu, 16 Jul 2020 08:10:37 -0400
-
Autocrypt:
addr=stambaughw@xxxxxxxxx; prefer-encrypt=mutual; keydata= mQGiBEM0hxQRBAC2fNh3YOVLu1d5GZ0SbrTNldGiGnCJPLqzEnqFX9v6jmf33TMt6EmSLkl6 Wtfkoj0nVwKxcYmJkA8DX0QAokBkwNIzhSsBzQvthBLIk/5LnPVVKrEXOcL4mUyH1doKlkaE slgJozNa6Av+oavcvD02o1zJOloBbaHlNlyRt7fKswCgtIFlVjWggVH/15KfWk+Qo5JVPbME AIUBAQyL2OAx0n60AWec2WHnO9buHuG0ibtICgUMkE+2MRmYyKwYRdyVwGoIUemFuOyHp0AJ InX4T+vy2E7vkwODqjtMLfIoRkokW74Fi4nrvjlhOAw/vdq/twLbAmR9MOfPTpR4y7kQy1O2 /n+RkkRvh26vTzfbQmrH7cBJhk6aA/9Uwvu3E4zNJgHVZeS0HyWtmR1eOPPRbnkPgJTToX5O KMKzTJI/FX6kT7cFoCamitHrW3BJP4Dx+cMMsa47EGxqVTdbVJ4LjogsXTXxb+0Fn1u4zBdx x3Cer6O7+hqWy7zvpzeC6nSREjqDKa5CgHtv/GLm5uFPOmsjAsnHj2tlBrQmV2F5bmUgU3Rh bWJhdWdoIDxzdGFtYmF1Z2h3QGdtYWlsLmNvbT6IeAQTEQIAOBYhBOffs6CbblRzBkv33BtR cWlZ+CReBQJbFBS2AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEBtRcWlZ+CReMI8A nRbrLkzp7+c2f0vX7sfg4ICX8LAKAJ9uClo4uJajmZa5zZrL2nKdZlUwIrkCDQRDNIcxEAgA gCru+3/aOC6RCjpvYC72wY+d5SmHphC6yeiV2/mOumyt5MLo/Ps2GznZr11JspqFk5K/Zpvp MMLqqjDZ39+50a2iKRQFJ6NlK+hJWMmj6eJygQrCwYo3Gjc6CqfrqUv+8VSnf/i5sIZmtOVA 4ZjML18MuBvMSsNdVLFJd5HNnYb1iOECpvqdPVh/21LLCEw7MUUGGnHBhCrmk2aJe5hFmcSN g4ldBcXrgMQBwf7aMVoobXBMFDb/IENByXn0llB7Gr2IFMRmNS9/p8s/II1Yl2bTqyX4FSz8 cfn7C9KEz7faZ7wzAcpwHFC/zs3JoAjJ0IEKdNUpIwAlKMzT3CzctwADBQf/cxpG28MKyrqk nNmq/8LQLy+x6FSYXBLjxQz9BiBNYeesDZQ6J5UbL1mjpJzMa5tLZypPYo4bbGyR22hrbyDF K7m6AcVaMIJKl98g4ukMutFfAJyRDaREH5Zl/X1P4u1Z/yaAIy9mKaNbaK1/5djNJ5wCTFen TUgAp9xdc30kGkFDdLJFp5uxDY4P0vaZiZdjUCvDM3Zjv5IzpNOfxVqTUBQNUP/BnnKhkk0p DTD6s3X8S+D0rOtEBQ8K0cwERI/E8EFa8nj0TNw4e2MYGR8wg+SxqJ7z5f0zPY0bO6G9DDFB wYCqzzPWGqdAh9vA5971TAbPERtdFybhkurozp2SfYhJBBgRAgAJBQJDNIcxAhsMAAoJEBtR cWlZ+CResHUAniULLCWiT26ieRTl7N2vS6vBo/DuAJ4m7Ss/gyiW6ybTn1ctDXAUgm2QVQ==
-
Cc:
KiCad developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<CAEbsasRYY=LDvYbqrUK=VkoLHnOtSeoK0J+26hKHG2NgPPomUw@mail.gmail.com>
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0
On 7/16/20 12:13 AM, Tim Hawkins wrote:
> Modularization is a key part to large-scale refactoring, if you have
> system that can't be subdivided then that a good indicator that you have
> an architectural problem.
Parts of KiCad are very modular. Other parts, not so much. There is
still plenty to do in that regard.
>
> One of the best refactoring patterns for large systems is the "Strangler
> fig pattern", where you split out a unit of functionality as a seperate
> module and refactor that. In this case I'm speaking of modules nothing
> the kicad sense of its bunch of seperate apps, but in the sense of a lot
> of small subunits, somebody spoke above of a kicad.so library, but that
> is in itself too large a chunk and things need to be a lot smaller than
> that.
Code modularity and shared object modularity are two separate issues.
If you are suggesting that we break a kicad.so into lots of smaller
libraries, I don't see the need for that except maybe to split out the
board and schematic base object code.
>
> I'm a 40 year veteran coder, c, c++, php, java, kotlin, and c#/dotnet
> core. I have not been very active in OSS, maybe it's time that changed,
> and kicad sounds like a good project to engage with, as it would engage
> with my interests (PCBs, CNC, 3d printers etc, personal fabrication). I
> use fedora Linux everywhere, I have all the tooling required.
>
> Where can I find a good guide for getting started with the project?
The two best sources of information for new developers are the
contributors guidelines on the KiCad website[1] and the wiki on the
KiCad source repo at GitLab[2]. There is a bit overlap between these
resources but everything you need to know is in there. If you have any
questions, the mailing list is the place to ask.
[1]: https://kicad-pcb.org/contribute/developers/
[2]: https://gitlab.com/kicad/code/kicad/-/wikis/home
>
> On Thu, Jul 16, 2020, 07:10 Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
>
> Hi Conrad,
>
> On 7/15/20 3:51 PM, Conrad Wood wrote:
> > On Wed, 2020-07-15 at 13:53 -0400, Mark Roszko wrote:
> >>> I also think it would enable independent software developers to
> >> build software on top of, or around kicad, further enhancing its
> >> value.
> >>
> >> They should be contributing to KiCad first ;)
> >> These plans for separation have been around for years, the problem is
> >> the amount of devs is limited and their time even more so. It is
> >> an open source volunteer effort after all.
> >
> > Isn't that a bit of a chicken-and-egg situation?
>
> Not necessarily. Refactoring can be done incrementally over long
> periods of time. It doesn't have to be an all or nothing effort. This
> is pretty much how the Linux kernel development happens.
>
> >
> > I mean, it's fairly hard to start contributing to KiCad due to its
> > complexity. (at least that is my impression - but then I might just be
> > stupid :) )
> > IMHO, splitting it up would lower the entry barrier to new-comers.
>
> EDA applications are by their nature complex so I don't know how
> splitting up complex code would lower the barrier to entry. I'm not
> suggesting that the KiCad code base couldn't be vastly improved but I
> cannot see how that will lower the barrier to entry for new developers.
>
> >
> > I'd be more than happy to contribute, but clearly I can't just "split
> > out bits into a library" on my own w/o discussion and consensus. That
> > _has_ to be a team effort, right?
>
> Any changes to the code structure would require discussion and consensus
> with the lead development team. My guess any discussion that you could
> think of has already been discussed more than once. It's generally a
> good idea to check the developer list mailing archives for previous
> discussions so we don't have to rehash the same discussion.
>
> >
> > I understand, that there never is "The Right Time" to do something
> like
> > it and I consider it very important not to add any extra workload on
> > already stretched people.
> >
> > Rather, with starting this discussion I hope to contribute with my
> > limited means, specifically, finding a means to spread the workload a
> > bit more evenly, and at some point, I might be able to directly
> > contribute as well.
>
> I will reiterate Seth's comments about starting small. It really is the
> most sensible path forward to becoming a member of the development team.
>
> Cheers,
>
> Wayne
>
>
> >
> > Also, for the sake of clarity, when I mentioned about on top of or
> > "around kicad" I was very much thinking of more open-source software,
> > not closed systems! Thus adding to the functionality of KiCad.
> >
> > Conrad
> >
> >
> >
> > _______________________________________________
> > 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
>
References
-
Kicad 6 API
From: Conrad Wood, 2020-07-09
-
Re: Kicad 6 API
From: Nick Østergaard, 2020-07-09
-
Re: Kicad 6 API
From: Conrad Wood, 2020-07-13
-
Re: Kicad 6 API
From: Simon Richter, 2020-07-13
-
Re: Kicad 6 API
From: Conrad Wood, 2020-07-13
-
Re: Kicad 6 API
From: Jon Evans, 2020-07-13
-
Re: Kicad 6 API
From: Tim Hawkins, 2020-07-14
-
Re: Kicad 6 API
From: Seth Hillbrand, 2020-07-15
-
Re: Kicad 6 API
From: Conrad Wood, 2020-07-15
-
Re: Kicad 6 API
From: Mark Roszko, 2020-07-15
-
Re: Kicad 6 API
From: Conrad Wood, 2020-07-15
-
Re: Kicad 6 API
From: Wayne Stambaugh, 2020-07-15
-
Re: Kicad 6 API
From: Tim Hawkins, 2020-07-16