Skip to content

Added dpm package .dspec - #196

Open
vincentparrett wants to merge 2 commits into
project-jedi:masterfrom
vincentparrett:master
Open

Added dpm package .dspec#196
vincentparrett wants to merge 2 commits into
project-jedi:masterfrom
vincentparrett:master

Conversation

@vincentparrett

Copy link
Copy Markdown

Hi

I would love to see JCL on DPM - This PR is to help that happen. I created a package dspec file for jcl.

To publish packages, sign up on https://delphi.dev - if you don't sign up with a social login, you will need to enable 2fa. Then from the profile menu, "Manage Organisations" - create a "Project Jedi" organisation - this will be the owner of the packages (better than tying them to one person). Then create an API Key and set the packages owner to the "Project Jedi" organisation.

Once the PR is merged, run the gitconfig.bat file - that installs a postcommit hook that will update the Jedi.JCL.dspec file with the current commit hash (adds traceability to packages).

Install the DPM client - https://delphi.dev/downloads

Open the DSpecCreator tool and open the Jedi.JCL.dspec - adjust the platforms as needed on the TargetPlatforms tab - if you change anything, save and commit the change and re-open the file in DspecCreator to pick up the new commit hash (the post commit hook updates the dspec file automatically).

If you have a code signing certificate available you can configure the Signing tab - (note that Azure Key Vault support is not tested yet).

On the Pack tab, set an output folder (anywhere) and click on Pack. This will generate the .dpkg files.

Next, on the Test tab, check the compiler versions you have available on your machine and click Test. This attempts to install the packages into the package cache (it removes them after the test).

If all goes well, the next step is to upload the packages. On the Upload tab, fill in your API Key and click upload.

Once packages are uploaded, it takes a few minutes before they show up on the site as they need to be checked, av scanned and then repository signed (which also counter signed the author signature if present).

I know this sounds complicated but most of it is first time setup stuff. If you need any help just let me know (allowing for timezone differences!).

If you prefer the command line, everything the dspeccreator can do (apart from create the dspec file) can also be done from the dpm cli tool.

Docs are here - https://docs.delphi.dev/

Note that DPM uses Semantic Versioning - so I used the latest release version as 2.8.9330 - obviously the repo has a bunch of commits since then so consider making a new release first ;) - with semantic versioning, you so need to be more strickt about when version numbers are bumped - in general - non interface changes, bump the patch, interfaces changes, bump minor, major or breaking changes, bump the major version. Semver also makes it really easy to create alpha or beta releases - e.g 3.0.0-alpha.1 3.0.0-beta.2 etc

I know that some people do not like Semantic versioning - but that's probably because they tried to use it for an application - but for libraries it makes a lot of sense.

Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant