pkm-api issueshttps://gitlab.ow2.org/decoder/pkm-api/-/issues2022-03-01T12:12:10Zhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/35Frama-Clang tool saves many more files in the PKM than necessary.2022-03-01T12:12:10ZEduardo Martín IzquierdoFrama-Clang tool saves many more files in the PKM than necessary.When I run Frama-Clang for a Project (for example OpenCV), it seems to save mucho more files in the PKM than neccesary. After parsing the project with Frama-Clang, I run a GET request to `http://localhost:8080/code/cpp/sourcecode/opencv ...When I run Frama-Clang for a Project (for example OpenCV), it seems to save mucho more files in the PKM than neccesary. After parsing the project with Frama-Clang, I run a GET request to `http://localhost:8080/code/cpp/sourcecode/opencv ` and I'm getting all these scripts (just a fraction of them, watch at the end scripts at /usr):
![imagen](/uploads/0bda87cc741d79b2fcf8791672bde34b/imagen.png)
This change is negatively affecting code-summarization and variable-misuse tools as they do not need these files.
Thanks!https://gitlab.ow2.org/decoder/pkm-api/-/issues/34Git clone fails with HTTP 500 on OW2 joram project2022-02-25T08:35:15ZPierre-Yves GibelloGit clone fails with HTTP 500 on OW2 joram projectTrying to create a new project, then clone OW2 Joram code from Git manager:
https://gitlab.ow2.org/joram/joram.git
The frontend displays a window with the following error:
![git_500](/uploads/d3b40d62ac28e52e43c81503f2cdb777/git_500.png...Trying to create a new project, then clone OW2 Joram code from Git manager:
https://gitlab.ow2.org/joram/joram.git
The frontend displays a window with the following error:
![git_500](/uploads/d3b40d62ac28e52e43c81503f2cdb777/git_500.png)
Project available at https://gitlab.ow2.org/joram/joram . A local command-line Git clone works perfectly.Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/33"Git manager" from the API should tag the documents as 'Document" instead of ...2022-01-24T09:00:29ZDarwin Gonzalez"Git manager" from the API should tag the documents as 'Document" instead of 'Doc'There is an issue when the git manager clone a repo. The documents inserted are tagged as 'Doc' instead of 'Documents'. This break the GUI because due to some compatibility issues between artifacts and renderers, as you can see below.
!...There is an issue when the git manager clone a repo. The documents inserted are tagged as 'Doc' instead of 'Documents'. This break the GUI because due to some compatibility issues between artifacts and renderers, as you can see below.
![image](/uploads/1dd096875bb3c71a158ed66f48772af2/image.png)
If you go to the database and update the type of the artifact from 'Doc' to 'Document' the issue is fixed.
So we think that some changed should be made by the git manager in order to tag correctly these artifacts on creation time.
Also, as we have talked about, we should change the 'Doc' type to something more detail, for example 'ASFM'.
So please @gmouchard, let us know (@rcossi and I) when this changes will be available, and we will implement the changes need it on the GUI.
Thanks in advance.Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/32Typo in Enum in [GET] /invocations/dbName2021-12-01T16:59:11ZIgnacio MansanetTypo in Enum in [GET] /invocations/dbNameDear Gilles,
In the endpoint [GET]/invocations/{dbName}, the field invocationStatus accepts the value runing instead of ruNNing.Dear Gilles,
In the endpoint [GET]/invocations/{dbName}, the field invocationStatus accepts the value runing instead of ruNNing.Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/31docker build fails with access denied error2021-11-24T14:30:36ZPierre-Yves Gibellodocker build fails with access denied errorThe pkm-api "docker build" failed with an access denied message:
```
Step 29/39 : FROM $PKM_IMAGE_BUILD_TAG AS build
pull access denied for pkm, repository does not exist or may require 'docker login': denied: requested access to the re...The pkm-api "docker build" failed with an access denied message:
```
Step 29/39 : FROM $PKM_IMAGE_BUILD_TAG AS build
pull access denied for pkm, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
ERROR: Service 'pkm' failed to build : Build failed
```https://gitlab.ow2.org/decoder/pkm-api/-/issues/30Frama-C bogus column numbers in source code locations2021-10-22T06:01:35ZGilles MouchardFrama-C bogus column numbers in source code locationsFrama-C generates out-of-range column numbers (pos_cnum) in source code locations: e.g. 106170.Frama-C generates out-of-range column numbers (pos_cnum) in source code locations: e.g. 106170.Armand PUCCETTIArmand PUCCETTIhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/29Files and folder naming problems for Windows OS2021-10-17T05:00:51ZFernando Pastor RicosFiles and folder naming problems for Windows OSHi @gmouchard and @armand ,
1. I was looking with @borjad that the process of cloning the pkm-api in a Windows environment fails due to a checkout error:
<details><summary>Click to expand</summary>
$ git clone https://gitlab.ow2.org/de...Hi @gmouchard and @armand ,
1. I was looking with @borjad that the process of cloning the pkm-api in a Windows environment fails due to a checkout error:
<details><summary>Click to expand</summary>
$ git clone https://gitlab.ow2.org/decoder/pkm-api.git
Cloning into 'pkm-api'...
remote: Enumerating objects: 46785, done.
remote: Counting objects: 100% (2808/2808), done.
remote: Compressing objects: 100% (1485/1485), done.
remote: Total 46785 (delta 1741), reused 2151 (delta 1215), pack-reused 43977
Receiving objects: 100% (46785/46785), 575.97 MiB | 2.09 MiB/s, done.
Resolving deltas: 100% (27313/27313), done.
error: invalid path 'documentation/images/Thumbs.db:encryptable'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
</details>
Error is aiming to "documentation/images/Thumbs.db:encryptable" but maybe there are more errors with other files.
2. Because cloning the project fails, @borjad tried to download the pkm-api as a ZIP file, and extract it into a Windows folder.
But then a new problem appear with the folder:
https://gitlab.ow2.org/decoder/pkm-api/-/tree/master/documentation/workspace/common/aux
It seems that "aux" name does not fit with the Windows naming conventions:
https://docs.microsoft.com/en-ca/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN#naming_conventions
3. Clone and deploy everything in a Ubuntu machine seems to work, but some files and folder naming are provoking problems if someone want to work with a Windows environment.
I'm not sure if this should be solved or documented, but I open this issue to inform you :DGilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/28frama-c -wp - Error2021-06-04T12:56:25ZArmand PUCCETTIframa-c -wp - ErrorWhen calling the Frama-C tool with option -wp, a series of faults is generated and the proof is not done:
The compile command is wrong. It should invoke 'frama-c -wp' instead of c++ (see warning line 5 below).
_id: "60ae471a862de10055...When calling the Frama-C tool with option -wp, a series of faults is generated and the proof is not done:
The compile command is wrong. It should invoke 'frama-c -wp' instead of c++ (see warning line 5 below).
_id: "60ae471a862de1005567f0fc"
tool: "Frama-C"
nature of report: "Proof report"
start running time: "2021-05-26T13:03:22.000Z"
end running time: "2021-05-26T13:03:22.000Z"
messages:
0: "[FileSystem] Creating temporary root directory"
1: "[FileSystem] Created temporary root Directory '/tmp/pkm-ayJXcJ'"
2: "[FileSystem] Creating Directory '/tmp/pkm-ayJXcJ/src/java/main/com/devonfw/application/mtsj/usermanagement/service/api/rest'"
3: "[FileSystem] Creating Directory '/tmp/pkm-ayJXcJ'"
4: "[FileSystem] Created Directory '/tmp/pkm-ayJXcJ'"
5: "[FileSystem] Writing File '/tmp/pkm-ayJXcJ/examples_vector2.c' (utf-8 encoding)"
6: "[FileSystem] Wrote File '/tmp/pkm-ayJXcJ/examples_vector2.c'"
7: "[FileSystem] Created Directory '/tmp/pkm-ayJXcJ/src/java/main/com/devonfw/application/mtsj/usermanagement/service/api/rest'"
8: "[FileSystem] Writing File '/tmp/pkm-ayJXcJ/src/java/main/com/devonfw/application/mtsj/usermanagement/service/api/rest/UsermanagementRestService.java' (utf-8 encoding)"
9: "[FileSystem] Wrote File '/tmp/pkm-ayJXcJ/src/java/main/com/devonfw/application/mtsj/usermanagement/service/api/rest/UsermanagementRestService.java'"
10: "[FileSystem] Creating Directory '/tmp/pkm-ayJXcJ'"
11: "[FileSystem] Created Directory '/tmp/pkm-ayJXcJ'"
12: "[FileSystem] Writing File '/tmp/pkm-ayJXcJ/compile_commands.json' (utf8 encoding)"
13: "[FileSystem] Wrote File '/tmp/pkm-ayJXcJ/compile_commands.json'"
14: "Running 'frama-c' '-print-share-path'"
15: "Frama-C share path is '/pkm-api/.opam/4.08.1/share/frama-c'"
16: "[FileSystem] Deleting root Directory '/tmp/pkm-ayJXcJ'"
17: "[FileSystem] Deleted root Directory '/tmp/pkm-ayJXcJ'"
18: "putting a Log document"
warnings:
0: "compile command for 'examples_vector2.c' not found"
1: "defaulting to {"
2: " "directory": "/tmp/pkm-ayJXcJ","
3: " "file": "examples_vector2.c","
4: " "arguments": ["
5: " "/usr/bin/c++","
6: " "-I.""
7: " ]"
8: "} as compile command"
status: false
errors:
0: "{"name":"TypeError","message":"Cannot read property 'join' of undefined"}"
type: "Log"Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/27frama-c -Eva - too many options2021-11-10T07:13:21ZArmand PUCCETTIframa-c -Eva - too many optionsWhen invoking Frama-c -Eva through the GUI, too many options are used. See figure attached.
Please remove options 9 to 12 as they are redundant with options 3 to 5.
![Screen_Shot_2021-05-26_at_15.08.00](/uploads/ffca3dc343d1e6f1ab9abbebc...When invoking Frama-c -Eva through the GUI, too many options are used. See figure attached.
Please remove options 9 to 12 as they are redundant with options 3 to 5.
![Screen_Shot_2021-05-26_at_15.08.00](/uploads/ffca3dc343d1e6f1ab9abbebcb3a2287/Screen_Shot_2021-05-26_at_15.08.00.png)Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/26Documentation should mention side effects of updates on other collections2021-04-19T11:34:01ZPierre-Yves GibelloDocumentation should mention side effects of updates on other collectionsSome updates in collections may affect related information in other collections: for example, a POST on RawSourcecode may delete comments or annotations corresponding to the affected code.
It can be considered normal (the following comm...Some updates in collections may affect related information in other collections: for example, a POST on RawSourcecode may delete comments or annotations corresponding to the affected code.
It can be considered normal (the following comment was posted by @gmouchard in https://gitlab.ow2.org/decoder/frontend/-/issues/25#note_72182 ):\
"Every time a raw source code gets updated, related source code (AST), comments, and annotations are automatically invalidated in the PKM. It's not a PKM bug. This behavior has always existed and it aims to ensure coherency between source code files and their abstract representations. The tools that are able to create these artefacts should be run again so that they get properly recreated: javaparser for Java, Frama-C parser for C, and Frama-Clang for C++."
This should be documented, along with specific details in OpenApi yaml doc (for each update, list of *what* is really updated - so the caller knows what she does when posting stuff).https://gitlab.ow2.org/decoder/pkm-api/-/issues/25OpenJml tool: dependency resolution errors2021-09-16T07:33:20ZPierre-Yves GibelloOpenJml tool: dependency resolution errorsOpenJml tries to resolve external dependencies (packages and classes), and they are probably not in the classpath: it is a problem of integrating OpenJml with the tool, as it requires access to the whole java project classpath (and not j...OpenJml tries to resolve external dependencies (packages and classes), and they are probably not in the classpath: it is a problem of integrating OpenJml with the tool, as it requires access to the whole java project classpath (and not just one file).
Moreover, this includes internal and external dependencies: the dependency tree may have to be download (using maven and/or other build mechanism(s) ?).
Concerning internal dependencies, scanning the whole project would be sufficient: or even trying to guess which files to scan - at least, imports + current package ?
The way OpenJml itself resolves dependencies is (scarcely) described here:
http://www.openjml.org/documentation/paths.shtml
Example of OpenJml errors returned by OpenJml tool (these ones concern internal dependencies: one package import, and one class reference), as stored in "Logs" PKM collection:
```
{
"_id" : ObjectId("606eb767bbf80a0042e4b707"),
"tool" : "OpenJML typeChecking",
"details" : {
"numberOfErrors" : 2,
"numberOfWarings" : 0
},
"status" : true,
"type" : "Log",
"messages" : [
"java%2Fmtsj%2Fapi%2Fsrc%2Fmain%2Fjava%2Fcom%2Fdevonfw%2Fapplication%2Fmtsj%2Fbookingmanagement%2Fcommon%2Fapi%2Fto%2FBookingCto.java Downloaded Succesfully!",
"OpenJML Analysis Success!",
"OpenJML Results Parsed Success!"
],
"warnings" : [],
"errors" : [
{
"line" : 9,
"messageType" : "Error",
"sourceCode" : "import com.devonfw.module.basic.common.api.to.AbstractCto;",
"description" : " package com.devonfw.module.basic.common.api.to does not exist"
},
{
"line" : 14,
"messageType" : "Error",
"sourceCode" : "public class BookingCto extends AbstractCto {",
"moreInfo" : "symbol: class AbstractCto",
"description" : " cannot find symbol"
}
],
"nature of report" : "OpenJML Analysis report",
"start running time" : ISODate("2021-04-08T07:57:25.000Z"),
"end running time" : ISODate("2021-04-08T07:57:27.000Z")
}
```
Note: the current Dockerfile for OpenJml tool includes hard-coded download of dependencies for a specific demo scenario: this has to be replaced by a generic mechanism applicable to any project.https://gitlab.ow2.org/decoder/pkm-api/-/issues/24GET /files/{dbName} never returns file content2021-03-15T13:08:16ZPierre-Yves GibelloGET /files/{dbName} never returns file contentThe issue appears on the ow2-decoder hosted PKM, but all was OK on a local version downloaded on March 2.
After tunneling port 8080 to the OW2 server (ssh ow2-decoder.xsalto.net -L 8080:localhost:8080 -N), and logging into the PKM (to o...The issue appears on the ow2-decoder hosted PKM, but all was OK on a local version downloaded on March 2.
After tunneling port 8080 to the OW2 server (ssh ow2-decoder.xsalto.net -L 8080:localhost:8080 -N), and logging into the PKM (to obtain a key), try the following request (replace the key with appropriate value):
```
curl -X GET "http://pkm-api_pkm_1:8080/files/jmlgen-mythaistar?abbrev=false&skip=0&limit=0" -H "accept: application/json" -H "key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInVzZXJfcGFzc3dvcmQiOiJjTjZqSzdlVTViTTMiLCJpYXQiOjE2MTU4MDA4MjJ9.RhqKlE_ldUSqHAInxaRXtE_3orLuCkXZ4a8Unzk8q_0"
```
Files are returned, but with no content (changing the value of "abbrev" from false to true changes nothing):
```
[{"rel_path":"java/mtsj/api/src/main/java/com/devonfw/application/mtsj/bookingmanagement/common/api/to/InvitedGuestEto.java","format":"text","encoding":"utf-8","type":"Code","mime_type":"text/x-java-source","git_repository_url":"","git_commit_id":""},{"rel_path":"java/mtsj/api/src/main/java/com/devonfw/application/mtsj/bookingmanagement/common/api/to/BookingEto.java","format":"text","encoding":"utf-8","type":"Code","mime_type":"text/x-java-source","git_repository_url":"","git_commit_id":""},
[ ... ]
```
Note that retrieving a single file using GET /files/{dbName}/{filename} works perfectly.Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/23Provide releases for production deployment (and API versioning)2021-11-05T17:16:12ZPierre-Yves GibelloProvide releases for production deployment (and API versioning)The PKM is currently deployed in production on a server at OW2, and the development goes on.
It seems impossible to guess which version of the API is running on the production server, and if it is compatible or not with the latest devel...The PKM is currently deployed in production on a server at OW2, and the development goes on.
It seems impossible to guess which version of the API is running on the production server, and if it is compatible or not with the latest development version.
Releases with stable APIs are necessary: only tagged releases should be deployed on the production server(s).https://gitlab.ow2.org/decoder/pkm-api/-/issues/22move UPV tools outside the PKM repository2021-09-29T07:45:41ZMartin Hamantmove UPV tools outside the PKM repositoryToday I did try to submit a [merge request](https://gitlab.ow2.org/decoder/pkm-api/-/merge_requests/25) for javaparser, and I realized that as soon as a file is changed there, it triggers the build for all docker images (for the new bran...Today I did try to submit a [merge request](https://gitlab.ow2.org/decoder/pkm-api/-/merge_requests/25) for javaparser, and I realized that as soon as a file is changed there, it triggers the build for all docker images (for the new branch). I think we could move UPV tools outside the PKM repository to prevent this.
/cc @imansanet @gmouchardMartin HamantMartin Hamanthttps://gitlab.ow2.org/decoder/pkm-api/-/issues/21CORS and key header2021-02-03T15:29:01ZMartin HamantCORS and key headerHello @gmouchard, @darwingonzalez,
With Darwin we're starting to test the frontend on top of the proxy
configuration.
The frontend is at https://decoder-frontend.ow2.org/
and the backend tools API are at https://decoder-tool.ow2.org/
...Hello @gmouchard, @darwingonzalez,
With Darwin we're starting to test the frontend on top of the proxy
configuration.
The frontend is at https://decoder-frontend.ow2.org/
and the backend tools API are at https://decoder-tool.ow2.org/
For instance https://decoder-frontend.ow2.org/pkm/
It means that we will get under the scope of CORS, eg. the webapp
runs in a different domain than the backend resources.
Of course, we could have kept both endpoint under the same domain but
I still think it's better to separate the frontend and the backend. If
you have a different feeling about it it can be discussed of course.
Back to the issue, if you try to login to the frontend, you'll notice
that `/pkm/user/login` happen smoothly, but when it come to subsequent
call with the `key` header, the browser gets denied because of CORS, per
the pkm API header answer:
with `Access-Control-Allow-Headers: Origin, Content-Type, Accept`
If we want this to work, from my understanding, the pkm API should
answer with `Access-Control-Allow-Headers` that includes the `key`
header field name, as :
`Access-Control-Allow-Headers: Origin, Content-Type, Accept, key`
@gmouchard, if it sounds consistent to you could you add the field in
the `Access-Control-Allow-Headers` header in the response from the PKM ?
Regards,Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/20run pkm runtime as dedicated user instead of root2021-02-03T15:29:14ZMartin Hamantrun pkm runtime as dedicated user instead of rootIn the same manner @chalendar mitigated this in decoder/ner_tool#2, we need to deal with the PKM container.
```
UID PID PPID C STIME TTY TIME CMD
--------------------------...In the same manner @chalendar mitigated this in decoder/ner_tool#2, we need to deal with the PKM container.
```
UID PID PPID C STIME TTY TIME CMD
-------------------------------------------------------------------------------------------------
root 26098 26041 0 Jan06 ? 00:00:00 /bin/bash ./docker/start.sh
root 26405 26098 0 Jan06 ? 00:00:00 bash ./start_server.sh
root 26409 26405 0 Jan06 ? 00:00:00 npm
root 26546 26409 0 Jan06 ? 00:00:00 sh -c node --max-old-space-size=8192 index.js
root 26547 26546 0 Jan06 ? 00:00:02 node --max-old-space-size=8192 index.js
```Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/19Bug in traceability matrix schema2021-02-12T20:44:54ZGaël de ChalendarBug in traceability matrix schemaI don't know why but my tests of the traceability matrix that were working before the holidays do not work anymore. When I call `examples/test_rest_vector2_tm_init.sh`, it `fails with:
```
pkm_1 | In Schema File '/pkm-api/schema...I don't know why but my tests of the traceability matrix that were working before the holidays do not work anymore. When I call `examples/test_rest_vector2_tm_init.sh`, it `fails with:
```
pkm_1 | In Schema File '/pkm-api/schemas/pkm-metamodels/pkm-traceability-matrix-schema-2.0.0.json':strict mode: unknown keyword: "similarity"
pkm_1 | PKM_BadRequest [Error]: Bad Request:{
pkm_1 | "name": "Error",
pkm_1 | "message": "Internal Server Error:\"In Schema File '/pkm-api/schemas/pkm-metamodels/pkm-traceability-matrix-schema-2.0.0.json':strict mode: unknown keyword: \\\"similarity\\\"\""
pkm_1 | }
pkm_1 | at Function.from (/pkm-api/core/error.js:90:10)
pkm_1 | at PKM.BadRequest (/pkm-api/core/pkm.js:1262:51)
pkm_1 | at /pkm-api/core/insert_update_documents.js:62:17
pkm_1 | at Array.forEach (<anonymous>)
pkm_1 | at PKM.<anonymous> (/pkm-api/core/insert_update_documents.js:41:14)
pkm_1 | at new Promise (<anonymous>)
pkm_1 | at PKM.insert_update_documents (/pkm-api/core/insert_update_documents.js:34:9)
pkm_1 | at PKM.insert_traceability_matrix (/pkm-api/core/insert_traceability_matrix.js:31:14)
pkm_1 | at /pkm-api/server/services/TraceabilityMatrixService.js:199:9
pkm_1 | at processTicksAndRejections (internal/process/task_queues.js:97:5) {
pkm_1 | code: 400
pkm_1 | }
p
```
I checked the schema and the sent data with https://www.jsonschemavalidator.net/ and they seem to be valid.Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/18Docker build sequence should avoid recompilinc clang too often2021-02-15T10:20:03ZGaël de ChalendarDocker build sequence should avoid recompilinc clang too oftenThe current docker build procedure builds clang from scratch very often when tiny changes are made. This is horribly time consuming. It should be avoided as much as possible.
Clang should be compiled only if it changes.
A possibility wo...The current docker build procedure builds clang from scratch very often when tiny changes are made. This is horribly time consuming. It should be avoided as much as possible.
Clang should be compiled only if it changes.
A possibility would be to build it as a separate container/image and make this one inherit from it. But other solutions can be better.Gilles MouchardGilles Mouchardhttps://gitlab.ow2.org/decoder/pkm-api/-/issues/17Wrong runner used for CI2020-11-03T11:33:25ZGaël de ChalendarWrong runner used for CIThis project still uses the gitlab-shared-runner runner while it should use Docker DinD (#28).This project still uses the gitlab-shared-runner runner while it should use Docker DinD (#28).Martin HamantMartin Hamanthttps://gitlab.ow2.org/decoder/pkm-api/-/issues/16Docker cache wrongly invalidated2020-11-02T11:33:20ZGaël de ChalendarDocker cache wrongly invalidatedBuilding with `docker-compose build` installs a lot of dependencies and build things way too often. This is mainly due to the following line in several `Dockerfile`s:
```
COPY . /pkm-api
```
Due to this line, each time a file change any...Building with `docker-compose build` installs a lot of dependencies and build things way too often. This is mainly due to the following line in several `Dockerfile`s:
```
COPY . /pkm-api
```
Due to this line, each time a file change anywhere in the root folder (even files not from the repository like test logs), then the `COPY` line and all those below are invalidated.
Only what is strictly necessary should be copied and dependencies should be installed as soon as possible to avoid repeated installations and compilations.
Here are some pointers documenting this problem:
- https://www.ctl.io/developers/blog/post/more-docker-image-cache-tips/
- https://runnable.com/blog/9-common-dockerfile-mistakes
# Steps to reproduce
```bash
$ git clone git@gitlab.ow2.org:decoder/pkm-api.git
$ docker-compose build
# [… everything builds …]
$ docker-compose build
# [… everything is retrieved from cache …]
$ echo "build now" >> touch.txt
$ docker-compose build
# [… a lot of things build again while they should not …]
```Gilles MouchardGilles Mouchard