diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..583decf --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" \ No newline at end of file diff --git a/.github/workflows/autobug.yaml b/.github/workflows/autobug.yaml new file mode 100644 index 0000000..3463b88 --- /dev/null +++ b/.github/workflows/autobug.yaml @@ -0,0 +1,22 @@ +name: Auto Assign Issues to Triage column in Sprint Planning Project Board + +on: + issues: + types: [opened] + +permissions: # added using https://github.com/step-security/secure-workflows + contents: read + +jobs: + issue_opened: + name: issue_opened + runs-on: ubuntu-latest + steps: + - name: 'Move issue to "Triage"' + uses: leonsteinhaeuser/project-beta-automations@d1c1261558118c0876fdb2b57a649303925e5a70 # v2.1.0 + with: + gh_token: ${{ secrets.MY_GITHUB_TOKEN }} + organization: atsign-foundation + project_id: 8 + resource_node_id: ${{ github.event.issue.node_id }} + status_value: "Triage" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..4352a94 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# 1.0.2 + +- Established this CHANGELOG +- LICENSE updated to reflect fork +- README linting and note on fork +- Copy boilerplate from archetype + +# 1.0.1 + +- Support for OpenBSD and NetBSD +- Thread Safety for C11+ Compilers +- Refactored uuid4.h to include/uuid/ directory +- CMake subdirectory AND installation compatability + +# 1.0.0 + +- Initial fork from [rxi/uuid4](https://github.com/rxi/uuid4) \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d7a2ffa --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,168 @@ +

+ +# Contributing guidelines + +We 💙 [Pull Requests](https://help.github.com/articles/about-pull-requests/) +for fixing issues or adding features. Thanks for your contribution! + +Please read our [code of conduct](code_of_conduct.md), which is based on +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md) + +For small changes, especially documentation, you can simply use the "Edit" button +to update the Markdown file, and start the +[pull request](https://help.github.com/articles/about-pull-requests/) process. +Use the preview tab in GitHub to make sure that it is properly +formatted before committing. Please use conventional commits and follow the +semantic PR format as documented +[here](https://github.com/atsign-foundation/.github/blob/trunk/atGitHub.md#semantic-prs). +A pull request will cause integration tests to run automatically, so please review +the results of the pipeline and correct any mistakes that are reported. + +If you plan to contribute often or have a larger change to make, it is best to +setup an environment for contribution, which is what the rest of these guidelines +describe. The atsign-foundation GitHub organization's conventions and +configurations are documented +[here](https://github.com/atsign-foundation/.github/blob/trunk/atGitHub.md). + +## Development Environment Setup + +### Prerequisites + +``` sh +# show how to install the tools needed to work with the code here +``` + +### GitHub Repository Clone + +To prepare your dedicated GitHub repository: + +1. Fork in GitHub +2. Clone *your forked repository* (e.g., `git clone git@github.com:yourname/uuid4`) +3. Set your remotes as follows: + + ```sh + cd uuid4 + git remote add upstream git@github.com:atsign-foundation/uuid4.git + git remote set-url upstream --push DISABLED + ``` + + Running `git remote -v` should give something similar to: + + ```text + origin git@github.com:yourname/uuid4.git (fetch) + origin git@github.com:yourname/uuid4.git (push) + upstream git@github.com:atsign-foundation/uuid4.git (fetch) + upstream DISABLED (push) + ``` + + The use of `upstream --push DISABLED` is to prevent those + with `write` access to the main repository from accidentally pushing changes + directly. + +### Development Process + +1. Fetch latest changes from main repository: + + ```sh + git fetch upstream + ``` + +1. Reset your fork's `trunk` branch to exactly match upstream `trunk`: + + ```sh + git checkout trunk + git reset --hard upstream/trunk + git push --force + ``` + + **IMPORTANT**: Do this only once, when you start working on new feature as + the commands above will completely overwrite any local changes in `trunk` content. +1. Edit, edit, edit, and commit your changes to Git: + + ```sh + # edit, edit, edit + git add * + git commit -m 'A useful commit message' + git push + ``` + +1. How to run tests: + + ``` sh + # explain tests here + ``` + +1. Open a new Pull Request to the main repository using your `trunk` branch + +## atLibrary release process + +The Atsign Foundation produces several widgets and libraries that the app developer +can make use of to develop apps on atProtocol. These libraries are developed in +Dart & Flutter and published to [pub.dev](https://pub.dev/publishers/atsign.org/packages). + +![alt_text](images/image1.png "Version flow") + +## Following the changes + +The Atsign Foundation publishes libraries and widgets to +[https://pub.dev/publishers/atsign.org/packages](https://pub.dev/publishers/atsign.org/packages). +Each of these libraries contains a tab called “Changelog” that shows various +published versions and a short description of what changes that went in. + +![alt_text](images/image2.png "Changelog screenshot") + +Also the “Versions” tab shows the versions published in the reverse +chronological order. + +![alt_text](images/image3.png "Versions screenshot") + +## Reporting a bug + +The best place to start reporting bugs on the libraries published by +atProtocol would be the “View/report issues” link available on +[pub.dev](https://pub.dev/publishers/atsign.org/packages). + +![alt_text](images/image4.png "View/report issues highlight") + +Once the link is clicked, one should be redirected to GitHub repo where the +issue can be reported by clicking on the “New issue” button. + +![alt_text](images/image5.png "Issues list") + +Clicking on the “New issue” button should take you to the screen to choose +where the issue is a Bug or an Enhancement. + +![alt_text](images/image6.png "Choose Bug report") + +Upon clicking on the “Get started” button against the “Bug Report” you should +be directed to a page with a bug template provided by Atsign. Filling +out all of the fields in the template gives Atsign a better chance to +reproduce and fix the bug. + +![alt_text](images/image7.png "Filling a Bug report") + +## Bug fix and delivery process + +* Bugs will initially be placed into the Sprint Planning Board so that they + can be triaged, estimated and scheduled. +* Once work on a bug is scheduled one or more engineers will be assigned to + fixing the bug, and story points will be allocated to match the time + estimated to fix the bug. +* Progress on fixing the bug will be updated in the associated GitHub issue, + and reviewed during subsequent sprint planning meetings where necessary. +* Once a fix is created we will work with the reporter to ensure that the fix + is appropriate to their needs, and where possible this should happen prior + to release to pub.dev + +## Closure of the bug + +* Where possible the issue associated with the bug should be closed by mutual + consent with the reporter. This could be: + * The reporter closing the issue because they have found a workaround. + * The reporter closing the issue because they are satisfied with a fix + provided. + * A team member closes the issue after the reporter leaves a comment + indicating that they are happy for it to be closed. +* If the reporter does not respond within 14 calendar days then we must assume + that they no longer have an interest in fixing the bug and work in progress + can be closed out at the team’s discretion. diff --git a/LICENSE b/LICENSE index f21690d..23d8258 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,6 @@ -Copyright (c) 2018 rxi +Original Copyright (c) 2018 rxi +Further work Copyright (c) 2024 Atsign Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/README.md b/README.md index 90403f8..cc27e9f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,17 @@ # uuid4 + A tiny C library for generating [uuid4](http://www.ietf.org/rfc/rfc4122.txt) strings. -### Usage +This repo has been forked from [rxi/uuid4](https://github.com/rxi/uuid4) +in order to: + +* achieve greater compatability with the +[at_c SDK](https://github.com/atsign-foundation/at_c) +* provide compatability with ESP32 + +## Usage + [uuid4.c](src/uuid4.c?raw=1) and [uuid4.h](src/uuid4.h?raw=1) should be dropped into an existing project. The library contains two functions: one to initialize the library and one to generate a uuid4 string and @@ -17,7 +26,7 @@ printf("%s\n", buf); `uuid4_generate()` is not thread-safe. -### License +## License + This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See [LICENSE](LICENSE) for details. - diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..06ed9cd --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,41 @@ +

