Change packaging preferences? Pull request threshold?

Thomas Shinnick <[email protected]>
Newsgroups gmane.comp.fonts.fontforge.devel
Message-ID <CAEfS-pi_sLhzoGWu=7jObV6AAOzRoFTH8ssM7K5=PS+X_AM=YA@mail.gmail.com>
I'm looking at doing numerous changes to python.c , several of which are
concerning Python 3 compatibility, which is broken on around 10 different
APIs.  (Mishandling strings using Python 2-style PyBytes_* APIs)

But in researching/working on *those*, I find other bits broken.  Such as
not handling ref counts correctly upon use of PySequence_GetItem(), which
is an unusual API.  Or memory leaks apparently introduced to satisfy
compiler warnings!  Or out-of-order Py_INCREF/PY_DECREF's.  Everytime I
look closer, something says 'boo'.

So one *topic* is Python3 compatibility, but that will be ~10 separate
commits, one per API, as I really like to test/verify separately.  (Testing
font.printSample() took ~250 lines of Python test code).  I wouldn't want
to do one PR per API, but I don't know how long it will take to work
through all of these - I wouldn't want to wait weeks to do one PR for all.
(When's the next release target?)

Another topic might be PySequence_GetItem() ref count issues, but those are
scattered *everywhere*.  I don't think it is practical to do just one
commit/PR.

Then there are the Coverity botherances and -Wall notes and so on.


What are your suggested guidelines for when to partition work into separate
PRs?
How long to wait before submitting "work-so-far" as a new batch of commits
in a PR?
How much 'change' is too much to review in one PR?


I'd really hate to submit one huge PR with 47 commits after more than 3
weeks, only to find out I actually got one commit horribly wrong and
everything has to be backed out.  So... granularity, topic-relatedness,
timeliness, ease-of-review, ....  hmmm?


Two examples of totally incidental discoveries:


https://github.com/fontforge/fontforge/blob/master/fontforge/python.c#L7820
       7820         pt += strlen(pt);
    s.b.
                    pt += strlen(str);
        but I haven't *proved* it yet...

and

https://github.com/fontforge/fontforge/blob/master/fontforge/python.c#L7786-L7790
    What is this code 'for'?  Oops, the 'return' disappeared!
        commit  39c2b7e7dc  rrthomas 2014-03-06  "Require Python >= 2.7"

https://github.com/fontforge/fontforge/commit/39c2b7e7dc4c427cca01046e2b032acaccbd0a29#diff-bd864a9cbdf26fcfdc3dc905c7445c17

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/

_______________________________________________
fontforge-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fontforge-devel
http://fontforge.10959.n7.nabble.com/Developer-f3.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.