Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
On 26 October 2015 at 01:44, Barry Smithwrote: > Maybe someday git will have additional features that allow multiple repos to > share things like branches, commits, other stuff? so that having all these > packages in different repos is possible, but for now it appears having one > repo is just so much dang more convenient. A final note regarding the subject of this thread: tao4py is part of petsc4py since TAO was incorporated to PETSc. -- Lisandro Dalcin Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Numerical Porous Media Center (NumPor) King Abdullah University of Science and Technology (KAUST) http://numpor.kaust.edu.sa/ 4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 4332 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa Office Phone: +966 12 808-0459
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
On 23 October 2015 at 06:30, Barry Smithwrote: > >> On Oct 22, 2015, at 10:24 PM, Satish Balay wrote: >> >> As I said - depending on the precondition for how tightly petsc & >> petsc4py should be synced - we can choose the appropriate model. >> >> [for the metioned precondition - I was suggestion the model]. >> >> As you say - the initilal phrasing is wrong - so the model is not >> suitable. >> >> A single repo does make it easy for 'all feature branches' to be in >> sync.. >> >> In that model with-petsc4py=1 would be the default. However anyone >> changing the petsc UI would also have to update petsc4py with the >> change.. [and Lisandro says - that change could be buggy - and he >> would like to review it -before its applied] > >Just like Jed was going to review everything anybody put into PETSc before > it got into master. That is just unrealistic and won't last long. Better to > just have a good test suite. > OK, Barry, I very much understand all your concerns. My opposition to incorporate petsc4py within petsc is not strong. I agree maintenance and contribution will be much easier, my concern is just about adding more and more stuff to the PETSc repo year over year. If for the case of petsc4py you think that is not a big issue, then I have to trust you, it is not easy to catch you on the wrong side ;-). BTW, I no longer care about keeping petsc4py compatible with previous PETSc releases. While such approach is workable for pure C code (like in PetIGA), things get complicated when you add Cython to the stack. So, let's go ahead and do the merge. -- Lisandro Dalcin Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Numerical Porous Media Center (NumPor) King Abdullah University of Science and Technology (KAUST) http://numpor.kaust.edu.sa/ 4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 4332 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa Office Phone: +966 12 808-0459
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
Maybe someday git will have additional features that allow multiple repos to share things like branches, commits, other stuff? so that having all these packages in different repos is possible, but for now it appears having one repo is just so much dang more convenient. > On Oct 25, 2015, at 3:12 AM, Lisandro Dalcinwrote: > > On 23 October 2015 at 06:30, Barry Smith wrote: >> >>> On Oct 22, 2015, at 10:24 PM, Satish Balay wrote: >>> >>> As I said - depending on the precondition for how tightly petsc & >>> petsc4py should be synced - we can choose the appropriate model. >>> >>> [for the metioned precondition - I was suggestion the model]. >>> >>> As you say - the initilal phrasing is wrong - so the model is not >>> suitable. >>> >>> A single repo does make it easy for 'all feature branches' to be in >>> sync.. >>> >>> In that model with-petsc4py=1 would be the default. However anyone >>> changing the petsc UI would also have to update petsc4py with the >>> change.. [and Lisandro says - that change could be buggy - and he >>> would like to review it -before its applied] >> >> Just like Jed was going to review everything anybody put into PETSc before >> it got into master. That is just unrealistic and won't last long. Better to >> just have a good test suite. >> > > OK, Barry, I very much understand all your concerns. My opposition to > incorporate petsc4py within petsc is not strong. I agree maintenance > and contribution will be much easier, my concern is just about adding > more and more stuff to the PETSc repo year over year. If for the case > of petsc4py you think that is not a big issue, then I have to trust > you, it is not easy to catch you on the wrong side ;-). > > BTW, I no longer care about keeping petsc4py compatible with previous > PETSc releases. While such approach is workable for pure C code (like > in PetIGA), things get complicated when you add Cython to the stack. > > So, let's go ahead and do the merge. > > > > > -- > Lisandro Dalcin > > Research Scientist > Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) > Numerical Porous Media Center (NumPor) > King Abdullah University of Science and Technology (KAUST) > http://numpor.kaust.edu.sa/ > > 4700 King Abdullah University of Science and Technology > al-Khawarizmi Bldg (Bldg 1), Office # 4332 > Thuwal 23955-6900, Kingdom of Saudi Arabia > http://www.kaust.edu.sa > > Office Phone: +966 12 808-0459
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
Lisandro, You never responded to this. I assume it was because you did not like the idea? This is not an attempt to take control of petsc4py or to take credit away from petsc4py from you. Petsc4py is your package and you will always be the one who deserves the credit. The problem is that mutual efficient development of very intertwined packages is difficult if they are in different respositories. For example petsc4py has been out of date with petsc master for many weeks now because it is too much effort to update the petsc4py repository each time we make some change in PETSc. Thus it becomes a burden on you to go in every once in a while and fix up petsc4py. With one repository changes would happen in both PETSc source and petsc4py source at the same time and tests would detect problems immediately. Thoughts? Barry > On Sep 22, 2015, at 3:39 PM, Barry Smithwrote: > > > Lisandro, > >Now that everyone is using git and knows branches well can we move > PETSc4py inside the PETSc repository as was done a couple of years ago with > BuildSystem. Now when changes/additions are made to PETSc there is a slow > inefficient, often forgotten manual process of bringing them over to > petsc4py. If we put them all in one repository the updates happen quickly and > far more efficiently, as would testing. We'll also get the ability to do > bi-section. > > I realize you want a PETSc4py release to be compatible with previous > versions of PETSc; this property could still remain and we could easily have > a tool that "pulls out" the petsc4py release material from the petsc > repository. > > I think once we make this change we'll wonder why we didn't do it log ago; > just as when we changed BuildSystem. Thoughts? > > Thanks > >Barry >
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
Lisandro, It is tested nightly but there is apparently currently no email sent on failure. See the bottom of, for example, http://ftp.mcs.anl.gov/pub/petsc/nightlylogs/archive/2015/10/22/make_next_arch-linux-pkgs-opt_crank.log I think what should happen is the petsc4py log file should be published to the web (like the other log files) and a script look through it and decide to send email if it detects a problem. Like we currently have for the other log files. Someone has to dig into the nightly test infrastructure to figure out where the new logic needs to go. Currently Satish and Karl understand that infrastructure the best. Barry > On Oct 22, 2015, at 6:44 PM, Lisandro Dalcinwrote: > > On 22 October 2015 at 23:20, Barry Smith wrote: >> >> Lisandro, >> >>You never responded to this. I assume it was because you did not like the >> idea? This is not an attempt to take control of petsc4py or to take credit >> away from petsc4py from you. Petsc4py is your package and you will always be >> the one who deserves the credit. >> > > Oh, sorry! I missed this email. > > >>The problem is that mutual efficient development of very intertwined >> packages is difficult if they are in different respositories. For example >> petsc4py has been out of date with petsc master for many weeks now because >> it is too much effort to update the petsc4py repository each time we make >> some change in PETSc. Thus it becomes a burden on you to go in every once in >> a while and fix up petsc4py. With one repository changes would happen in >> both PETSc source and petsc4py source at the same time and tests would >> detect problems immediately. >> >> Thoughts? >> > > I general terms, I prefer to keep things separate as much a possible. > IMHO, a much important step would be to incorporate petsc4py to the > nightly tests, clearly separating the petsc and petsc4py tests runs. I > would love to get an email every time petsc4py nightly breaks, this > way I would be able to push fixes within a day or two, say. > Maintaining petsc4py requires knowledge of PETSc+Python+Cython, so > ultimately I'm the one in best position to do such work, if you guys > start adding commits to petsc4py withing the main petsc repo, I'm > likely going to miss these changes. For example, today Michael Lange > made some changes, I got an email from Bitbucket, then did a review > and spotted a few issues. > > My hesitation to incorporate petsc4py within petsc repo is, in > Python's [and linear algebra :-)] Zen : "Sparse is better than dense". > If we continue adding stuff to core PETSc, at same point we will endup > like Trilinos ( DON'T MISS the sencond entry in the FAQ: > https://trilinos.org/download/public-git-repository/). > > All that being said, I don't have any problem at all adding petsc4py > to the main PETSc repository. But I still think this is not a good > idea, it will not solve all the problems. Nightly tests with automatic > notifications to me about breakages is perhaps is all what we need to > keep petsc4py in close sync with petsc/master. What about trying this > first to see how it goes? > > > PS: Please understand my position has nothing to do with credits about > the project or ego-related crap. Actually, your proposal would mean > less responsibility and maintenance work for me. But I don't think it > is a move in the right direction. > > > -- > Lisandro Dalcin > > Research Scientist > Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) > Numerical Porous Media Center (NumPor) > King Abdullah University of Science and Technology (KAUST) > http://numpor.kaust.edu.sa/ > > 4700 King Abdullah University of Science and Technology > al-Khawarizmi Bldg (Bldg 1), Office # 4332 > Thuwal 23955-6900, Kingdom of Saudi Arabia > http://www.kaust.edu.sa > > Office Phone: +966 12 808-0459
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
On 22 October 2015 at 23:20, Barry Smithwrote: > >Lisandro, > > You never responded to this. I assume it was because you did not like the > idea? This is not an attempt to take control of petsc4py or to take credit > away from petsc4py from you. Petsc4py is your package and you will always be > the one who deserves the credit. > Oh, sorry! I missed this email. > The problem is that mutual efficient development of very intertwined > packages is difficult if they are in different respositories. For example > petsc4py has been out of date with petsc master for many weeks now because it > is too much effort to update the petsc4py repository each time we make some > change in PETSc. Thus it becomes a burden on you to go in every once in a > while and fix up petsc4py. With one repository changes would happen in both > PETSc source and petsc4py source at the same time and tests would detect > problems immediately. > >Thoughts? > I general terms, I prefer to keep things separate as much a possible. IMHO, a much important step would be to incorporate petsc4py to the nightly tests, clearly separating the petsc and petsc4py tests runs. I would love to get an email every time petsc4py nightly breaks, this way I would be able to push fixes within a day or two, say. Maintaining petsc4py requires knowledge of PETSc+Python+Cython, so ultimately I'm the one in best position to do such work, if you guys start adding commits to petsc4py withing the main petsc repo, I'm likely going to miss these changes. For example, today Michael Lange made some changes, I got an email from Bitbucket, then did a review and spotted a few issues. My hesitation to incorporate petsc4py within petsc repo is, in Python's [and linear algebra :-)] Zen : "Sparse is better than dense". If we continue adding stuff to core PETSc, at same point we will endup like Trilinos ( DON'T MISS the sencond entry in the FAQ: https://trilinos.org/download/public-git-repository/). All that being said, I don't have any problem at all adding petsc4py to the main PETSc repository. But I still think this is not a good idea, it will not solve all the problems. Nightly tests with automatic notifications to me about breakages is perhaps is all what we need to keep petsc4py in close sync with petsc/master. What about trying this first to see how it goes? PS: Please understand my position has nothing to do with credits about the project or ego-related crap. Actually, your proposal would mean less responsibility and maintenance work for me. But I don't think it is a move in the right direction. -- Lisandro Dalcin Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Numerical Porous Media Center (NumPor) King Abdullah University of Science and Technology (KAUST) http://numpor.kaust.edu.sa/ 4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 4332 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa Office Phone: +966 12 808-0459
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
> On Oct 22, 2015, at 7:28 PM, Satish Balaywrote: > > The current infrastruture tests --download-petsc4py in petsc 'next' > and 'master' branches. > > Wrt next - usually a change in a feature branch (when it gets merged > to next) triggers this breakage. And usual thing to do is to fix it > in the feature branch (and merge to next again) > > Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with > the petsc4py repo gitcommit [optionally also tarball ] that > corresponds to the fix. [one way to handle this on petsc4py repo is to > create a feature branch for this fix] Yeah this is nuts, having to maintaining matching branches between petsc and petsc4py and merge them at the same time into next and then master. Clearly no one will ever do this and hence petsc4py will always be out of step from PETSc. I do really believe that incorporating petsc4py into PETSc would just make all these difficulties go away. For example maintaining Tao is a breeze now since it is updated in the same branches as PETSc. Barry > > When this (petsc) feature branch is merged into master - the > corresponding feature branch on the petsc4py side can be merged into > petsc4py master [if petsc4py-master is to be in sync with > petsc-master]. > > [if there are multiple feature branches on the petsc side requiring > corresponding petsc4py changes - somehow that has to be handled] > > Perhaps testing petsc4py via petsc infrastructure [using > --download-petsc4py] is not the appropriate approach? > > Or we should do this only on master - not next? [or just have a > single --download-petsc4py test - thats not mixed with other tests? - > so its breakage is not critical for other things] > > Also we don't currently run any petsc4py tests. [we just test if it > compiles or not] > > Satish > > On Thu, 22 Oct 2015, Barry Smith wrote: > >> >> Lisandro, >> >> It is tested nightly but there is apparently currently no email sent on >> failure. See the bottom of, for example, >> http://ftp.mcs.anl.gov/pub/petsc/nightlylogs/archive/2015/10/22/make_next_arch-linux-pkgs-opt_crank.log >> >> I think what should happen is the petsc4py log file should be published to >> the web (like the other log files) and a script look through it and decide >> to send email if it detects a problem. Like we currently have for the other >> log files. Someone has to dig into the nightly test infrastructure to figure >> out where the new logic needs to go. Currently Satish and Karl understand >> that infrastructure the best. >> >> Barry >> >> >> >> >> >>> On Oct 22, 2015, at 6:44 PM, Lisandro Dalcin wrote: >>> >>> On 22 October 2015 at 23:20, Barry Smith wrote: Lisandro, You never responded to this. I assume it was because you did not like the idea? This is not an attempt to take control of petsc4py or to take credit away from petsc4py from you. Petsc4py is your package and you will always be the one who deserves the credit. >>> >>> Oh, sorry! I missed this email. >>> >>> The problem is that mutual efficient development of very intertwined packages is difficult if they are in different respositories. For example petsc4py has been out of date with petsc master for many weeks now because it is too much effort to update the petsc4py repository each time we make some change in PETSc. Thus it becomes a burden on you to go in every once in a while and fix up petsc4py. With one repository changes would happen in both PETSc source and petsc4py source at the same time and tests would detect problems immediately. Thoughts? >>> >>> I general terms, I prefer to keep things separate as much a possible. >>> IMHO, a much important step would be to incorporate petsc4py to the >>> nightly tests, clearly separating the petsc and petsc4py tests runs. I >>> would love to get an email every time petsc4py nightly breaks, this >>> way I would be able to push fixes within a day or two, say. >>> Maintaining petsc4py requires knowledge of PETSc+Python+Cython, so >>> ultimately I'm the one in best position to do such work, if you guys >>> start adding commits to petsc4py withing the main petsc repo, I'm >>> likely going to miss these changes. For example, today Michael Lange >>> made some changes, I got an email from Bitbucket, then did a review >>> and spotted a few issues. >>> >>> My hesitation to incorporate petsc4py within petsc repo is, in >>> Python's [and linear algebra :-)] Zen : "Sparse is better than dense". >>> If we continue adding stuff to core PETSc, at same point we will endup >>> like Trilinos ( DON'T MISS the sencond entry in the FAQ: >>> https://trilinos.org/download/public-git-repository/). >>> >>> All that being said, I don't have any problem at all adding petsc4py >>> to the main PETSc repository. But I still think this is not a good
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
The model we adopt also depends on how cutting edge petsc4py users want to be with petsc. For example if people want to use dmplex with petsc4py then the two packages have to move very closely in sync. > On Oct 22, 2015, at 9:11 PM, Satish Balaywrote: > > On Thu, 22 Oct 2015, Barry Smith wrote: > >> >>> On Oct 22, 2015, at 7:28 PM, Satish Balay wrote: >>> >>> The current infrastruture tests --download-petsc4py in petsc 'next' >>> and 'master' branches. >>> >>> Wrt next - usually a change in a feature branch (when it gets merged >>> to next) triggers this breakage. And usual thing to do is to fix it >>> in the feature branch (and merge to next again) >>> >>> Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with >>> the petsc4py repo gitcommit [optionally also tarball ] that >>> corresponds to the fix. [one way to handle this on petsc4py repo is to >>> create a feature branch for this fix] >> >> Yeah this is nuts, having to maintaining matching branches between petsc >> and petsc4py and merge them at the same time into next and then master. >> Clearly no one will ever do this and hence petsc4py will always be out of >> step from PETSc. I do really believe that incorporating petsc4py into PETSc >> would just make all these difficulties go away. For example maintaining Tao >> is a breeze now since it is updated in the same branches as PETSc. >> > > Perhaps I should rephrase the issue in the following way: > > We should decide on what level petsc4py and petsc should be synced. > [and the testsuite should be modified appropriately for that] > > Currently its done at next, master branchs. For this to work - the > above - previously mentioned workflow is required. [and for this > workflow - a single repo does makes thing easier] > > We could say sync should happen only between petsc4py-master & > petsc-master. [so issues - if any in feature branches/next wont't be > dealt with - and its ok for the master branches to be out of sync for > a brief time for the fix to propergate]. > > For this - we would have a different workflow [wrt syncing petsc4py > wrt petsc - and a slightly different test suite - testing only > master. [We could continue having the curent test suite - but ignore > errors in next]. And e-mails to Lisandro will trigger only on > petsc4py errors on master. Lisandro would then fix petsc4py (master) > - and then update petsc4py.py in petsc-master. > > Or perhaps some other mode is preferable.. > > Satish > >> Barry >> >>> >>> When this (petsc) feature branch is merged into master - the >>> corresponding feature branch on the petsc4py side can be merged into >>> petsc4py master [if petsc4py-master is to be in sync with >>> petsc-master]. >>> >>> [if there are multiple feature branches on the petsc side requiring >>> corresponding petsc4py changes - somehow that has to be handled] >>> >>> Perhaps testing petsc4py via petsc infrastructure [using >>> --download-petsc4py] is not the appropriate approach? >>> >>> Or we should do this only on master - not next? [or just have a >>> single --download-petsc4py test - thats not mixed with other tests? - >>> so its breakage is not critical for other things] >>> >>> Also we don't currently run any petsc4py tests. [we just test if it >>> compiles or not] >>> >>> Satish >>> >>> On Thu, 22 Oct 2015, Barry Smith wrote: >>> Lisandro, It is tested nightly but there is apparently currently no email sent on failure. See the bottom of, for example, http://ftp.mcs.anl.gov/pub/petsc/nightlylogs/archive/2015/10/22/make_next_arch-linux-pkgs-opt_crank.log I think what should happen is the petsc4py log file should be published to the web (like the other log files) and a script look through it and decide to send email if it detects a problem. Like we currently have for the other log files. Someone has to dig into the nightly test infrastructure to figure out where the new logic needs to go. Currently Satish and Karl understand that infrastructure the best. Barry > On Oct 22, 2015, at 6:44 PM, Lisandro Dalcin wrote: > > On 22 October 2015 at 23:20, Barry Smith wrote: >> >> Lisandro, >> >> You never responded to this. I assume it was because you did not like >> the idea? This is not an attempt to take control of petsc4py or to take >> credit away from petsc4py from you. Petsc4py is your package and you >> will always be the one who deserves the credit. >> > > Oh, sorry! I missed this email. > > >> The problem is that mutual efficient development of very intertwined >> packages is difficult if they are in different respositories. For >> example petsc4py has been out of date with petsc master for many weeks >> now because it is too much
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
> On Oct 22, 2015, at 10:24 PM, Satish Balaywrote: > > As I said - depending on the precondition for how tightly petsc & > petsc4py should be synced - we can choose the appropriate model. > > [for the metioned precondition - I was suggestion the model]. > > As you say - the initilal phrasing is wrong - so the model is not > suitable. > > A single repo does make it easy for 'all feature branches' to be in > sync.. > > In that model with-petsc4py=1 would be the default. However anyone > changing the petsc UI would also have to update petsc4py with the > change.. [and Lisandro says - that change could be buggy - and he > would like to review it -before its applied] Just like Jed was going to review everything anybody put into PETSc before it got into master. That is just unrealistic and won't last long. Better to just have a good test suite. > > For 2 repos model - perhaps sync at 'master' might work. > > Satish > > On Thu, 22 Oct 2015, Barry Smith wrote: > >> >>> On Oct 22, 2015, at 9:53 PM, Satish Balay wrote: >>> >>> If dmplex with petsc4py is the primary use case [and assuming the >>> usage is primarily --download-petsc4py] - we chould use the first >>> model I mentioned - and that should not be too difficult. >>> >>> The workflow would be something like: >>> >>> - Matt would do the updates in petsc/dmplex feature branch & petsc4py >>> dmplex branches simultaneosusly. >> >> That's nuts; Matt is a college professor he doesn't have time to keep two >> branches in sync for no good reason when they could be in the same >> repository. >> >> Plus other people will be making other changes in PETSc that break petsc4py >> >> This discussion has shown to me that keeping petsc and petsc4py in >> different repositories is just silly and unproductive. >>> >>> - And would always use --download-petsc4py for all his build tests >>> [we'll have to fix auto-update for --download-pkg for git version of >>> pkg] >>> >>> - Any isues that come up - Matt will fix in petsc4py/dmplex and update >>> petsc4py [before this branch is ever merged to next] >>> >>> So after next testing - a merge to master - Matt could issue a pull >>> requst to Lisandro [or leave it for Lisandro to figureout when >>> petsc4py-master gets updated with the fix]. >>> >>> The update would involve merging/updating petsc4py-master [and and >>> update to petsc4py.py in petsc-master] >>> >>> [even if this petsc4py-master update doesn't happen immediately] it >>> won't affect petsc4py/dmplex users as they would be using >>> --download-petsc4py [which will use the working petsc4py.commitid set >>> my Matt anyway] >>> >>> If the usage is not via --download-petsc4py - then there could be a >>> more appropriate workflow for that.. [and a different testsuite to >>> match that usage..] >>> >>> Satish >>> >>> On Thu, 22 Oct 2015, Barry Smith wrote: >>> The model we adopt also depends on how cutting edge petsc4py users want to be with petsc. For example if people want to use dmplex with petsc4py then the two packages have to move very closely in sync. > On Oct 22, 2015, at 9:11 PM, Satish Balay wrote: > > On Thu, 22 Oct 2015, Barry Smith wrote: > >> >>> On Oct 22, 2015, at 7:28 PM, Satish Balay wrote: >>> >>> The current infrastruture tests --download-petsc4py in petsc 'next' >>> and 'master' branches. >>> >>> Wrt next - usually a change in a feature branch (when it gets merged >>> to next) triggers this breakage. And usual thing to do is to fix it >>> in the feature branch (and merge to next again) >>> >>> Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with >>> the petsc4py repo gitcommit [optionally also tarball ] that >>> corresponds to the fix. [one way to handle this on petsc4py repo is to >>> create a feature branch for this fix] >> >> Yeah this is nuts, having to maintaining matching branches between petsc >> and petsc4py and merge them at the same time into next and then master. >> Clearly no one will ever do this and hence petsc4py will always be out >> of step from PETSc. I do really believe that incorporating petsc4py into >> PETSc would just make all these difficulties go away. For example >> maintaining Tao is a breeze now since it is updated in the same branches >> as PETSc. >> > > Perhaps I should rephrase the issue in the following way: > > We should decide on what level petsc4py and petsc should be synced. > [and the testsuite should be modified appropriately for that] > > Currently its done at next, master branchs. For this to work - the > above - previously mentioned workflow is required. [and for this > workflow - a single repo does makes thing easier] > > We could say sync should happen only between
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
On Thu, 22 Oct 2015, Barry Smith wrote: > > > On Oct 22, 2015, at 7:28 PM, Satish Balaywrote: > > > > The current infrastruture tests --download-petsc4py in petsc 'next' > > and 'master' branches. > > > > Wrt next - usually a change in a feature branch (when it gets merged > > to next) triggers this breakage. And usual thing to do is to fix it > > in the feature branch (and merge to next again) > > > > Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with > > the petsc4py repo gitcommit [optionally also tarball ] that > > corresponds to the fix. [one way to handle this on petsc4py repo is to > > create a feature branch for this fix] > > Yeah this is nuts, having to maintaining matching branches between petsc > and petsc4py and merge them at the same time into next and then master. > Clearly no one will ever do this and hence petsc4py will always be out of > step from PETSc. I do really believe that incorporating petsc4py into PETSc > would just make all these difficulties go away. For example maintaining Tao > is a breeze now since it is updated in the same branches as PETSc. > Perhaps I should rephrase the issue in the following way: We should decide on what level petsc4py and petsc should be synced. [and the testsuite should be modified appropriately for that] Currently its done at next, master branchs. For this to work - the above - previously mentioned workflow is required. [and for this workflow - a single repo does makes thing easier] We could say sync should happen only between petsc4py-master & petsc-master. [so issues - if any in feature branches/next wont't be dealt with - and its ok for the master branches to be out of sync for a brief time for the fix to propergate]. For this - we would have a different workflow [wrt syncing petsc4py wrt petsc - and a slightly different test suite - testing only master. [We could continue having the curent test suite - but ignore errors in next]. And e-mails to Lisandro will trigger only on petsc4py errors on master. Lisandro would then fix petsc4py (master) - and then update petsc4py.py in petsc-master. Or perhaps some other mode is preferable.. Satish > Barry > > > > > When this (petsc) feature branch is merged into master - the > > corresponding feature branch on the petsc4py side can be merged into > > petsc4py master [if petsc4py-master is to be in sync with > > petsc-master]. > > > > [if there are multiple feature branches on the petsc side requiring > > corresponding petsc4py changes - somehow that has to be handled] > > > > Perhaps testing petsc4py via petsc infrastructure [using > > --download-petsc4py] is not the appropriate approach? > > > > Or we should do this only on master - not next? [or just have a > > single --download-petsc4py test - thats not mixed with other tests? - > > so its breakage is not critical for other things] > > > > Also we don't currently run any petsc4py tests. [we just test if it > > compiles or not] > > > > Satish > > > > On Thu, 22 Oct 2015, Barry Smith wrote: > > > >> > >> Lisandro, > >> > >> It is tested nightly but there is apparently currently no email sent on > >> failure. See the bottom of, for example, > >> http://ftp.mcs.anl.gov/pub/petsc/nightlylogs/archive/2015/10/22/make_next_arch-linux-pkgs-opt_crank.log > >> > >> I think what should happen is the petsc4py log file should be published > >> to the web (like the other log files) and a script look through it and > >> decide to send email if it detects a problem. Like we currently have for > >> the other log files. Someone has to dig into the nightly test > >> infrastructure to figure out where the new logic needs to go. Currently > >> Satish and Karl understand that infrastructure the best. > >> > >> Barry > >> > >> > >> > >> > >> > >>> On Oct 22, 2015, at 6:44 PM, Lisandro Dalcin wrote: > >>> > >>> On 22 October 2015 at 23:20, Barry Smith wrote: > > Lisandro, > > You never responded to this. I assume it was because you did not like > the idea? This is not an attempt to take control of petsc4py or to take > credit away from petsc4py from you. Petsc4py is your package and you > will always be the one who deserves the credit. > > >>> > >>> Oh, sorry! I missed this email. > >>> > >>> > The problem is that mutual efficient development of very intertwined > packages is difficult if they are in different respositories. For > example petsc4py has been out of date with petsc master for many weeks > now because it is too much effort to update the petsc4py repository each > time we make some change in PETSc. Thus it becomes a burden on you to go > in every once in a while and fix up petsc4py. With one repository > changes would happen in both PETSc source and petsc4py source at the > same time and tests would detect problems immediately.
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
As I said - depending on the precondition for how tightly petsc & petsc4py should be synced - we can choose the appropriate model. [for the metioned precondition - I was suggestion the model]. As you say - the initilal phrasing is wrong - so the model is not suitable. A single repo does make it easy for 'all feature branches' to be in sync.. In that model with-petsc4py=1 would be the default. However anyone changing the petsc UI would also have to update petsc4py with the change.. [and Lisandro says - that change could be buggy - and he would like to review it -before its applied] For 2 repos model - perhaps sync at 'master' might work. Satish On Thu, 22 Oct 2015, Barry Smith wrote: > > > On Oct 22, 2015, at 9:53 PM, Satish Balaywrote: > > > > If dmplex with petsc4py is the primary use case [and assuming the > > usage is primarily --download-petsc4py] - we chould use the first > > model I mentioned - and that should not be too difficult. > > > > The workflow would be something like: > > > > - Matt would do the updates in petsc/dmplex feature branch & petsc4py > > dmplex branches simultaneosusly. > >That's nuts; Matt is a college professor he doesn't have time to keep two > branches in sync for no good reason when they could be in the same repository. > >Plus other people will be making other changes in PETSc that break petsc4py > >This discussion has shown to me that keeping petsc and petsc4py in > different repositories is just silly and unproductive. > > > > - And would always use --download-petsc4py for all his build tests > > [we'll have to fix auto-update for --download-pkg for git version of > > pkg] > > > > - Any isues that come up - Matt will fix in petsc4py/dmplex and update > > petsc4py [before this branch is ever merged to next] > > > > So after next testing - a merge to master - Matt could issue a pull > > requst to Lisandro [or leave it for Lisandro to figureout when > > petsc4py-master gets updated with the fix]. > > > > The update would involve merging/updating petsc4py-master [and and > > update to petsc4py.py in petsc-master] > > > > [even if this petsc4py-master update doesn't happen immediately] it > > won't affect petsc4py/dmplex users as they would be using > > --download-petsc4py [which will use the working petsc4py.commitid set > > my Matt anyway] > > > > If the usage is not via --download-petsc4py - then there could be a > > more appropriate workflow for that.. [and a different testsuite to > > match that usage..] > > > > Satish > > > > On Thu, 22 Oct 2015, Barry Smith wrote: > > > >> > >> The model we adopt also depends on how cutting edge petsc4py users want > >> to be with petsc. For example if people want to use dmplex with petsc4py > >> then the two packages have to move very closely in sync. > >> > >>> On Oct 22, 2015, at 9:11 PM, Satish Balay wrote: > >>> > >>> On Thu, 22 Oct 2015, Barry Smith wrote: > >>> > > > On Oct 22, 2015, at 7:28 PM, Satish Balay wrote: > > > > The current infrastruture tests --download-petsc4py in petsc 'next' > > and 'master' branches. > > > > Wrt next - usually a change in a feature branch (when it gets merged > > to next) triggers this breakage. And usual thing to do is to fix it > > in the feature branch (and merge to next again) > > > > Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with > > the petsc4py repo gitcommit [optionally also tarball ] that > > corresponds to the fix. [one way to handle this on petsc4py repo is to > > create a feature branch for this fix] > > Yeah this is nuts, having to maintaining matching branches between petsc > and petsc4py and merge them at the same time into next and then master. > Clearly no one will ever do this and hence petsc4py will always be out > of step from PETSc. I do really believe that incorporating petsc4py into > PETSc would just make all these difficulties go away. For example > maintaining Tao is a breeze now since it is updated in the same branches > as PETSc. > > >>> > >>> Perhaps I should rephrase the issue in the following way: > >>> > >>> We should decide on what level petsc4py and petsc should be synced. > >>> [and the testsuite should be modified appropriately for that] > >>> > >>> Currently its done at next, master branchs. For this to work - the > >>> above - previously mentioned workflow is required. [and for this > >>> workflow - a single repo does makes thing easier] > >>> > >>> We could say sync should happen only between petsc4py-master & > >>> petsc-master. [so issues - if any in feature branches/next wont't be > >>> dealt with - and its ok for the master branches to be out of sync for > >>> a brief time for the fix to propergate]. > >>> > >>> For this - we would have a different workflow [wrt syncing petsc4py > >>> wrt petsc - and a
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
> On Oct 22, 2015, at 9:53 PM, Satish Balaywrote: > > If dmplex with petsc4py is the primary use case [and assuming the > usage is primarily --download-petsc4py] - we chould use the first > model I mentioned - and that should not be too difficult. > > The workflow would be something like: > > - Matt would do the updates in petsc/dmplex feature branch & petsc4py > dmplex branches simultaneosusly. That's nuts; Matt is a college professor he doesn't have time to keep two branches in sync for no good reason when they could be in the same repository. Plus other people will be making other changes in PETSc that break petsc4py This discussion has shown to me that keeping petsc and petsc4py in different repositories is just silly and unproductive. > > - And would always use --download-petsc4py for all his build tests > [we'll have to fix auto-update for --download-pkg for git version of > pkg] > > - Any isues that come up - Matt will fix in petsc4py/dmplex and update > petsc4py [before this branch is ever merged to next] > > So after next testing - a merge to master - Matt could issue a pull > requst to Lisandro [or leave it for Lisandro to figureout when > petsc4py-master gets updated with the fix]. > > The update would involve merging/updating petsc4py-master [and and > update to petsc4py.py in petsc-master] > > [even if this petsc4py-master update doesn't happen immediately] it > won't affect petsc4py/dmplex users as they would be using > --download-petsc4py [which will use the working petsc4py.commitid set > my Matt anyway] > > If the usage is not via --download-petsc4py - then there could be a > more appropriate workflow for that.. [and a different testsuite to > match that usage..] > > Satish > > On Thu, 22 Oct 2015, Barry Smith wrote: > >> >> The model we adopt also depends on how cutting edge petsc4py users want to >> be with petsc. For example if people want to use dmplex with petsc4py then >> the two packages have to move very closely in sync. >> >>> On Oct 22, 2015, at 9:11 PM, Satish Balay wrote: >>> >>> On Thu, 22 Oct 2015, Barry Smith wrote: >>> > On Oct 22, 2015, at 7:28 PM, Satish Balay wrote: > > The current infrastruture tests --download-petsc4py in petsc 'next' > and 'master' branches. > > Wrt next - usually a change in a feature branch (when it gets merged > to next) triggers this breakage. And usual thing to do is to fix it > in the feature branch (and merge to next again) > > Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with > the petsc4py repo gitcommit [optionally also tarball ] that > corresponds to the fix. [one way to handle this on petsc4py repo is to > create a feature branch for this fix] Yeah this is nuts, having to maintaining matching branches between petsc and petsc4py and merge them at the same time into next and then master. Clearly no one will ever do this and hence petsc4py will always be out of step from PETSc. I do really believe that incorporating petsc4py into PETSc would just make all these difficulties go away. For example maintaining Tao is a breeze now since it is updated in the same branches as PETSc. >>> >>> Perhaps I should rephrase the issue in the following way: >>> >>> We should decide on what level petsc4py and petsc should be synced. >>> [and the testsuite should be modified appropriately for that] >>> >>> Currently its done at next, master branchs. For this to work - the >>> above - previously mentioned workflow is required. [and for this >>> workflow - a single repo does makes thing easier] >>> >>> We could say sync should happen only between petsc4py-master & >>> petsc-master. [so issues - if any in feature branches/next wont't be >>> dealt with - and its ok for the master branches to be out of sync for >>> a brief time for the fix to propergate]. >>> >>> For this - we would have a different workflow [wrt syncing petsc4py >>> wrt petsc - and a slightly different test suite - testing only >>> master. [We could continue having the curent test suite - but ignore >>> errors in next]. And e-mails to Lisandro will trigger only on >>> petsc4py errors on master. Lisandro would then fix petsc4py (master) >>> - and then update petsc4py.py in petsc-master. >>> >>> Or perhaps some other mode is preferable.. >>> >>> Satish >>> Barry > > When this (petsc) feature branch is merged into master - the > corresponding feature branch on the petsc4py side can be merged into > petsc4py master [if petsc4py-master is to be in sync with > petsc-master]. > > [if there are multiple feature branches on the petsc side requiring > corresponding petsc4py changes - somehow that has to be handled] > > Perhaps testing petsc4py via petsc infrastructure [using > --download-petsc4py] is not the
Re: [petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
If dmplex with petsc4py is the primary use case [and assuming the usage is primarily --download-petsc4py] - we chould use the first model I mentioned - and that should not be too difficult. The workflow would be something like: - Matt would do the updates in petsc/dmplex feature branch & petsc4py dmplex branches simultaneosusly. - And would always use --download-petsc4py for all his build tests [we'll have to fix auto-update for --download-pkg for git version of pkg] - Any isues that come up - Matt will fix in petsc4py/dmplex and update petsc4py [before this branch is ever merged to next] So after next testing - a merge to master - Matt could issue a pull requst to Lisandro [or leave it for Lisandro to figureout when petsc4py-master gets updated with the fix]. The update would involve merging/updating petsc4py-master [and and update to petsc4py.py in petsc-master] [even if this petsc4py-master update doesn't happen immediately] it won't affect petsc4py/dmplex users as they would be using --download-petsc4py [which will use the working petsc4py.commitid set my Matt anyway] If the usage is not via --download-petsc4py - then there could be a more appropriate workflow for that.. [and a different testsuite to match that usage..] Satish On Thu, 22 Oct 2015, Barry Smith wrote: > > The model we adopt also depends on how cutting edge petsc4py users want to > be with petsc. For example if people want to use dmplex with petsc4py then > the two packages have to move very closely in sync. > > > On Oct 22, 2015, at 9:11 PM, Satish Balaywrote: > > > > On Thu, 22 Oct 2015, Barry Smith wrote: > > > >> > >>> On Oct 22, 2015, at 7:28 PM, Satish Balay wrote: > >>> > >>> The current infrastruture tests --download-petsc4py in petsc 'next' > >>> and 'master' branches. > >>> > >>> Wrt next - usually a change in a feature branch (when it gets merged > >>> to next) triggers this breakage. And usual thing to do is to fix it > >>> in the feature branch (and merge to next again) > >>> > >>> Wrt to petsc4py - this would mean updating petsc4py.py [in petsc] with > >>> the petsc4py repo gitcommit [optionally also tarball ] that > >>> corresponds to the fix. [one way to handle this on petsc4py repo is to > >>> create a feature branch for this fix] > >> > >> Yeah this is nuts, having to maintaining matching branches between petsc > >> and petsc4py and merge them at the same time into next and then master. > >> Clearly no one will ever do this and hence petsc4py will always be out of > >> step from PETSc. I do really believe that incorporating petsc4py into > >> PETSc would just make all these difficulties go away. For example > >> maintaining Tao is a breeze now since it is updated in the same branches > >> as PETSc. > >> > > > > Perhaps I should rephrase the issue in the following way: > > > > We should decide on what level petsc4py and petsc should be synced. > > [and the testsuite should be modified appropriately for that] > > > > Currently its done at next, master branchs. For this to work - the > > above - previously mentioned workflow is required. [and for this > > workflow - a single repo does makes thing easier] > > > > We could say sync should happen only between petsc4py-master & > > petsc-master. [so issues - if any in feature branches/next wont't be > > dealt with - and its ok for the master branches to be out of sync for > > a brief time for the fix to propergate]. > > > > For this - we would have a different workflow [wrt syncing petsc4py > > wrt petsc - and a slightly different test suite - testing only > > master. [We could continue having the curent test suite - but ignore > > errors in next]. And e-mails to Lisandro will trigger only on > > petsc4py errors on master. Lisandro would then fix petsc4py (master) > > - and then update petsc4py.py in petsc-master. > > > > Or perhaps some other mode is preferable.. > > > > Satish > > > >> Barry > >> > >>> > >>> When this (petsc) feature branch is merged into master - the > >>> corresponding feature branch on the petsc4py side can be merged into > >>> petsc4py master [if petsc4py-master is to be in sync with > >>> petsc-master]. > >>> > >>> [if there are multiple feature branches on the petsc side requiring > >>> corresponding petsc4py changes - somehow that has to be handled] > >>> > >>> Perhaps testing petsc4py via petsc infrastructure [using > >>> --download-petsc4py] is not the appropriate approach? > >>> > >>> Or we should do this only on master - not next? [or just have a > >>> single --download-petsc4py test - thats not mixed with other tests? - > >>> so its breakage is not critical for other things] > >>> > >>> Also we don't currently run any petsc4py tests. [we just test if it > >>> compiles or not] > >>> > >>> Satish > >>> > >>> On Thu, 22 Oct 2015, Barry Smith wrote: > >>> > > Lisandro, > > It is tested nightly but there is apparently currently no
[petsc-dev] including PETSc4py (and Tao4py) inside PETSc repository
Lisandro, Now that everyone is using git and knows branches well can we move PETSc4py inside the PETSc repository as was done a couple of years ago with BuildSystem. Now when changes/additions are made to PETSc there is a slow inefficient, often forgotten manual process of bringing them over to petsc4py. If we put them all in one repository the updates happen quickly and far more efficiently, as would testing. We'll also get the ability to do bi-section. I realize you want a PETSc4py release to be compatible with previous versions of PETSc; this property could still remain and we could easily have a tool that "pulls out" the petsc4py release material from the petsc repository. I think once we make this change we'll wonder why we didn't do it log ago; just as when we changed BuildSystem. Thoughts? Thanks Barry