{"id":17766046,"url":"https://github.com/garrigue/lablgtk","last_synced_at":"2025-04-13T08:40:46.037Z","repository":{"id":2759862,"uuid":"47376468","full_name":"garrigue/lablgtk","owner":"garrigue","description":"LablGTK 2 and 3: an interface to the GIMP Tool Kit","archived":false,"fork":false,"pushed_at":"2024-05-20T09:08:47.000Z","size":11565,"stargazers_count":89,"open_issues_count":37,"forks_count":42,"subscribers_count":6,"default_branch":"lablgtk3","last_synced_at":"2024-05-20T10:29:19.154Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://garrigue.github.io/lablgtk","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/garrigue.png","metadata":{"files":{"readme":"README.dune.md","changelog":"CHANGELOG.API","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-04T02:43:19.000Z","updated_at":"2024-05-20T10:29:24.315Z","dependencies_parsed_at":"2024-01-31T00:28:49.798Z","dependency_job_id":"67a0228c-342f-4eac-8b20-42e3a8df5420","html_url":"https://github.com/garrigue/lablgtk","commit_stats":{"total_commits":2762,"total_committers":46,"mean_commits":60.04347826086956,"dds":0.444243301955105,"last_synced_commit":"7e41440382b064bf3cf40f6efff493ce05250a84"},"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrigue%2Flablgtk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrigue%2Flablgtk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrigue%2Flablgtk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/garrigue%2Flablgtk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/garrigue","download_url":"https://codeload.github.com/garrigue/lablgtk/tar.gz/refs/heads/lablgtk3","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248686058,"owners_count":21145413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-26T20:22:14.271Z","updated_at":"2025-04-13T08:40:46.015Z","avatar_url":"https://github.com/garrigue.png","language":"OCaml","funding_links":[],"categories":["Libraries And Frameworks"],"sub_categories":["OCaml and ReasonML"],"readme":"This file describes the Dune setup for lablgtk and the release\ninstructions.\n\n## Dune setup\n\nDune takes care of all the C-stub needed to compile lablgtk almost\nautomatically. The `src/dune` file is mostly self-describing.\n\n### Packaging choices and C library version detection\n\nThe main choice we had to do is how to structure the OPAM packages. In\nlablgtk2, there was a single package, however it would build different\nbinaries based on what it could detect. This was a bit fragile due to\nlack of reproducible, thus in lablgtk3 each C library has its own OPAM\npackage.\n\nWe still depend on the `conf-packages`, but note however that the\nbuild system does it own versioned C library check.\n\nThe discussion at the caml-list\nhttps://sympa.inria.fr/sympa/arc/caml-list/2018-12/msg00017.html\nprovides some more insight on this choice.\n\nThe `dune_config` tool is a simple wrapper that can be used to query\n`pkg-config` for flags and version checks.\n\n### Auto-generation of files\n\nThe lablgtk3 build uses the `varcc` and `propcc` scripts to\nauto-generate some files. The rules for such files are in\n`dune-enum.sexp` and `dune-prop.sexp`. These files could be also\nauto-generated in the future using Dune's promote mechanism.\n\n## How to release a new version of lablgtk to OPAM\n\n**Quick release instructions:** Run `git tag -a` + `dune-release`.\n\nThe preferred workflow to release a new set of OPAM packages is to use\n`dune-release`.\n\n### Format of the CHANGES.md file\n\n`dune-release` will take each top-level markdown item as the changelog\nfor the current version, thus be aware of not introducing `#` markers.\n\n### Detailed notes\n\nThe first (and most important) step is to tag the release and push it\nto the main repository.\n\nWe recommend you do this manually. As `dune-release` uses `git\ndescribe` to gather versioning information, your tag must be\nannotated. Using `git tag -a` or `git tag -s` will do the job. Please\nadd the version changes to the tag annotation message.\n\nYou can also use `dune-release tag`, which will try to infer the\ntag information from `CHANGES.md`, however the current heuristics\nseem too fragile and the changes list may not be properly updated.\n\nOnce the tag is in place, calling `dune-release` will build, lint, run\nthe tests, create the opam package, upload the archives and\ndocs to the release page, and submit a pull request to the OPAM\nrepository.\n\nUnder the hood, `dune-release` executes the following 4 commands:\n\n```\ndune-release distrib       # Create the distribution archive\ndune-release publish       # Publish it on the WWW with its documentation\ndune-release opam pkg      # Create an opam package\ndune-release opam submit   # Submit it to OCaml's opam repository\n```\n\nIt is often useful to run the commands separately as to have better\ncontrol of the release process.\n\nNote that you will need the proper permissions for the `publish` step,\nincluding setting a Github access token, see `dune-release help\nfiles` for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarrigue%2Flablgtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgarrigue%2Flablgtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgarrigue%2Flablgtk/lists"}