Saikat,

Let me share my understanding how do we run the majority of our jobs
executing test suites. Hope it will help.
1. ~Build Apache Ignite~ in a separate run and publish everything as a
single artifact ignite.zip (it contains ignite working directory with
compiled modules, e.g. modules/core/target and others).
2. Download and extract ignite.zip and run particular test suites
against extracted files.

In a such setup test suites run the same as you do it on your local
machine and it always works with a single multi-module maven project
(apache-ignite). So, all dependencies are resolved in the working
directory.

For a separate IgniteExtensions maven project you need to install all
dependencies from downloaded ignite.zip into .m2/repository local to
the agent. I suppose we can do it as follows:
1. Download ignite.zip and extract it into "ignite" subfolder.
2. Run a maven command installing all modules into local maven
repository. Something like "mvn install" but here we need to make sure
that nothing is compiled once again.
3. Build IgniteExtensions.

There might be a better way to do the same, I just tried to describe a
schema how it can be done.

вт, 10 дек. 2019 г. в 06:30, Saikat Maitra <saikat.mai...@gmail.com>:
>
> Hi Ivan, Ilya
>
> Thank you for your reply. I have added you as dev in IgniteExtensions
> project and you should be able to check the build configurations.
>
> Yes, when I set artifact dependencies for ~Build Apache Ignite~ similar to
> other projects then I receive below error
>
> [ERROR] [ERROR] Could not find the selected project in the reactor:
> :ignite-flink-ext @
>
> I do not see the same error when I am running the build in local and
> maven package command can still get 2.9.0-SNAPSHOT dependencies from my
> local .m2 repository but it is failing in teamcity.
>
> Regards,
> Saikat
>
>
>
>
> On Mon, Dec 9, 2019 at 5:18 AM Ilya Kasnacheev <ilya.kasnach...@gmail.com>
> wrote:
>
> > Hello!
> >
> > I think that your build should depend on an Apache Ignite build(s) or just
> > use an already released version.
> >
> > In the same fashion as all our teamcity depend on "Build Apache Ignite" and
> > use its artifacts.
> >
> > Here you want Ignite snapshot but Teamcity does not know where to take it
> > from.
> >
> > Regards,
> > --
> > Ilya Kasnacheev
> >
> >
> > пн, 9 дек. 2019 г. в 06:40, Saikat Maitra <saikat.mai...@gmail.com>:
> >
> > > Hello,
> > >
> > > I am running into a problem specific to teamcity build for Ignite
> > > Extensions project. When I set the dependencies to 2.9.0-SNAPSHOT I am
> > > getting an error message during build as below
> > >
> > > [06:24:12][Step 4/5] Failed to execute goal on project ignite-flink-ext:
> > > Could not resolve dependencies for project
> > > org.apache.ignite.ext:ignite-flink-ext:jar:1.0.0-SNAPSHOT: The following
> > > artifacts could not be resolved:
> > > org.apache.ignite:ignite-core:jar:2.9.0-SNAPSHOT,
> > > org.apache.ignite:ignite-core:jar:tests:2.9.0-SNAPSHOT,
> > > org.apache.ignite:ignite-log4j:jar:2.9.0-SNAPSHOT,
> > > org.apache.ignite:ignite-spring:jar:2.9.0-SNAPSHOT: Could not find
> > artifact
> > > org.apache.ignite:ignite-core:jar:2.9.0-SNAPSHOT in h2database.com (
> > > https://h2database.com/m2-repo)
> > >
> > >
> > > and if set artifact dependencies for ~Build Apache Ignite~ then I receive
> > > below error
> > >
> > > [ERROR] [ERROR] Could not find the selected project in the reactor:
> > > :ignite-flink-ext @
> > >
> > > Build url
> > >
> > >
> > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteExtensions_Build&branch_IgniteExtensions=pull%2F1%2Fhead&tab=buildTypeStatusDiv
> > >
> > > Can you please let me know if you faced similar problem with teamcity
> > > build?
> > >
> > > I can set Ignite Extensions dependencies to released ignite-core
> > artifacts
> > > version like 2.7.6 and build works fine.
> > >
> > > Regards,
> > > Saikat
> > >
> > >
> > >
> > >
> > >
> > > On Sat, Nov 30, 2019 at 1:50 PM Saikat Maitra <saikat.mai...@gmail.com>
> > > wrote:
> > >
> > > > Hello Denis,
> > > >
> > > > Thank you for your email and sharing your thoughts on the release
> > > process.
> > > > I will update the artifact id and dependencies for ignite-extensions
> > > > accordingly.
> > > >
> > > > I had created Ignite-Extensions project as a root level project and in
> > > > teamcity I was facing issues pulling dependencies for 2.8.0-SNAPSHOT
> > > > whereas I was able to pull dependencies for ignite-core 2.7.6 from
> > maven
> > > > central. I will look into it further why teamcity build was not able to
> > > > pull snapshot dependencies.
> > > >
> > > > I will also create "ignite-core-2.9+" branch for the upcoming release
> > > > process.
> > > >
> > > > Thank you,
> > > > Saikat
> > > >
> > > >
> > > >
> > > >
> > > > On Wed, Nov 27, 2019 at 1:05 PM Denis Magda <dma...@apache.org> wrote:
> > > >
> > > >> Hi Saikat,
> > > >>
> > > >> Thanks for driving this activity forward and raising the question. Let
> > > me
> > > >> share my thoughts below and let's see what the broader community
> > thinks.
> > > >>
> > > >> Each extension needs to have its own version unrelated to the core and
> > > >> Maven's groupId parameter for extension artifacts should be
> > > >> "org.apache.ignite.ext". For instance, the very first release of Flink
> > > in
> > > >> the form of extension should be pulled from Maven this way
> > > >>
> > > >> <dependency>
> > > >>             <groupId>org.apache.ignite.ext</groupId>
> > > >>             <artifactId>ignite-flink</artifactId>
> > > >>             <version>1.0.0</version>
> > > >> </dependency>
> > > >>
> > > >> When it comes to the releases, all the extensions need to be verified
> > > for
> > > >> an upcoming release and updated if needed (with the version increase
> > > only
> > > >> for those updated). Thus, looks like the extensions master needs to be
> > > >> linked to the latest Ignite core snapshot. Whenever the core will be
> > > being
> > > >> prepared and any extensions need to be modified we can take this
> > > approach:
> > > >>
> > > >>    - Create a branch of extensions for the upcoming core release. For
> > > >>    instance, "ignite-core-2.9+" branch. That's just the branch name
> > (and
> > > >> not
> > > >>    any Maven artifact name) with "+" sign implying that the updated
> > > >> extensions
> > > >>    will work for Ignite 2.9 and later until we need to update them
> > again
> > > >>    creating a release branch like "ignite-core-2.14+"
> > > >>    - If only a subset of the extensions was updated then we need to
> > > >> release
> > > >>    those extensions to Maven. The goal is to avoid the practice of
> > > >> publishing
> > > >>    Flink or any other extension to Maven for every core release if
> > there
> > > >> are
> > > >>    no changes.
> > > >>    - As for a ZIP archive, we should prepare the archive for a
> > download
> > > >>    with the name like "ignite-core-2.9+"
> > > >>
> > > >>
> > > >> -
> > > >> Denis
> > > >>
> > > >>
> > > >> On Tue, Nov 26, 2019 at 9:03 PM Saikat Maitra <
> > saikat.mai...@gmail.com>
> > > >> wrote:
> > > >>
> > > >> > Hello,
> > > >> >
> > > >> > I wanted to connect and discuss on the release process for
> > > >> > ignite-extensions. As of today all our integrations since released
> > > >> together
> > > >> > were able to run build based on latest snapshot for example the
> > > current
> > > >> > build depends on 2.8.0-SNAPSHOT. If we are making ignite-extensions
> > as
> > > >> > separate project with different release cycle then it make sense to
> > > have
> > > >> > dependencies on core modules based on released artifact for example
> > > the
> > > >> > dependency for ignite-core would be 2.7.6
> > > >> >
> > > >> > Please review and share your thoughts.
> > > >> >
> > > >> > PR https://github.com/apache/ignite-extensions/pull/1
> > > >> >
> > > >> > Regards
> > > >> > Saikat
> > > >> >
> > > >>
> > > >
> > >
> >



-- 
Best regards,
Ivan Pavlukhin

Reply via email to