Hi everyone,
I’m under the impression that the next OpenLMIS release may not be for several months. Simultaneously, stakeholders in Malawi are willing to pay for small improvements which are probably globally applicable. I think it would be less than ideal, and counter to the fundamental cadence of agile development, to require stakeholders to wait for the next Core release to benefit from such features.
If an implementer is willing to take on the risk of using untested and unreleased code in certain cases, is there any reason not to:
1) Fork one or more of core’s services.
2) Change the serviceVersions to something like 1.0.0-CORE-SNAPSHOT-TAKEN-ON-[Current-Date].
3) Take care to leave everything else in the forked repositories as-is.
4) Create and use the resultant images.
Whenever possible, I understand that it would be better to avoid this. I’m also a bit concerned, though, about implementers being dependent on another team to create releases. Assuming an implementer is dedicated to the concept of contribution to Core, is there a better way to remove the release-related coupling that naturally follows?
Thank you,
Ben
--
You received this message because you are subscribed to the Google Groups "OpenLMIS Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev+unsubscribe@googlegroups.com.
To post to this group, send email to openlm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/2958bd8a-49f0-4d64-b87f-436f6febbf70%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Paweł Gesek
Technical Project Manager
pge...@soldevelo.com / +48 690 020 875
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/CADt-Nu2WW%3DWOALjKv0sZ6Fx7WM_W0o%2B5a%2BoRzKY3wvotWnvK-w%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-de...@googlegroups.com.
To post to this group, send email to openl...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/2958bd8a-49f0-4d64-b87f-436f6febbf70%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
SolDevelo Sp. z o.o. [LLC] / www.soldevelo.com
Al. Zwycięstwa 96/98, 81-451, Gdynia, Poland
Phone: +48 58 782 45 40 / Fax: +48 58 782 45 41
--
You received this message because you are subscribed to the Google Groups "OpenLMIS Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev...@googlegroups.com.
To post to this group, send email to openl...@googlegroups.com.
To post to this group, send email to openlm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/76b66e44-8294-4eb9-b280-a1662361fa5e%40googlegroups.com.
So, I'm trying to follow this thread, and:
- I'm a little lost in what Ben is asking for (please be concrete)
- I like Josh's metaphor about moving into a building under construction
This discussion then got into "forking," which sounds like the nuclear option we are all trying to avoid. I'm not sure why we are talking about it.
What it sounds like Ben is asking for is to be able to pick up component releases as they are available. There seems to be a clear need to pick up a new version of a service, and a "matching" version of that service's UI.
The Reference-UI, like the Ref-Distro, just pulls together other docker-images. The large difference is that the Reference-UI currently contains code to register the UI to Consul (which we have plans to remove, FYI).
There is no reason an implementer shouldn't be able to pick up a component release of an OpenLMIS Service or UI Module. This does assume the implementer is "OK" that the component has not gone through a full regression test (ie there might be bugs - its like picking up a free mattress off the street).
The problem with OpenLMIS doing component releases, is that our product development process is focused on building a monolith - not individual components. The changes that we introduce to the individual repositories are not focused on making a single component stable, and then getting that section released.
If we as a community want to build a modular architecture we have to support the releases of components. The needs for a modular architecture seems to be well outlined in the Re-Architecture concept note (which I never read before, BTW).
My opinion on this, is that technically we could support this process, but to actually achieve this - both the governance and product committees have to back it and provide funding to make it a priority for developers.
PS: None of this was meant to hurt anyone's feelings. I'm just trying to be direct.
-- nick --
Nick Reid | nick...@villagereach.org
Software Developer, Information Systems Group
VillageReach Starting
at the Last Mile
2900 Eastlake Ave. E, Suite 230, Seattle, WA 98102, USA
CELL: +1.510.410.0020
SKYPE: nickdotreid
www.villagereach.org
I'm loving that this condo metaphor is taking on a life of its own....
To be more concrete: I'm asking for a way in which an informed implementer can use an arbitrary version of a service without waiting long (perhaps a week at most) for an official Core release.
Nick Reid | nick...@villagereach.org
Software Developer, Information Systems Group
VillageReach Starting
at the Last Mile
2900 Eastlake Ave. E, Suite 230, Seattle, WA 98102, USA
CELL: +1.510.410.0020
SKYPE: nickdotreid
www.villagereach.org
I'm loving that this condo metaphor is taking on a life of its own....
To be more concrete: I'm asking for a way in which an informed implementer can use an arbitrary version of a service without waiting long (perhaps a week at most) for an official Core release.Questions:
- Does "arbitrary version" mean a stable version of a service? (ie not a SNAPSHOT)- What would block an implementer from picking up a released service?- Is there a specific set of bugs or "features" that you (Ben) would like to see released?^^ That is really what I meant by concrete
A larger question: How does core prioritize bugs/features for implementers?
In our working process so far it seems like "the squeaky wheel gets the grease," but that will get contentious (at best) once there are multiple implementations.
Nick Reid | nick.reid@villagereach.org
Software Developer, Information Systems Group
VillageReach Starting at the Last Mile
2900 Eastlake Ave. E, Suite 230, Seattle, WA 98102, USA
CELL: +1.510.410.0020
SKYPE: nickdotreid
www.villagereach.org
From: openlm...@googlegroups.com <openlmis-dev@googlegroups.com> on behalf of Josh Zamor <josh....@villagereach.org>
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev+unsubscribe@googlegroups.com.
To post to this group, send email to openlm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/76b66e44-8294-4eb9-b280-a1662361fa5e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "OpenLMIS Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev+unsubscribe@googlegroups.com.
To post to this group, send email to openlm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/E4CA36A9-7FB2-4BDB-A193-A3277C648C5B%40villagereach.org.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev+unsubscribe@googlegroups.com.
To post to this group, send email to openlm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/5A29DC67.1010907%40gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "OpenLMIS Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/CY4PR02MB2199EA2CB167A0A00FE9A56994300%40CY4PR02MB2199.namprd02.prod.outlook.com.
I agree with Nick, that if we want components to live on their own and do component releases independent from each other, we will also have to stop developing OpenLMIS as a monolith and focus more on services. One problem I see with this is the boundaries between components not being evidently clear to people not intimate with the code, i.e. where do requisitions end and fulfillment begins? Or requisitions and stock management?
One thing blocking implementers I see and have to mention is the frequency of major releases we do, especially with services like reference data.
As a semi-aside, I'll mention that use of forks as I've consistently described in this thread shouldn't be seen as a "nuclear option." Like every technology, forks can be used to good or bad affect. VillageReach has been scarred by them in the past, but we'd always do well to keep an open mind. The use of forking I described involves no code modification and thus little if any of the downside we've previously encountered.
I recognize that it's easier, safer, and probably thus better to push the blanket message that all forks are simply unwelcome. To allow implementors to forgo such a free and easily available option, however, I think the Core team will will have to deliver admirably well on its promise to quickly provide service releases whenever asked. If the Core team commits to doing so, I'm confident they can.
Also agreed Pawel. We do a number of major version releases as we're iterating quickly on our API - trying to get to the more right REST resources quicker. Perhaps now is the right time to start slowing down our breaking API changes, however I'm concerned with what we'll have to live with if we do that now. We still have few external clients, so now's the time to iterate and break things. Thoughts?
Ben I can't let this go. I have to point out to you that you're not talking about forks, you're talking about subverting the OpenLMIS release process. While yes the actual fork is what you're talking about, the overall approach you're talking about here is to bypass our release process. While I can appreciate your concern for the core team, I can not recommend to any implementer or user that they should bypass the release process.
Thanks for this Pawel. What I'm hearing is that the development team is actually unclear about the boundaries of each service / domain. I thought we actually were all pretty clear about the role of Stock Management as opposed to Requisitions, but perhaps we need some more formal diagrams, descriptions and use-case statements? What are the ways that you think would best serve our current developer community as well as on-boarding newcomers?
--
You received this message because you are subscribed to the Google Groups "OpenLMIS Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openlmis-dev+unsubscribe@googlegroups.com.
To post to this group, send email to openlm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openlmis-dev/92a798ef-c2b0-4065-95aa-50559fbdcc5f%40googlegroups.com.
1) Fork one or more of core’s services.
2) Change the serviceVersions to something like 1.0.0-CORE-SNAPSHOT-TAKEN-ON-[Current-Date].
3) Take care to leave everything else in the forked repositories as-is.
4) Create and use the resultant images.
There's no guarantee of a component release soon after a severe bug has been found and fixed, for instance. We've done a great job of defining a release process, but I've seen much less about release schedules. Implementers are thus left to wait and wonder - and consider their alternatives.
...on the Product rather than Tech committee forum because the potential communication gap between developers and the business community is one of its underlying concerns... The release process seems to have been given none of this attention however. Ironically, it's an issue business users care about much more because their ultimate concern is the deployment of a working product.
Lets not forget where you started this Ben:
1) Fork one or more of core’s services.
2) Change the serviceVersions to something like 1.0.0-CORE-SNAPSHOT-TAKEN-ON-[Current-Date].
3) Take care to leave everything else in the forked repositories as-is.
4) Create and use the resultant images.
This is a very different sort of question than the one you're asking now:
There's no guarantee of a component release soon after a severe bug has been found and fixed, for instance. We've done a great job of defining a release process, but I've seen much less about release schedules. Implementers are thus left to wait and wonder - and consider their alternatives.