Project package dependencies does not resolves as expected
Original Reporter info from Mantis: MrGeorge @mr.chief
-
Reporter name: George
Original Reporter info from Mantis: MrGeorge @mr.chief
- Reporter name: George
Description:
Found strange behaviour, that looks like a bug.
Part 1 - making local dependencies for each project.
We can put our dependencies in project subfolder:
dependencies
dependencies\mormot
Now if I open mormot_base.lpk from dependencies\mormot\Packages and click "use" - "add to project", package will appear in project inspector as dependency.
lpi file will contain information about new dependency:
<Item1>
<PackageName Value="mormot_base"/>
</Item1>
I want to make this dependency local to one project.
From project inspector, I perform right click on mormot_base and choose option "store file name as default for this dependency".
Now, lpi file contain proper relative path:
<Item1>
<PackageName Value="mormot_base"/>
<DefaultFilename Value="..\dependencies\mormot\Packages\mormot_base.lpk"/>
</Item1>
But for some reason, this path will not be used as default.
despite that project has local lpk that properly listed in lpi file.
This is really looks like a bug.
Part 2 - global dependency store.
I Created global dependencies folder, for multiple versions of each one:
lazarus-packages
lazarus-packages\mormot\master\ // <- only this one connected to git repo
lazarus-packages\mormot\1.18.6247<br/>
lazarus-packages\mormot\1.18.6132\
Opened lpk from each version, ensured that each lpk contain proper version (1.18.6247 and 1.18.6132).
Each time when we open lpk package, lazarus will remember package name + version + path.
So, now I can see both packages from menu - package - package links.
I added dependency to my project from project inspector - right click on dependencies, find mormot_base and specify "minimum" and "maximum" version.
For project 1 I set minimum and maximum version to 1.18.6132.
For project 2 I set minimum and maximum version to 1.18.6247.
Now, each project requests exact mormot_base version and lazarus know where it is (checked menu - packages - package links).
But for some reason, Lazarus can't properly load requested package for second project (project - close project and open another).
I get error: The following package failed to load: mormot_base (>=1.18.6247) (<=1.18.6247).
But if I re-open project again, package will be loaded without error.