gitlab.com
Open in
urlscan Pro
2606:4700:90:0:f22e:fbec:5bed:a9b9
Public Scan
Submitted URL: https://itasks.nl/
Effective URL: https://gitlab.com/clean-and-itasks
Submission: On February 16 via api from US — Scanned from US
Effective URL: https://gitlab.com/clean-and-itasks
Submission: On February 16 via api from US — Scanned from US
Form analysis
0 forms found in the DOMText Content
Skip to content GitLab * Menu * Why GitLab * Pricing * Contact Sales * Explore * Why GitLab * Pricing * Contact Sales * Explore * Sign in * Get free trial PRIMARY NAVIGATION Search or go to… Group * C Clean and iTasks * Manage * Activity * Members * Labels * Plan * Issues 149 * Epics 0 * Issue boards * Epic boards * Roadmap * Milestones * Iterations * Wiki * Code * Merge requests 18 * Secure * Security dashboard * Vulnerability report * Deploy * Package Registry * Operate * Terraform modules * Analyze * Insights * Issue analytics Help * * Help * Support * GitLab documentation * Compare GitLab plans * Community forum * Contribute to GitLab * Provide feedback * * Keyboard shortcuts ? * What's new 7 Snippets Groups Projects * Clean and iTasks C CLEAN AND ITASKS Libraries and tools for the Clean programming language. Read more * Subgroups and projects * Shared projects * Archived projects * Name * * * Name * Created * Updated * Stars * * * B base 0 9 1 * I itasks 0 2 1 * L libraries 0 32 1 * ABC Interpreter An interpreter for the ABC language with Clean bindings to allow cross-platform communication of lazy expressions 2 1 month ago * A ArgEnv Mirror of the argenv library to publish to https://clean-lang.org 0 2 months ago * A asyncio 0 1 day ago * B base64 0 4 months ago * C Clean Platform The Clean platform is a collection of multi-platform general purpose libraries for Clean. 1 2 months ago * C Clean Test Generic test tools for testing Clean programs 0 3 weeks ago * C Clean Test Properties Generate and run Gast tests from properties defined in Clean definition modules 0 1 week ago * C clean-lang.org Source of clean-lang.org 0 2 weeks ago * C common-config-repositories 0 10 months ago * G gitlab-profile 0 1 month ago * G GraphCopy A library to lazily (de)serialize arbitrary expression graphs. 0 1 month ago * G G∀ST The G∀ST testing framework for Clean 0 1 month ago * H html 0 2 months ago * H htoclean 0 1 year ago * iTasks SDK The iTask framework for developing Task-Oriented Programs. 0 7 hours ago * I iTasks-leaflet 0 2 weeks ago * iTasks-template This is an iTasks template project which contains an environment to develop iTasks applications using docker develop containers. 1 1 month ago * Prev * 1 * 2 * Next README.md CONTRIBUTING TO CLEAN AND ITASKS Thank you for contributing to Clean and iTasks. This document describes how we work here. * Contributing to Clean and iTasks * General workflow * Git * Code Review * Code owners * Code Style * Efficiency * Testing * Existing Tests * New Tests * Planning * Solving issues * Release schedule * Release checklist * Changelog * Which changes require an entry? * Entries * Headings GENERAL WORKFLOW * The main branch is used for the latest version. Unless the repository is older and still has a master branch. * Bugs and feature proposals are tracked in the issue tracker. * We use feature branches to fix bugs, develop new features, etc. Feature branch names should be descriptive. * Once code is ready to be merged into main this is done in a merge request. * Merge requests are assigned to the person who currently has to work on it. This can be a reviewer when the code is ready for review, or somebody else, if more work is required before the MR can be merged. Merge requests that are not ready for review should also be marked as Drafts. * Comment threads are resolved by the person who started them, not the person who answers them. This makes sure that everyone has an overview of what remains to be done. * In preparation of a new major or minor version, a branch pre-x.y is used (e.g. pre-2.0). Bug fixes should be done on main or a pre-x.y branch. If bug fixes need to be backported to an older version, a branch release-x.y is used (e.g. release-1.3). GIT * We prefer git rebase over git merge to bring feature branches up to date with main, as this makes git bisect easier. * Intermediate commits should compile to make git bisect easier. Use git rebase -i to squash commits and clean up your history before making a merge request. CODE REVIEW * Code has to be reviewed and accepted by at least another person, who did not contribute a significant amount of code, this person is considered to be the reviewer. * The reviewer checks whether the changes are in accordance with this document and can also bring in other ideas improving the result. The review is repeated until the reviewer agrees that the item is done and can be merged. The reviewer is not required to: * Reproduce benchmark results if they seem plausible. * Check if all intermediate commits compile. CODE OWNERS The maintainer of a package is responsible to assign a reviewer to an MR. In case the review is expected to take longer than a couple of days, it is appreciated that the maintainer gives an indicates of when a review is to be expected. CODE STYLE * The code has to be checked against the code style. * The style guide can only be extended once we have automated style checking; otherwise this takes too much review time. EFFICIENCY Premature optimisation lead to waste of time and can decrease maintainability of code. There is on the other hand no reason to waste performance by not following some good practices, requiring minimal effort and not affecting maintainability. Not choosing the appropriate types beforehand can waste performance and time when implementations have to be refactored afterwards. The following points should always hold: * All functions and types should have proper strictness annotations. * Appropriate choices have been made for types (e.g. Set vs []). * The most efficient library functions available should be used (e.g. +++ and concat3/4/5 vs concat, lazy vs strict foldl). If performance is part of the acceptance criteria of an issue, a benchmark should be done to show that the desired performance is achieved. TESTING EXISTING TESTS * Existing tests should be adapted if required so that the CI pipeline passes. NEW TESTS * For fixed bugs there should always be a test, which failed before the MR and passes after the MR. How thorough the test needs to be depends on the probability and impact of failure and can be determined in cooperation with the reviewer. * In exceptional cases the writing of tests can be delayed to a follow-up issue, for example if writing the test is complex or impossible with the current framework and/or if the bug has very high priority. * For newly added functions, if there are already tests for similar functions within the package, tests should be added for the newly added functions as well. As an example, consider the functions within Data.Map. PLANNING SOLVING ISSUES In regards to solving issues, the maintainer should indicate whether there is an intent to spend time on the issue or whether MRs will be accepted. RELEASE SCHEDULE The software is released on-demand. Not every change automatically results in a release. The moment of release is left to the discretion of the maintainers. RELEASE CHECKLIST The software is released as a nitrile package. The changelog entry and versioning used for the repository have to adhere to the changelog guidelines. To make a release, do the following, ideally in the same branch with the relevant code changes you're making: * Bump the version in nitrile.yml using the semantic versioning rules. * Update CHANGELOG.md. * Create a merge request. * After merging, create a tag on the main branch with the same name as the version number (e.g. 2.0.0). This causes the CI pipeline, when set up correctly, to automatically publish this version in the nitrile package repository. CHANGELOG Each repository contains a file CHANGELOG.md. At the top of the file there is a heading Unreleased. If you make a change and want to add a changelog entry, add it here. You may add the Unreleased heading if there is none. WHICH CHANGES REQUIRE AN ENTRY? In general, use common sense, or ask if unsure. Here are some guidelines: * New features should always get an entry. * Backwards incompatible changes should always get an entry. * Bug fixes should always get an entry, unless they fix a bug that has not been released yet. * Enhancements of existing features should get an entry if they are observable for end users. * Changes in documentation and refactoring do not need to get an entry. * Changes by outside contributors may always get an entry. ENTRIES Changes can have different types. The entries should be grouped by type, in this order: * Feature for new user-facing functionality. * Enhancement for enhanced functionality without API changes. * Change for user-facing changes in functionality. * Removed for removed functionality. * Fix for fixed bugs. * Robustness for changes to catch edge cases. * Chore for updates to dependencies and the like. Each entry should give a short explanation and a link to the corresponding merge request or commit. Entries may include the name / GitLab handle / email address of the contributor. The entry explanation starts with a lower-case letter and ends with a full stop. For example: - Feature: add ability to foo bars. HEADINGS * Headings are sorted in descending order. * Major versions (x.0.0) and minor versions in the major version 0 (0.x.0) should be on heading level 2 (##). * Minor versions in non-zero major versions (x.y.0) should be on heading level 3 (###). * Patch versions (x.y.z) should be on heading level 4 (####). * There may be a heading ## Unreleased at the top of the file for unreleased changes. The level should be the one that the version gets when it is released. That is, if there are unreleased changes that require a major version update, the level should be ##. If the unreleased changes only require a patch update, the level should be ####.