>I thought we can store 3.x settings in 3.x repo and so on.

It's not a good idea to use different repositories.

Ignite also has many different modules, but all are situated in the same
project.


If we use different repositories, we can get a situation when a template
from another project will be deleted.

Best regards,
Osipov Vitaliy
osipov.wita...@gmail.com


пт, 17 дек. 2021 г. в 15:14, Anton Vinogradov <a...@apache.org>:

> 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