Title: Nightly builds · Issue #1332 · processing/processing4 · GitHub
Open Graph Title: Nightly builds · Issue #1332 · processing/processing4
X Title: Nightly builds · Issue #1332 · processing/processing4
Description: Premise: We would like to distribute builds of Processing with upcoming features for people to try out without those features necessarily being included in the latest builds of Processing. One thing that was already suggested before is w...
Open Graph Description: Premise: We would like to distribute builds of Processing with upcoming features for people to try out without those features necessarily being included in the latest builds of Processing. One thin...
X Description: Premise: We would like to distribute builds of Processing with upcoming features for people to try out without those features necessarily being included in the latest builds of Processing. One thin...
Opengraph URL: https://github.com/processing/processing4/issues/1332
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Nightly builds","articleBody":"\nPremise: We would like to distribute builds of Processing with upcoming features for people to try out without those features necessarily being included in the latest builds of Processing.\n\nOne thing that was already suggested before is we could manage these features as a build step, so that they can be included into the main branch without being necessarily activated\n\nMy suggestion for feature control would be: we add a `gradle.properties` to the repo and add subsequently it to the `.gitignore`, this will provide a template for the file that then can be freely modified by anyone building the project from scratch. We can also create `gradle.nightly.properties` or something similarly named, that will enable features on the nightly builds but not in the main build. In this way you could activate the feature on a build system level by checking the property:\n\n```build.gradle.kts\nif(property(\"includeExamples\") == \"true\"){ \n create(\"examples\"){ \n java{ \n srcDirs(\"examples\") \n } \n }\n}\n```\n\nFor feature control in the code we could grab all the Gradle properties defined starting with `processing.feature` and pass them through to the rest of the code. This would mean we could activate them with the following:\n\n```java\nstatic private String ExampleFeatureActive = Boolean.parseBoolean(System.getProperty(\"processing.feature.example\", \"false\"));\n```\n\nThe nice thing is that the gradle.properties are also easily modifiable within the Github Actions:\n\n```yaml\nname: Build with Gradle \n run: ./gradlew publish \n env: \n MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} \n MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} \n \n ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} \n ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} \n \n ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} \n ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} \n \n ORG_GRADLE_PROJECT_version: ${{ needs.version.outputs.version }} \n ORG_GRADLE_PROJECT_group: ${{ vars.GRADLE_GROUP }}\n```\n\nOne challenge that I see with nightly builds is keeping track of revision numbers and versioning. \nRight now any time a new release of Processing is created, we manually set the revision number and version, the Github actions responsible for those expect that in the format `processing-$revision-$version` and this is parsed to set those variables into the gradle build system. \n\nWe could either start creating versions with a tag to it, e.g. `processing-1501-4.10.1-nightly` and just increase the build tag every time. But we would run out of revision tags rather soon and I suspect it might be hardcoded into multiple placed to be 4 digits.\n\nFinally we would need to update the website to ignore build released with any arbitrary tags so that only major versions would be shown within the website. \n\nLets discuss! \n\n@catilac @SableRaf @tychedelia \n","author":{"url":"https://github.com/Stefterv","@type":"Person","name":"Stefterv"},"datePublished":"2025-11-19T10:00:41.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/1332/processing4/issues/1332"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:ef107efd-0705-918f-ba45-5cd33dad89bd |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DAF0:7873F:4A8047:6681A7:696E592E |
| html-safe-nonce | 33b28dbb2055199bae479ae200c2806802b430fdcd1d04392cd744acc25c008e |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQUYwOjc4NzNGOjRBODA0Nzo2NjgxQTc6Njk2RTU5MkUiLCJ2aXNpdG9yX2lkIjoiNDg5MDU2ODUzMzE3MjE4MTI5NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 182aa07e1b855bcfd685f6462f8c17944de7c96eb8f93b6dffb495a72a1c06be |
| hovercard-subject-tag | issue:3641971880 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/processing/processing4/1332/issue_layout |
| twitter:image | https://opengraph.githubassets.com/527e76dd310f980bbe170ce48d2d3540407f38cc1a43ef57800efd7333f891e8/processing/processing4/issues/1332 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/527e76dd310f980bbe170ce48d2d3540407f38cc1a43ef57800efd7333f891e8/processing/processing4/issues/1332 |
| og:image:alt | Premise: We would like to distribute builds of Processing with upcoming features for people to try out without those features necessarily being included in the latest builds of Processing. One thin... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | Stefterv |
| hostname | github.com |
| expected-hostname | github.com |
| None | f68b42d371252b0f236260d6234f4304a806fe5ac43d59faa21fb59d80df103b |
| turbo-cache-control | no-preview |
| go-import | github.com/processing/processing4 git https://github.com/processing/processing4.git |
| octolytics-dimension-user_id | 1617169 |
| octolytics-dimension-user_login | processing |
| octolytics-dimension-repository_id | 844382769 |
| octolytics-dimension-repository_nwo | processing/processing4 |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 844382769 |
| octolytics-dimension-repository_network_root_nwo | processing/processing4 |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 6b74bc8dbcd10b5d69fd9ee9d2cfdc8b35e18a4c |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width