Separate JIRA project will ruin the concept of introducing changes for both 
code and build settings in single branch of single project.


> On 17 Dec 2021, at 15:14, Anton Vinogradov <a...@apache.org> wrote:
> 
> Petr,
> 
>> I strongly suggest avoiding a separate repository for project settings.
>> Let's store them in https://github.com/apache/ignite
> 
> Sounds good, but we must avoid dozens of additional commits in this case.
> Each commit should be properly formalized and related to the issue.
> We may create a special Jira project for CI issues to separate commits.
> 
> On Fri, Dec 17, 2021 at 2:46 PM Pavel Tupitsyn <ptupit...@apache.org> wrote:
> 
>> Petr,
>> 
>>> why should I edit code in Apache Ignite 2.x repo to introduce new changes
>> in Apache Ignite 3.x build settings
>> 
>> I thought we can store 3.x settings in 3.x repo and so on.
>> 
>> Looks like it does not work as I hoped it would.
>> Thanks for your answers.
>> 
>> On Fri, Dec 17, 2021 at 2:35 PM Petr Ivanov <mr.wei...@gmail.com> wrote:
>> 
>>> Pavel,
>>> 
>>> 
>>> If you are referring to this paragraph
>>> 
>>>        • If you are using TeamCity feature branches, you can define a
>>> branch specification when creating a project from URL (Git only) or in
>> the
>>> VCS root used for versioned settings. TeamCity will run a build in a
>> branch
>>> using the settings from this branch.
>>> 
>>> then it is only for new projects.
>>> After setting current one all settings will be acquired from the chosen
>>> branch and it will not be able to change (only create new project from
>> new
>>> branch).
>>> 
>>> 
>>> And it still can be done from separate repository.
>>> 
>>> 
>>> Choosing one of the project's repo to host settings for every other
>>> project seems non-logical — why should I edit code in Apache Ignite 2.x
>>> repo to introduce new changes in Apache Ignite 3.x build settings?
>>> 
>>>> On 17 Dec 2021, at 14:28, Pavel Tupitsyn <ptupit...@apache.org> wrote:
>>>> 
>>>> Petr,
>>>> 
>>>>> you cannot run new suite added in branch because it just won't be
>>> visible
>>>> from UI
>>>> 
>>>> That's unfortunate.
>>>> However, a more important scenario is "make changes to the existing
>>> project
>>>> in a branch", which is supported, as I understand [1]
>>>> 
>>>> [1]
>>>> 
>>> 
>> https://www.jetbrains.com/help/teamcity/storing-project-settings-in-version-control.html#Defining+Settings+to+Apply+to+Builds
>>>> 
>>>> On Fri, Dec 17, 2021 at 2:19 PM Petr Ivanov <mr.wei...@gmail.com>
>> wrote:
>>>> 
>>>>> TeamCity DSL just does not work as you wish it should.
>>>>> 
>>>>> 
>>>>> Changes from branches are not visible: you cannot run new suite added
>> in
>>>>> branch because it just won't be visible from UI because project UI is
>>>>> rendered from default branch only),
>>>>> and at least snapshot dependencies are taken from default branch only:
>>>>> even if you will add dependency on already visible Run All
>>> configuration,
>>>>> it will be ignored.
>>>>> 
>>>>> 
>>>>> Also about storing in already existing apache/ignite repository — that
>>>>> will break the model about current separation on ignite and ignite-3,
>>>>> ignite-extensions and so-on.
>>>>> As we have different repositories for different parts of our project
>> and
>>>>> TeamCity unites them all — repository should be separate.
>>>>> And when JB will fix the branches issues — we still will be able to
>> use
>>> it
>>>>> with creating branches with the same name on both project and TC
>>> repository.
>>>>> 
>>>>>> On 17 Dec 2021, at 14:06, Pavel Tupitsyn <ptupit...@apache.org>
>> wrote:
>>>>>> 
>>>>>> Witaliy,
>>>>>> 
>>>>>>> repository is created
>>>>>>> only in the master branch
>>>>>> 
>>>>>> I strongly suggest avoiding a separate repository for project
>> settings.
>>>>>> Let's store them in https://github.com/apache/ignite
>>>>>> 
>>>>>> *1. We should be able to test code changes together with CI/CD
>>> changes.*
>>>>>> *2. We should be able to have different project settings in different
>>>>>> branches.*
>>>>>> 
>>>>>> For example, I may remove or rename a module in ignite/master branch
>>> and
>>>>>> update TC project accordingly,
>>>>>> while it continues to work as before in ignite-2.12 branch where we
>>>>> prepare
>>>>>> the release with older code.
>>>>>> 
>>>>>> This is super important and this is how most other projects do it
>> (from
>>>>> my
>>>>>> experience).
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Fri, Dec 17, 2021 at 11:12 AM Виталий Осилов <
>>>>> osipov.wita...@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> Dear Ignite Community!
>>>>>>> 
>>>>>>> I propose for discussion the conception of using two TeamCity
>> servers
>>>>> with
>>>>>>> a roadmap.
>>>>>>> https://ci.ignite.apache.org/
>>>>>>> https://ci2.ignite.apache.org/
>>>>>>> 
>>>>>>> Storing project settings.
>>>>>>> Servers synchronize configurations between themselves using the
>>> version
>>>>>>> control-storing DSL (repository at https://github.com/apache).
>>> TeamCity
>>>>>>> allows to store the settings in the DSL based on the kotlin
>> language.
>>>>>>> You can read more about the version control-storing DSL  here
>>>>>>> 
>>>>>>> 
>>>>> 
>>> 
>> https://www.jetbrains.com/help/teamcity/2021.2/kotlin-dsl.html#Getting+Started+with+Kotlin+DSL
>>>>>>> This scheme will allow to maintain a single configuration for both
>> TC
>>>>> and
>>>>>>> update configuration after a code review.
>>>>>>> Changes in the suite should be made only in the master branch of the
>>>>> stored
>>>>>>> configuration. WebUI should be disabled on both TC.
>>>>>>> The code-modified PR should be tested for compatibility before
>>> approval.
>>>>>>> 
>>>>>>> Configuring authentication.
>>>>>>> It is proposed to switch sign in to TeamCity with using GitHub.com
>>>>> account
>>>>>>> (
>>>>>>> 
>>>>>>> 
>>>>> 
>>> 
>> https://www.jetbrains.com/help/teamcity/configuring-authentication-settings.html#GitHub.com
>>>>>>> )
>>>>>>> and restriction of access for the organization (https : //
>>>>>>> 
>>>>>>> 
>>>>> 
>>> 
>> docs.github.com/en/organizations/collaborating-with-groups-in-organizations/about-organizations
>>>>>>> .)
>>>>>>> User rights are changed on each server by request in Jira.
>>>>>>> 
>>>>>>> Storing security credentials.
>>>>>>> All credentials are stored on each server in the file
>>>>> "<TEAMCITY_DATA_DIR>
>>>>>>> / config / projects / <PROJECT_ID>
>>> /pluginData/secure/credentials.json".
>>>>>>> That is why it is supposed to configure the synchronization of this
>>> file
>>>>>>> between two servers.
>>>>>>> 
>>>>>>> Maintenance.
>>>>>>> All change requests of server's maintenance should be created in
>> Jira
>>>>>>> https://issues.apache.org/jira/projects/IGNITE
>>>>>>> <https://issues.apache.org/jira/projects/IGNITE/summary>
>>>>>>> Responsible for the servers and agents - TC1 Petr Ivanov and TC2
>>> Vitaly
>>>>>>> Osipov. They are responsible for the health of the servers (backups,
>>>>>>> updates, agents, etc.)
>>>>>>> Both TC servers must be updated sequentially with a minimum time
>>>>> interval
>>>>>>> by request in Jira.
>>>>>>> ---
>>>>>>> At the first stage, it is required to synchronize the differences in
>>>>>>> configurations.  The configuration from TC1 is uploaded to TC2.
>>>>>>> If changes are required in this configuration, tasks are created in
>>>>> Jira to
>>>>>>> change settings in TC1, then new configuration is re-uploaded to
>> TC2.
>>>>>>> Repository is created at https://github.com/apache. Tech-user is
>>>>> created
>>>>>>> for connecting to this repository.  Tech-user should have RW access
>> in
>>>>> the
>>>>>>> master branch.
>>>>>>> Checking TC2 functionality for several weeks.
>>>>>>> Stage  2 - The option of "synchronization of the project settings
>> with
>>>>> the
>>>>>>> version control system" must be allowed  for the root-project on TC1
>>> and
>>>>>>> TC2.
>>>>>>> The option "*Allow editing project settings via UI" must be allowed
>>> on
>>>>> TC1
>>>>>>> and disabled on TC2.*
>>>>>>> Checking TC2 functionality for several weeks.
>>>>>>> Stage 3 -  Switch sign in to TeamCity with using GitHub with linking
>>> TC
>>>>>>> users to their accounts on the github.com.
>>>>>>> Stage 4 - Configuring synchronization of secret files
>>>>>>> "secure/credentials.json". Synchronization is one-way, so security
>>> creds
>>>>>>> can only be made on the TC1 server. Configuring upload and download
>>>>> files
>>>>>>> if they change.
>>>>>>> Stage 5 - Setting up of checking PR before approval.
>>>>>>> Stage 6 - Disabling the ability to edit configurations via WebUI on
>>> TC1
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>> 

Reply via email to