Hi All
Please find the updated governance component in [1].

thanks
Eranda

[1]. https://github.com/wso2/carbon-governance


On Tue, Jan 21, 2014 at 2:56 PM, Shariq Muhammed <[email protected]> wrote:

> On Tue, Jan 21, 2014 at 2:42 PM, Eranda Sooriyabandara <[email protected]>wrote:
>
>> Hi Shariq,
>> Yeah, we may not needed those to be build again and again. So let's add
>> related stubs to service-stubs directory in each repo.
>>
>
> Yea lets structure it that way.
>
>
>>
>> thanks
>> Eranda
>>
>>
>> On Tue, Jan 21, 2014 at 12:51 PM, Shariq Muhammed <[email protected]>wrote:
>>
>>> On Tue, Jan 21, 2014 at 12:38 PM, Kishanthan Thangarajah <
>>> [email protected]> wrote:
>>>
>>>> Yes, we don't need to separately say "service-stubs", it should be
>>>> under the components level as just another component.
>>>>
>>>
>>> Initially we extracted out the service stubs because it doesn't change
>>> frequently. So we can reduce the build time because we don't need to do
>>> wsdl2java in each build cycle. Looks like we are going to add it back?
>>>
>>>
>>>>
>>>>
>>>>
>>>> On Tue, Jan 21, 2014 at 12:30 PM, Eranda Sooriyabandara <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Kicha,
>>>>> There will be no service stubs directory it will be a additional
>>>>> component in the same level as BE + FE components.
>>>>>
>>>>> thanks
>>>>> Eranda
>>>>>
>>>>>
>>>>> On Tue, Jan 21, 2014 at 11:41 AM, Kishanthan Thangarajah <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Eranda,
>>>>>>
>>>>>> Where have you put the service-stubs related to governance component?
>>>>>> It should come under the same repo as carbon-component-governance.
>>>>>>
>>>>>>
>>>>>> On Tue, Jan 21, 2014 at 12:29 AM, Eranda Sooriyabandara <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>> As a PoC I just completed the carbon-component-governance. Please
>>>>>>> find it in [1] and let me know your comments and suggestions. Please 
>>>>>>> keep
>>>>>>> in mind that this is not in a buildable state since other
>>>>>>> components need to build before this.
>>>>>>>
>>>>>>> thanks
>>>>>>> Eranda
>>>>>>>
>>>>>>> [1] https://github.com/wso2/carbon-component-governance
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jan 17, 2014 at 9:26 PM, Afkham Azeez <[email protected]>wrote:
>>>>>>>
>>>>>>>>  [Sorry for the very long mail. I want to document all that I had
>>>>>>>> in mind & the stuff we discussed. I would recommend all devs to
>>>>>>>> take some time to read this]
>>>>>>>>
>>>>>>>>
>>>>>>>> I would like to summarize he discussion we had a couple of days
>>>>>>>> back.
>>>>>>>>
>>>>>>>> *The Problems*
>>>>>>>> The problems we are trying to solve are as follows:
>>>>>>>>
>>>>>>>> 1. Trunk & branches structures being completely different
>>>>>>>> 2. Branches containing directories with version numbers
>>>>>>>> 3. It is impossible to move to GitHub with the current structure
>>>>>>>> because of #2
>>>>>>>> 4. It is very easy to break the build by changing already released
>>>>>>>> code. The room for human error is high.
>>>>>>>> 5. Bamboo builds are eternally broken because the build fails at
>>>>>>>> some point & Bamboo cannot continue any further
>>>>>>>> 6. When we branch, the trunk quickly becomes obsolete, and remains
>>>>>>>> in that broken state until the next major platform release.
>>>>>>>> 7. Everybody has to build all components/features, even if those
>>>>>>>> are not related to their products
>>>>>>>> 8. Fixed versions in branches instead of using SNAPSHOT versions.
>>>>>>>> This makes it impossible to upload build artifacts to Maven/Nexus
>>>>>>>> repos. This leads to #7.
>>>>>>>> 9. Impossible to integrate code quality tools such as EraInsight
>>>>>>>> because of #5
>>>>>>>>
>>>>>>>> *Proposed solution*
>>>>>>>> We have come up with the following solution after much deliberation
>>>>>>>> & thought.
>>>>>>>>
>>>>>>>> Rationale:
>>>>>>>> We started looking at other open source projects out there. We took
>>>>>>>> Axis2 as an example. Axis2 had many dependencies including Axiom,
>>>>>>>> XmlSchema, Woden, WSS4J etc. Those 3rd party dependencies were
>>>>>>>> also developed by some Axis2 contributors, but we never branched all of
>>>>>>>> those together and brought them into the same code branch. We used to 
>>>>>>>> start
>>>>>>>> what we used to call a release train, where the upstream code would 
>>>>>>>> have to
>>>>>>>> be released first before the downstream code such as Axis2 & Synapse 
>>>>>>>> could
>>>>>>>> be released. This way, we never had any of the problems outlined above.
>>>>>>>>
>>>>>>>> If you look at the WSO2 product releases, again, the scenario is
>>>>>>>> not that much different from the Axis2/Synapse releases. Components &
>>>>>>>> features are simply dependencies of the products. In order to get 
>>>>>>>> product
>>>>>>>> releases out, we first need releases of those
>>>>>>>> dependencies (components/features). So the proposal is to identify the 
>>>>>>>> top
>>>>>>>> level components/features, and first release that code before doing 
>>>>>>>> product
>>>>>>>> releases. Each of those components will have a GitHub repo. All
>>>>>>>> active development will be done on the main branch of those 
>>>>>>>> components, and
>>>>>>>> will be branched when they are close to the release. Instead of 
>>>>>>>> granting
>>>>>>>> commit rights to all, we could only allow the primary developersof 
>>>>>>>> those components to commit, and others can send pull requests, which
>>>>>>>> will be merged in by the primary owners after reviewing. These 
>>>>>>>> component
>>>>>>>> teams could even have an internal Git repo or clone, and commit to
>>>>>>>> that, run all tests, and when they are satisfied that the code is in a 
>>>>>>>> good
>>>>>>>> state to be merged into the main branch, they can send a pull request &
>>>>>>>> merge the changes. We would run Bamboo which would build the components
>>>>>>>> several times a day & deploy them to the Nexus repo. That way, you
>>>>>>>> would not have to build code that is not directly related to what you 
>>>>>>>> are
>>>>>>>> working on, which would save 100s of valuable dev hours.
>>>>>>>>
>>>>>>>> In the majority of the cases, the P2 features correspond to one or
>>>>>>>> more related components. So we would keep the feature close to the
>>>>>>>> component. There are some cases where these components & features 
>>>>>>>> belong
>>>>>>>> in the product itself. AppFactory components are a good example.
>>>>>>>>
>>>>>>>> Products will also have their own GitHub repos. We will have
>>>>>>>> separate GitHub repos for platform integration tests. Products
>>>>>>>> such as API Manager may opt to have the API Management feature in
>>>>>>>> the product itself. We would have a separate P2-repo GitHub repo
>>>>>>>> which would build & deploy the compatible set of P2 features.
>>>>>>>>
>>>>>>>> We will have Bamboo plans at multiple levels; components, products,
>>>>>>>> platform, p2-repo and so on.
>>>>>>>>
>>>>>>>> We will not change any package structures at this time. We would
>>>>>>>> defer that to Carbon 5 (if necessary). We will get rid of the chunk 
>>>>>>>> based
>>>>>>>> release model. Continuous delivery is our ultimate aim & for that to
>>>>>>>> happen, we have to release a compatible set of features. We are going 
>>>>>>>> to
>>>>>>>> rely heavily on automation, automated builds & deploys to Maven. The
>>>>>>>> developers will do the majority of the QA (just like the Apache Stratos
>>>>>>>> team is doing now).
>>>>>>>>
>>>>>>>> We will use the Maven release plugin to create releases & upload
>>>>>>>> them to the Maven repo.
>>>>>>>>
>>>>>>>> *Implications to WSO2 code developers*
>>>>>>>> 1. Life becomes easier because you don't have to spend a lot of
>>>>>>>> time building unrelated stuff
>>>>>>>> 2. General development would happen in the main branch.
>>>>>>>> 3. Close to a release, branches would be cut.
>>>>>>>> 4. Once release branches are cut, fixes would be done in the main
>>>>>>>> branch, and pull requests would be sent to the branch & merged in. This
>>>>>>>> will be easy because we no longer have the trunk & branch structure 
>>>>>>>> being
>>>>>>>> different.
>>>>>>>>
>>>>>>>>
>>>>>>>> *Implications to users*
>>>>>>>> Users will not see any difference in the components & features
>>>>>>>> because we are not changing packages or binary structure. In fact, we 
>>>>>>>> would
>>>>>>>> have a P2 repo with compatible features which all work together.
>>>>>>>>
>>>>>>>> Senaka, Isuruwan & Harshana have already started working on a PoC.
>>>>>>>>
>>>>>>>> Thoughts welcome. Those who were in these discussions, please add
>>>>>>>> anything I may have missed.
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Afkham Azeez*
>>>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>>>>> * <http://www.apache.org/>*
>>>>>>>> *email: **[email protected]* <[email protected]>
>>>>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919> blog: *
>>>>>>>> *http://blog.afkham.org* <http://blog.afkham.org>
>>>>>>>> * twitter: 
>>>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>>>>>> * linked-in: **http://lk.linkedin.com/in/afkhamazeez
>>>>>>>> <http://lk.linkedin.com/in/afkhamazeez>*
>>>>>>>>
>>>>>>>> *Lean . Enterprise . Middleware*
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Architecture mailing list
>>>>>>>> [email protected]
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> *Eranda Sooriyabandara*Senior Software Engineer;
>>>>>>>  Integration Technologies Team;
>>>>>>> WSO2 Inc.; http://wso2.com
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>> E-mail: eranda AT wso2.com
>>>>>>> Mobile: +94 716 472 816
>>>>>>> Linked-In: http://www.linkedin.com/in/erandasooriyabandara
>>>>>>> Blog: http://emsooriyabandara.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> [email protected]
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Kishanthan Thangarajah*
>>>>>> Senior Software Engineer,
>>>>>> Platform Technologies Team,
>>>>>> WSO2, Inc.
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>> Mobile - +94773426635
>>>>>> Blog - *http://kishanthan.wordpress.com
>>>>>> <http://kishanthan.wordpress.com>*
>>>>>> Twitter - *http://twitter.com/kishanthan
>>>>>> <http://twitter.com/kishanthan>*
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *Eranda Sooriyabandara*Senior Software Engineer;
>>>>> Integration Technologies Team;
>>>>> WSO2 Inc.; http://wso2.com
>>>>> Lean . Enterprise . Middleware
>>>>>
>>>>> E-mail: eranda AT wso2.com
>>>>> Mobile: +94 716 472 816
>>>>> Linked-In: http://www.linkedin.com/in/erandasooriyabandara
>>>>> Blog: http://emsooriyabandara.blogspot.com/
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Kishanthan Thangarajah*
>>>> Senior Software Engineer,
>>>> Platform Technologies Team,
>>>> WSO2, Inc.
>>>> lean.enterprise.middleware
>>>>
>>>> Mobile - +94773426635
>>>> Blog - *http://kishanthan.wordpress.com
>>>> <http://kishanthan.wordpress.com>*
>>>> Twitter - *http://twitter.com/kishanthan
>>>> <http://twitter.com/kishanthan>*
>>>>
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> Thanks,
>>> M. S. M. Shariq.
>>> Senior Software Engineer
>>> Phone: +94 777 202 225
>>>
>>
>>
>>
>> --
>>
>> *Eranda Sooriyabandara*Senior Software Engineer;
>> Integration Technologies Team;
>> WSO2 Inc.; http://wso2.com
>> Lean . Enterprise . Middleware
>>
>> E-mail: eranda AT wso2.com
>> Mobile: +94 716 472 816
>> Linked-In: http://www.linkedin.com/in/erandasooriyabandara
>> Blog: http://emsooriyabandara.blogspot.com/
>>
>>
>>
>>
>>
>
>
> --
> Thanks,
> M. S. M. Shariq.
> Senior Software Engineer
> Phone: +94 777 202 225
>



-- 

*Eranda Sooriyabandara*Senior Software Engineer;
Integration Technologies Team;
WSO2 Inc.; http://wso2.com
Lean . Enterprise . Middleware

E-mail: eranda AT wso2.com
Mobile: +94 716 472 816
Linked-In: http://www.linkedin.com/in/erandasooriyabandara
Blog: http://emsooriyabandara.blogspot.com/
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to