On 2014-09-22 15:17+0100 Phil Rosenberg wrote:

> However the cost [of this change] is that arrays in the plstream
will all become structs so will need accessing by somearray.mem[index]
or maybe somearray.getMem()[index] rather than somearray[index]. This
has the potential to break some or all the drivers. Although the fixes
might be trivial, I don't have easy access to all the drivers on my
windows machine.

> I'm therefore looking for a suggestion of how to proceed. I can
transfer stuff to my Linux machine, but I'm not sure how best to do
that with git. I could create a fork on github so other developers can
contribute, but if I create a public fork then we should merge that
into the master branch rather than rebase it which I think is not
compliant with our current workflow.

Hi Phil:

Publishing your experimental development branch using github or our SF
repository might be a tempting way to share it for evaluation, but the
rebase steps of just keeping up with master or rebasing before you
merge with master become problematic since all the commits on your
branch get changed into new commits by that rebase.  The result is the
old set of commits for you branch eventually get garbage collected,
leaving users of that old set of public commits high and dry which, of
course, is a situation to be avoided.

>From what I have seen as a result of lurking on several development
lists where git is being used, it is quite common to communicate
experimental branches using patches between core developers rather
than by making the branch available via public git access. That is,
they use "git format-patch" to create a series of patches of their
work which they attach to development-list e-mails, and others on the
list apply those patches to some experimental unpublished branch of
their own using the "git am" commmand.  They then test that
experimental branch all they like and even make changes to it which
they share back with the original branch developer via "git
format-patch", etc.

Given our rebase workflow constraints, that is the way I suggest you
share your experimental branch work with the rest of the core
developers here with the further understanding that nobody pushes that
work to any publicly accessible git repository for the above reason.
Once the branch matures (with hopefully more than one developer
testing it), then your final job for that experimental branch would be
to rebase your private version of that branch and merge it to master.

Note that once the core developers here with a lot of C experience
agree that your experimental idea is a good one, then I would
encourage you to go ahead and quickly rebase your changes and then push them
to origin master.  This "quick-push to master" philosophy is possible
with PLplot because of its nice architecture that keeps driver changes
largely isolated from each other and also from core library changes.
That is, as long as your approved changes don't interfere with
building PLplot, and run-time tests for at least some of the drivers
work, then we can figure out the rest using fixes to the master branch
version.

Note when your experimental series of patches is published to this
list, I would leave to others with more C experience the judgement
call about whether your changes are the right way for us to go, but I
would certainly be happy to give you feedback based on how well the
result builds and runs on Linux for each device driver there.

Of course, to answer your last question, you can proceed on Linux by
simply cloning the official SF repo, followed by using git am to apply
your experimental branch patches to an experimental branch of that
local repo. followed by build and run testing on Linux.  In fact, it
sounds like you would want to do that test before publishing your
experimental patch series here.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to