On Tue, Jan 21, 2014 at 2:42 PM, Eranda Sooriyabandara <era...@wso2.com>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 <sha...@wso2.com> wrote:
>
>> On Tue, Jan 21, 2014 at 12:38 PM, Kishanthan Thangarajah <
>> kishant...@wso2.com> 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 <era...@wso2.com
>>> > 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 <
>>>> kishant...@wso2.com> 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 <
>>>>> era...@wso2.com> 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 <az...@wso2.com> 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 developers of 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 whichwould 
>>>>>>> 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: **az...@wso2.com* <az...@wso2.com>
>>>>>>> * 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
>>>>>>> architect...@wso2.org
>>>>>>> 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
>>>>>> architect...@wso2.org
>>>>>> 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
>>>>> Dev@wso2.org
>>>>> 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
>>> architect...@wso2.org
>>> 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
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to