Jump to content
Vincent Parrett

DPM Package Manager Progress - 8 March 2021

Recommended Posts

Hi All

 

Small progress update on DPM - https://github.com/DelphiPackageManager/DPM - some tweaks to make it possible to use DPM with projects that use runtime packages. 

 

v0.1.54-alpha Release https://github.com/DelphiPackageManager/DPM/releases/tag/v0.1.54-alpha

 

Package compilation will now build version info if the package dproj has it enabled. There doesn't appear to be a way to pass that info into msbuild, so I plan to look at updating the dproj file with the correct version info before compilation.

 

Implemented Copy Local feature for runtime packages. For projects that use runtime packages, dpm packages that produce runtime packages will be copied to the output folder.

 

Copy Local is still a little rough around the edges... it doesn't detect if the project actually references the bpl's - that's more difficult than it sounds due to differences between dcp and bpl filenames (libsufffix comes in play here). So for now, you may end up with extra bpl files in your output folder if you use runtime packages.

 

Fixed project group support on install command.

 

Improved handling of relative project file paths.

 

Cleaned up logging.

 

Added batch file for downloading dev dependencies (only needed for developing DPM).

 

  • Thanks 3

Share this post


Link to post
3 hours ago, Vincent Parrett said:

I plan to look at updating the dproj file with the correct version info before compilation

If you are interested I can provide the relevant code from Project Magician. Not sure how it fits into the existing DPM code, though.

 

I use ProjectMagicianCmd successfully for exactly that purpose with build servers where FinalBuilder is not available.

 

  • Like 1

Share this post


Link to post
16 minutes ago, Uwe Raabe said:

If you are interested I can provide the relevant code from Project Magician. Not sure how it fits into the existing DPM code, though.

I have a feeling Vincent might already have code that does this from "some of his other projects" 🙂

Share this post


Link to post
5 minutes ago, Anders Melander said:

I have a feeling Vincent might already have code that does this from "some of his other projects"

May be, and that would probably be best.

My knowledge is just that FinalBuilder doesn't change the dproj files, but rather creates proper rc files to achieve that.

 

There might also be found some code in DevExtensions regarding this subject.

Share this post


Link to post
2 hours ago, Uwe Raabe said:

If you are interested I can provide the relevant code from Project Magician. Not sure how it fits into the existing DPM code, though.

 

I use ProjectMagicianCmd successfully for exactly that purpose with build servers where FinalBuilder is not available.

Definitely interested. I have code already in DPM for reading values from the dproj (dealing with the awful config inheritance setup) but not for writing... the code is a hacked version of what we have in FinalBuilder, which is far from perfect.

Share this post


Link to post
2 hours ago, Anders Melander said:

I have a feeling Vincent might already have code that does this from "some of his other projects" 🙂

I do, but there's always a chance to learn from others and improve my code 😉

  • Like 1

Share this post


Link to post

Here we go: SetVersionInfo.zip

 

Simply call TSetVersionInfo.SetVersionInfo(<Dproj-FileName>, <VersionString>).

 

The current implementation sets the version info in the base configuration only and removes any version info entries in child configurations (just like Project Magician does). If you need to set different version info for each build configuration or platform I might get that implemented, too. I just need to know the rules.

 

The unit uSetVersionInfo.XML is more or less a copy of NativeXML, renamed to allow multiple instances in different design packages.

Share this post


Link to post

Thanks. 

6 minutes ago, Uwe Raabe said:

The current implementation sets the version info in the base configuration only and removes any version info entries in child configurations (just like Project Magician does). If you need to set different version info for each build configuration or platform I might get that implemented, too. I just need to know the rules.

Only need the base config.. at the moment I'm only building the Release config, if users need to debug then there is the option to usesource when installing (adds the source to search paths, as it did before I implemented compilation). 

 

7 minutes ago, Uwe Raabe said:

The unit uSetVersionInfo.XML is more or less a copy of NativeXML, renamed to allow multiple instances in different design packages.

I'm using msxml already in the project as I prefer to use XPath for selecting nodes. 

 

I will take a look at this in the next few days. I'm migrating FinalBuilder 9 dev over to using DPM (for non visual libs for now) so I'm dogfooding as I develop.

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×