Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate away from travis-ci? #952

Closed
sbliven opened this issue Jul 31, 2021 · 13 comments
Closed

Migrate away from travis-ci? #952

sbliven opened this issue Jul 31, 2021 · 13 comments
Labels
question Open discussions about the library

Comments

@sbliven
Copy link
Member

sbliven commented Jul 31, 2021

In June travis-ci.org was shut down and migrated to travis-ci.com. This apparently involves stronger limits on computation time for free projects. As a result many projects (e.g. biopython) are migrating to github actions. Should biojava do the same?

Another option might be to apply for an OSS Credits allowance to continue running on travis-ci. If I'm reading their plans correctly, this might not even be needed since we only test on linux and we rarely have more than one concurrent job.

For reference, in July we ran 15 builds and 289 minutes.

@sbliven sbliven added the question Open discussions about the library label Jul 31, 2021
@sbliven
Copy link
Member Author

sbliven commented Jul 31, 2021

The current github actions set up by @HanSolo (#893) work very nicely. We could switch our documentation and commit hooks to reference the github actions instead of travis. That way if travis limits our build time in the future it won't break anything.

sbliven added a commit to sbliven/biojava-sbliven that referenced this issue Jul 31, 2021
Updates travis-ci.org references to travis-ci.com.

Refer to biojava#952.
sbliven added a commit to sbliven/biojava-sbliven that referenced this issue Jul 31, 2021
Updates travis-ci.org references to travis-ci.com.

Refer to biojava#952.
@josemduarte
Copy link
Contributor

Just want to add some notes on things I tried recently. I did the migration from travis-ci.org and travis-ci.com. It has been working fine for some time. But as you say perhaps we are reaching the limits of the free tier.

What I've struggled with is in running CI with Pull Requests. Both travis-ci.com and github workflows broke down at some point (they would sit there waiting forever). At the moment, it seems that travis-ci does work fine for PRs, but I have disabled github workflow in PRs. Perhaps it will work now if we try again.

In the per-commit CI, it seems that both CI systems work well, judging from the latest commit :

Screen Shot 2021-08-02 at 10 59 50

@josemduarte
Copy link
Contributor

Now github workflows are the only enabled CI for BioJava. However the github workflow build is failing due to the openchart dependency of biojava-alignment (itself a dependency of the forester package, see cmzmasek/forester#12 for some background):

Error:  Failed to execute goal on project biojava-alignment: Could not resolve dependencies for project org.biojava:biojava-alignment:jar:6.0.0-SNAPSHOT: Could not find artifact openchart:openchart:jar:1.0 at specified path /home/runner/.m2/repository/org/biojava/thirdparty/forester/1.038/src/main/resources/openchart.jar -> [Help 1]

In other environments this was simply a warning instead of a failure:

[WARNING] The POM for org.biojava.thirdparty:forester:jar:1.038 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

There must be something in github workflow environment (maven version?) that's producing this error now.

@heuermh
Copy link
Member

heuermh commented Sep 20, 2021

I think helping forester publish to Maven Central is the best way forward, hopefully we can help make that happen.

@josemduarte
Copy link
Contributor

I think helping forester publish to Maven Central is the best way forward, hopefully we can help make that happen.

Forester itself is in maven central (we did it ourselves, in the biojava-thirdparty namespace). What's not in maven central is the openchart dependency that forester has. See our foresters's fork pom:

<!-- Openchart is not available in maven central. The only way we can provide 
                        it is by pointing to the jar within the distribution. That's not ideal and 
                        maven warns about it. -->
                <dependency>
                        <artifactId>openchart</artifactId>
                        <groupId>openchart</groupId>
                        <version>1.0</version>
                        <scope>system</scope>
                        <systemPath>${basedir}/src/main/resources/openchart.jar</systemPath>
                </dependency>

If openchart source code was available somewhere and their license allowed it, we could try to host it under biojava-thirdparty.

@vasiliy-bout
Copy link

I've stumbled upon the same build problem. And it looks like openchart is available in JBoss 3rd-party repository, as a version 1.4.2. See https://mvnrepository.com/artifact/openchart/openchart/1.4.2. So, what about switch to a newer version of openchart library from JBoss repository?

@aalhossary
Copy link
Member

                        <scope>system</scope>
                        <systemPath>${basedir}/src/main/resources/openchart.jar</systemPath>

System scope is disabled in new maven versions.

Look at this Page.

@josemduarte
Copy link
Contributor

Thanks for the tip @vasiliy-bout . I've tried that, but the jar file that the jboss repo provides seems to be corrupted:

$ jar -tf ~/.m2/repository/openchart/openchart/1.4.2/openchart-1.4.2.jar 
java.util.zip.ZipException: zip END header not found
	at java.base/java.util.zip.ZipFile$Source.zerror(ZipFile.java:1581)
	at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1476)
	at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1483)
	at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1288)
	at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1251)
	at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:732)
	at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:849)
	at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
	at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
	at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:148)
	at jdk.jartool/sun.tools.jar.Main.list(Main.java:1500)
	at jdk.jartool/sun.tools.jar.Main.run(Main.java:380)
	at jdk.jartool/sun.tools.jar.Main.main(Main.java:1681)

System scope is disabled in new maven versions.

Thanks @aalhossary , that confirms it is a maven version problem

JonStargaryen added a commit to JonStargaryen/biojava that referenced this issue Sep 30, 2021
@vasiliy-bout
Copy link

vasiliy-bout commented Sep 30, 2021

@josemduarte , this is strange. Here is my output:

$ jar -tf ~/.m2/repository/openchart/openchart/1.4.2/openchart-1.4.2.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/approximatrix/
com/approximatrix/charting/
com/approximatrix/charting/coordsystem/
com/approximatrix/charting/coordsystem/ticklocator/
com/approximatrix/charting/event/
com/approximatrix/charting/model/
com/approximatrix/charting/model/threedimensional/
com/approximatrix/charting/render/
com/approximatrix/charting/render/colorscale/
com/approximatrix/charting/render/shape/
com/approximatrix/charting/swing/
com/approximatrix/charting/test/
AUTHORS
ChangeLog
LICENSE
README
com/approximatrix/charting/AbstractChart.class
com/approximatrix/charting/Axis.class
com/approximatrix/charting/BufferedChart$RenderThread.class
com/approximatrix/charting/BufferedChart.class
com/approximatrix/charting/Chart.class
com/approximatrix/charting/ChartEncoder.class
com/approximatrix/charting/ChartUtilities.class
com/approximatrix/charting/CoordSystem.class
com/approximatrix/charting/DefaultChart.class
com/approximatrix/charting/EncodingException.class
com/approximatrix/charting/ExtendedChart.class
com/approximatrix/charting/GenericChart.class
com/approximatrix/charting/Legend.class
com/approximatrix/charting/SimpleStrokeDefs.class
com/approximatrix/charting/Title.class
com/approximatrix/charting/coordsystem/AbstractCoordSystem.class
com/approximatrix/charting/coordsystem/BoxCoordSystem.class
com/approximatrix/charting/coordsystem/ClassicCoordSystem.class
com/approximatrix/charting/coordsystem/ClassicCoordSystemUtilities.class
com/approximatrix/charting/coordsystem/CoordSystem.class
com/approximatrix/charting/coordsystem/CoordSystemUtilities.class
com/approximatrix/charting/coordsystem/InvisibleCoordSystem.class
com/approximatrix/charting/coordsystem/ticklocator/NumericTickLocator.class
com/approximatrix/charting/coordsystem/ticklocator/NumericXTickLocator.class
com/approximatrix/charting/coordsystem/ticklocator/NumericYTickLocator.class
com/approximatrix/charting/coordsystem/ticklocator/ObjectTickLocator.class
com/approximatrix/charting/coordsystem/ticklocator/ObjectXTickLocator.class
com/approximatrix/charting/event/ChartDataModelEvent.class
com/approximatrix/charting/event/ChartDataModelListener.class
com/approximatrix/charting/event/InfoAvailableEvent.class
com/approximatrix/charting/event/InfoAvailableListener.class
com/approximatrix/charting/event/RenderChangeEvent.class
com/approximatrix/charting/event/RenderChangeListener.class
com/approximatrix/charting/model/AbstractChartDataModel.class
com/approximatrix/charting/model/ChartDataModel.class
com/approximatrix/charting/model/ChartDataModelConstraints.class
com/approximatrix/charting/model/DataSet.class
com/approximatrix/charting/model/DefaultChartDataModel.class
com/approximatrix/charting/model/DefaultChartDataModelConstraints.class
com/approximatrix/charting/model/DefaultDataSet.class
com/approximatrix/charting/model/EditableChartDataModel.class
com/approximatrix/charting/model/EditableDataSet.class
com/approximatrix/charting/model/IntegratedImageModel.class
com/approximatrix/charting/model/JDBCPlotter.class
com/approximatrix/charting/model/JDBCPlotterException.class
com/approximatrix/charting/model/MultiScatterDataModel$DataSet.class
com/approximatrix/charting/model/MultiScatterDataModel$SeriesProperties.class
com/approximatrix/charting/model/MultiScatterDataModel.class
com/approximatrix/charting/model/MultiScatterDataModelConstraints.class
com/approximatrix/charting/model/ObjectChartDataModel.class
com/approximatrix/charting/model/ScatterDataModel$SeriesProperties.class
com/approximatrix/charting/model/ScatterDataModel.class
com/approximatrix/charting/model/StackedChartDataModelConstraints.class
com/approximatrix/charting/model/threedimensional/AbstractDotPlotDataModel.class
com/approximatrix/charting/model/threedimensional/ColorDotPlotDataModel.class
com/approximatrix/charting/model/threedimensional/ColorScaleDotPlotDataModel.class
com/approximatrix/charting/model/threedimensional/DotPlotDataModelConstraints.class
com/approximatrix/charting/render/AbstractChartRenderer.class
com/approximatrix/charting/render/AbstractRenderer.class
com/approximatrix/charting/render/BarChartRenderer.class
com/approximatrix/charting/render/ChartRenderingHints.class
com/approximatrix/charting/render/ImageRenderer.class
com/approximatrix/charting/render/InterpolationChartRenderer.class
com/approximatrix/charting/render/LineChartRenderer.class
com/approximatrix/charting/render/MultiScatterChartRenderer.class
com/approximatrix/charting/render/PieChartRenderer.class
com/approximatrix/charting/render/PlotChartRenderer.class
com/approximatrix/charting/render/RadarChartRenderer.class
com/approximatrix/charting/render/Renderer.class
com/approximatrix/charting/render/RowColorModel.class
com/approximatrix/charting/render/ScatterChartRenderer.class
com/approximatrix/charting/render/StackedBarChartRenderer.class
com/approximatrix/charting/render/colorscale/AbstractColorScale.class
com/approximatrix/charting/render/colorscale/ColorScale.class
com/approximatrix/charting/render/colorscale/IndexedColorScale.class
com/approximatrix/charting/render/colorscale/SimpleColorScale.class
com/approximatrix/charting/render/shape/Diamond2D$1.class
com/approximatrix/charting/render/shape/Diamond2D.class
com/approximatrix/charting/render/shape/Triangle2D$1.class
com/approximatrix/charting/render/shape/Triangle2D.class
com/approximatrix/charting/swing/AbstractChartPanel.class
com/approximatrix/charting/swing/BufferedChartPanel.class
com/approximatrix/charting/swing/ChartPanel.class
com/approximatrix/charting/swing/ExtendedChartPanel.class
com/approximatrix/charting/swing/InteractiveChartPanel.class
com/approximatrix/charting/test/GraphFrame$1.class
com/approximatrix/charting/test/GraphFrame$2.class
com/approximatrix/charting/test/GraphFrame$3.class
com/approximatrix/charting/test/GraphFrame$4.class
com/approximatrix/charting/test/GraphFrame.class
com/approximatrix/charting/test/ImageFilter.class
com/approximatrix/charting/test/TestChartDataModel.class

So the JAR looks good in my maven cache. I'm using AdoptOpenJDK-11.0.11+9.

@josemduarte
Copy link
Contributor

Thanks again @vasiliy-bout . After some more debugging, it turns out that our local maven repo (nexus3) had a bad jar in the cache. So yes, it works with the jboss jar. I'll see if I can push that later today.

@josemduarte
Copy link
Contributor

I've released a new biojava-thirdparty/forester (1.039) and bumped the version up in biojava's pom (pushed to master already). The test now passes.

Now we have the next problem: biojava-protmod depends on an external resource that's no longer available, see #975

@josemduarte
Copy link
Contributor

For the moment, to get the CI pipeline going, I'm going to @Ignore the test.

josemduarte added a commit that referenced this issue Sep 30, 2021
@josemduarte
Copy link
Contributor

Github workflows are now working both for pushes to master and pull requests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Open discussions about the library
Projects
None yet
Development

No branches or pull requests

5 participants