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