Added dpm package .dspec - #196
Open
vincentparrett wants to merge 2 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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