virtuslab / community-build3 Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Some projects might have some specific requirements regarding the version of java used to compile them.
E.g. typelevel/fs2 uses java.net.StandardProtocolFamily.UNIX
which seems to be available only from JDK 16 on.
Could we somehow make such projects build successfully?
We want to e.g. know how many 'indirect' starts / depended source lines etc. given source has used different distribution stragties (e.g. pass X% and/or dive passed value based on amount of dependencies that project has)
e.g. munit-cats-effect depends on 2 different version of cats effect
In the future we should set up permissions for not authorized users, to allow read-only access to Jenkins access.
If one tries to rebuild a failed job (e.g. because formerly the executor ran out of resources), after the build finishes (with a success or failure) downstream jobs are triggered for rebuilding. Currently, even if they succeeded before they will fail on publishing artifacts during the rebuild because the artifacts repository doesn't allow reuploads. What should be done in such cases? E.g.
This should also allow to test 3rd party code against given instance of community build.
For each target
TODO:
Each run of community build will provide a lot of data. We want to find a mechanism to aggregate and store that data.
There is not hard stop how many features we would like to have so I split them into 'must have' and 'nice to have'.
Must have
** nice to have **
We would prefer to use some lightweight solution.
We might publish an sbt plugin allowing easier conditions checks that would be aware of community build. It can help us for easier manipulation of the builds to fully support nightly versions of Scala compiler
Content of Scaladex versions matrix is not a static page - the content is being dynamically generated upon scrolling the page. For most of the projects that are not an issue, however, Scaladex can also contain snapshot version entries (scalacenter/scaladex#927) for which we should not run the build as they're not stable, and we accept only official (pre-)releases.
If the project contains a lot of snapshots we might not be able to get the last official release in the initial results scrapped using JSoup, (we have that problem with http4s) and though would be not able to resolve names of the artefacts produced by the given version. It would also lead to building a project using main branch, instead of using stable state assigned to given version tag.
We currently build only projects/sub-modules with published artifacts on Scaladex (via producing a target mapping). Some projects might define a separate sub-module for tests. Becouse these modules would never be published, we would never include them in targets. Good example can be softwaremill/magnolia
We should allow to specify additional targets for given project in config
Allow companies to build against given build and provide back the stats.
So far running cb on java 8 failed some projects. We should try to detect required java version based on e.g. gh action
HI, thanks for this, but there are many texts in the documents, is there any SOP for how to submit a project to the community build?
Use --rawfile
option of jq for values taken from files
Test: mvn central vs. libraryDependencies vs. actual classpath
Metrics: compiled scopes, failed scopes / tests coverage of dependencies, compiled source files
For now I am forced to disable signing at all
JVM settings for sbt (-Xmx)
ignore targets (e.b. catsefffext/xx/test
)
add more test targest (e.g. integration-tests/test
)
override timeout
This should be defined within the repo but for not we should keep it on our side
Currently, the Maven repo requests a disc space for the size of 5Gb, it lasts for ~4 weeks of running nightly builds. after that time we would run out of disc space and builds would start to fail.
We should set up a Kubernetes job that would remove stale builds, eg. older than 1 week.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.