+ +# Atsign Foundation Open Source Security Policies and Procedures + +This document outlines security procedures and general policies for the +Atsign Foundation Open Source projects as found on +. + +* [Reporting a Vulnerability](#reporting-a-vulnerability) +* [Disclosure Policy](#disclosure-policy) + +## Reporting a Vulnerability + +The Atsign Foundation team and community take all security vulnerabilities +seriously. Thank you for improving the security of our open source +software. We appreciate your efforts and responsible disclosure and will +make every effort to acknowledge your contributions. + +Report security vulnerabilities by emailing the Atsign security team at: + + security@atsign.com + +The lead maintainer will acknowledge your email within 24 hours, and will +send a more detailed response within 48 hours indicating the next steps in +handling your report. After the initial reply to your report, the security +team will endeavor to keep you informed of the progress towards a fix and +full announcement, and may ask for additional information or guidance. + +Please report security vulnerabilities in third-party modules to the person +or team maintaining the module. + +## Disclosure Policy + +When the security team receives a security bug report, they will assign it +to a primary handler. This person will coordinate the fix and release +process, involving the following steps: + +* Confirm the problem and determine the affected versions. +* Audit code to find any potential similar problems. +* Prepare fixes for all releases still under maintenance. These fixes + will be released as fast as possible to pub.dev where applicable. diff --git a/code_of_conduct.md b/code_of_conduct.md new file mode 100644 index 0000000..9122094 --- /dev/null +++ b/code_of_conduct.md @@ -0,0 +1,137 @@ +

+ +# The Atsign Foundation Code of Conduct + +Based on +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md) + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +conduct@atsign.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/images/image1.png b/images/image1.png new file mode 100644 index 0000000..a0ab64a Binary files /dev/null and b/images/image1.png differ diff --git a/images/image2.png b/images/image2.png new file mode 100644 index 0000000..d122125 Binary files /dev/null and b/images/image2.png differ diff --git a/images/image3.png b/images/image3.png new file mode 100644 index 0000000..8bd46e2 Binary files /dev/null and b/images/image3.png differ diff --git a/images/image4.png b/images/image4.png new file mode 100644 index 0000000..bb429d2 Binary files /dev/null and b/images/image4.png differ diff --git a/images/image5.png b/images/image5.png new file mode 100644 index 0000000..cb9a633 Binary files /dev/null and b/images/image5.png differ diff --git a/images/image6.png b/images/image6.png new file mode 100644 index 0000000..b1462b9 Binary files /dev/null and b/images/image6.png differ diff --git a/images/image7.png b/images/image7.png new file mode 100644 index 0000000..ce5dc36 Binary files /dev/null and b/images/image7.png differ