Comments (10)
We tried to study a simple/naive fix yesterday:
We could use git ls-remote
to query the last rev of each pin-depends (in a job placed outside of Analyse
's cache). The rev could then be inserted in the command installing them, invalidating Docker's cache if that changes.
The problem is that opam files and opam show
are very hard to parse. To solve that we should use Opam's opam-format
library.
from ocaml-ci.
Note: another way to depend on dev versions is to use git submodule
to add the exact commit you want to your project. ocaml-ci will automatically fetch these submodules (using git clone --recursive
) and dune will automatically build against them.
from ocaml-ci.
Note: another way to depend on dev versions is to use
git submodule
to add the exact commit you want to your project. ocaml-ci will automatically fetch these submodules (usinggit clone --recursive
) and dune will automatically build against them.
If we wanted to depend on a specific commit we could also pin-depend on that specific commit, and the CI works well in that case too.
from ocaml-ci.
Note that pin-depends
is broken at the moment as the new solver (in #167) only has access to the Git clone and opam-repository. I guess we'll need to implement fetching of pin-depends manually somehow.
from ocaml-ci.
Title changed to reflect that this is now a more general issue.
from ocaml-ci.
pin-depends with a commit hash is working again now. I don't think we'll support pinning to branches any time soon.
from ocaml-ci.
It seems like there is an issue when pinning to a repo where the opam file is not at the root (maybe it's unrelated to pinning?), it can't find the opam file thus fails during analysis.
from ocaml-ci.
Do you have a link to an example? ocaml-ci currently assumes the opam file is at /$name.opam
, although I think opam also allows some other forms.
from ocaml-ci.
Here's one: https://ci.ocamllabs.io/github/vocal-project/vocal/commit/363a91d49e1e89c202d5656c088f3a8ca538f68c/variant/(analysis)
The opam file is under a opam/
folder
from ocaml-ci.
I've pushed a fix - should be working now!
from ocaml-ci.
Related Issues (20)
- EXPERIMENTAL: (lint-opam) (failure: No *.opam files found!)
- Web UI reports "Oops! Internal Server Error" when job hasn't started yet
- Missing `.ocamlformat` version line causes analysis failure HOT 1
- failed: Failed to get head of ocaml/opam-repository:refs/heads/master HOT 1
- CI failure on 5.1 32-bit builders HOT 1
- OCaml 5.2 support HOT 2
- Add additional opam-repository / Dockerfile customization? HOT 3
- Naming of builders
- FreeBSD CI failures HOT 8
- debian-12 x86_32 workers fail due to old capnproto version HOT 6
- `lint-doc` job failing on installation of `conf-git` HOT 1
- `lint-fmt` job fails with "Error: Program ocamlformat not found in the tree or in PATH" HOT 3
- Web UI doesn't show log output, but CLI does
- `lint-fmt` failing with file permission error HOT 3
- Promote FreeBSD and MacOS to non-exprimental HOT 3
- HTTP 500 error on CI run HOT 2
- Local Opam Vars Job Causing Outages HOT 2
- Upgrade to opam 2.2
- ocaml CI fails when a tested package transitively depends on another one. HOT 2
- Support builds on RISC-V 64 bits, Linux (a Tier 1 ocaml platform)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocaml-ci.