From 1ab6805f19c58ee0a1eaf849baa04380d8590232 Mon Sep 17 00:00:00 2001 From: Janette Day Date: Fri, 1 Nov 2024 11:50:39 -0500 Subject: [PATCH 1/4] Update contributing documentation. Add new issue templates. --- .github/ISSUE_TEMPLATE/task.yml | 18 ++++ .github/ISSUE_TEMPLATE/user_story.yml | 18 ++++ .gitignore | 1 + CODE_OF_CONDUCT.md | 76 ---------------- docs/source/conf.py | 4 +- docs/source/contributing/code_of_conduct.rst | 91 ++++++++++++++++++- docs/source/contributing/index.rst | 3 +- .../contributing/submission_guidelines.rst | 16 ++++ docs/source/contributing/support.rst | 18 ++++ docs/source/installation/index.rst | 20 ++-- 10 files changed, 175 insertions(+), 90 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/task.yml create mode 100644 .github/ISSUE_TEMPLATE/user_story.yml delete mode 100644 CODE_OF_CONDUCT.md create mode 100644 docs/source/contributing/support.rst diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml new file mode 100644 index 0000000000..7b7996229b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/task.yml @@ -0,0 +1,18 @@ +name: Task +description: A workitem that needs to be done while developing a story, feature, addressing tech debt, documentation, etc. +title: "" +labels: [task] + +body: + - type: textarea + attributes: + label: Description + description: A concise description of the task or suggested implementation. + validations: + required: true + - type: textarea + attributes: + label: Acceptance Criteria + description: Tell us what should happen, how will we know when we're done. + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/user_story.yml b/.github/ISSUE_TEMPLATE/user_story.yml new file mode 100644 index 0000000000..266769d928 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/user_story.yml @@ -0,0 +1,18 @@ +name: User Story +description: User stories are short descriptions of a feature told from the perspective of the person who desires the new functionality, usually a user of the system. +title: "" +labels: [user story] + +body: + - type: textarea + attributes: + label: Why + description: As a [user], I want [goal] so that [some reason]. + validations: + required: true + - type: textarea + attributes: + label: Acceptance Criteria + description: Set up the scenario. Given [x] When [y] Then [z]. + validations: + required: true diff --git a/.gitignore b/.gitignore index 6829678390..e13cd67e59 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ tagfile /web .phpunit.result.cache docs/build +docs/.venv diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index acf6cfb434..0000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Code of Conduct - -## Purpose - -A primary goal of the Project DKAN is to be inclusive to the largest number of participants, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). - -This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior. - -We invite all those who participate in Project DKAN activities to help us create safe and positive experiences for everyone. - -## Open source & culture citizenship - -A supplemental goal of this Code of Conduct is to increase open source and culture citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community. - -Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. - -If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, please recognize their efforts. - -## Expected Behavior - -The following behaviors are expected and requested of all community members: - -- Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. -- Exercise consideration and respect in your speech and actions. -- Attempt collaboration before conflict. -- Refrain from demeaning, discriminatory, or harassing behavior and speech. -- Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. -- Keep conversations in appropriate channels to help people find the information they need. - -## Unacceptable behavior - -The following behaviors are considered harassment and are unacceptable within our community: - -- Violence, threats of violence or violent language directed against another person. -- Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. -- Posting or displaying sexually explicit or violent material. -- Posting or threatening to post other people's personally identifying information ("doxing"). -- Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. -- Inappropriate photography or recording. -- Unwelcome sexual attention. This includes, sexualized comments or jokes and unwelcomed sexual advances. -- Deliberate intimidation, stalking or following (online or in person). -- Advocating for, or encouraging, any of the above behavior. -- Promoting your particular product or service (though we of course welcome relevant recommendations). - - -## Consequences of unacceptable behavior - -Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated. - -Anyone asked to stop unacceptable behavior is expected to comply immediately. -If a community member engages in unacceptable behavior, we may take any action deemed appropriate, up to and including a temporary ban or permanent expulsion from the community without warning. - -**Reporting guidelines** - -If you are subject to or witness unacceptable behavior, or have any other concerns, please notify us as soon as possible by emailing getdkan@gmail.com. - -## Addressing grievances - -Only permanent resolutions (such as bans) may be appealed. To appeal a decision of the working group, contact the Project DKAN team at getdkan@gmail.com with your appeal and the team will review the case. - -## Scope - -We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business. - -This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members. - -## Contact info - -Project DKAN, getdkan@gmail.com - -## Contributing -[Learn more about contributing here](https://dkan.readthedocs.io/en/latest/contributing/index.html) - -## License and attribution - -This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/). Portions of text derived from the [Django Code of Conduct ](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy). diff --git a/docs/source/conf.py b/docs/source/conf.py index c22cd5d941..c912f4c9dd 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -19,11 +19,11 @@ # -- Project information ----------------------------------------------------- project = 'DKAN Documentation' -copyright = '2023, CivicActions' +copyright = '2024, CivicActions' author = 'CivicActions' # The full version, including alpha/beta/rc tags -release = '2.15.2' +release = '2.19.2' version = '2.x' # -- General configuration --------------------------------------------------- diff --git a/docs/source/contributing/code_of_conduct.rst b/docs/source/contributing/code_of_conduct.rst index 0a0fe42f6b..6cb1146026 100644 --- a/docs/source/contributing/code_of_conduct.rst +++ b/docs/source/contributing/code_of_conduct.rst @@ -1,2 +1,89 @@ -.. include:: ../../../CODE_OF_CONDUCT.md - :parser: myst_parser.docutils_ +Code of Conduct +=============== + +Purpose +------- + +A primary goal of the Project DKAN is to be inclusive to the largest number of participants, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). + +This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior. + +We invite all those who participate in Project DKAN activities to help us create safe and positive experiences for everyone. + +Open source & culture citizenship +--------------------------------- + +A supplemental goal of this Code of Conduct is to increase open source and culture citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community. + +Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. + +If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, please recognize their efforts. + +Expected Behavior +----------------- + +The following behaviors are expected and requested of all community members: + +- Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. +- Exercise consideration and respect in your speech and actions. +- Attempt collaboration before conflict. +- Refrain from demeaning, discriminatory, or harassing behavior and speech. +- Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. +- Keep conversations in appropriate channels to help people find the information they need. + +Unacceptable behavior +--------------------- + +The following behaviors are considered harassment and are unacceptable within our community: + +- Violence, threats of violence or violent language directed against another person. +- Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. +- Posting or displaying sexually explicit or violent material. +- Posting or threatening to post other people's personally identifying information ("doxing"). +- Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. +- Inappropriate photography or recording. +- Unwelcome sexual attention. This includes, sexualized comments or jokes and unwelcomed sexual advances. +- Deliberate intimidation, stalking or following (online or in person). +- Advocating for, or encouraging, any of the above behavior. +- Promoting your particular product or service (though we of course welcome relevant recommendations). + + +Consequences of unacceptable behavior +------------------------------------- + +Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated. + +Anyone asked to stop unacceptable behavior is expected to comply immediately. +If a community member engages in unacceptable behavior, we may take any action deemed appropriate, up to and including a temporary ban or permanent expulsion from the community without warning. + +**Reporting guidelines** + +If you are subject to or witness unacceptable behavior, or have any other concerns, please notify us as soon as possible by emailing getdkan@gmail.com. + +Addressing grievances +--------------------- + +Only permanent resolutions (such as bans) may be appealed. To appeal a decision of the working group, contact the Project DKAN team at getdkan@gmail.com with your appeal and the team will review the case. + +Scope +----- + +We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business. + +This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members. + +Contributing +------------ + +Learn more about :doc:`contributing <../contributing/index>` here. + +Contact info +------------ + +Project DKAN, getdkan@gmail.com + + +License and attribution +----------------------- + +This Code of Conduct is distributed under a `Creative Commons Attribution-ShareAlike license `_. Portions of text derived from the `Django Code of Conduct `_ and the `Geek Feminism Anti-Harassment Policy `_. diff --git a/docs/source/contributing/index.rst b/docs/source/contributing/index.rst index eae23fbd9f..dd1c3482f4 100644 --- a/docs/source/contributing/index.rst +++ b/docs/source/contributing/index.rst @@ -5,6 +5,7 @@ Contributing :maxdepth: 1 submission_guidelines - documentation code_of_conduct + documentation + support license diff --git a/docs/source/contributing/submission_guidelines.rst b/docs/source/contributing/submission_guidelines.rst index 5db603511f..27570b26f0 100644 --- a/docs/source/contributing/submission_guidelines.rst +++ b/docs/source/contributing/submission_guidelines.rst @@ -18,6 +18,17 @@ Our efforts will be focused on the 2.x version of DKAN. If you are reporting a b and it is not a security issue, we encourage you to reach out on the `DKAN Discussions `_. +Setting up a local development sandbox +-------------------------------------- + +We recomend using DDEV with the DDEV-DKAN add-on as there are many helpful commands that will make it easier to get started. +Once you have composer, docker, and DDEV installed, head over to `Getting Started with DDEV-DKAN `_ + +Issues tagged Good First Issue +------------------------------ + +Issues tagged with the "Good First Issue" tag have been identified by experienced contributors as having some aspect that should be easy for a new contributor to do. + Submitting a Pull Request (PR) ------------------------------ @@ -34,3 +45,8 @@ and push the changes to your GitHub repository, which will automatically update At all times, please ensure the automated build passes so that a minimal amount of tests are passed for your code. After your PR is merged, you can safely delete your branch and pull the changes from the main (upstream) repository. + +Coding Standards +---------------- + +`Coder `_ is a tool to help write code for Drupal modules. It can detect and automatically fix coding standard errors. The project provides a coding standard for PHP_CodeSniffer based on the `Drupal coding standard `_ diff --git a/docs/source/contributing/support.rst b/docs/source/contributing/support.rst new file mode 100644 index 0000000000..7524566561 --- /dev/null +++ b/docs/source/contributing/support.rst @@ -0,0 +1,18 @@ +Support and Help +================ + +Github issues should not be used as a support forum. Please use `DKAN Discussions `_ for questions about the project. + +Please seek support in the following ways: + + #. Read the `documentation `_ and other guides for the project to see if you can figure it out on your own. These are also located in the root docs/ directory. + #. Check that you're on the latest version before reporting an issue. + #. Check the issue queue for the same or similar issues to the one you're having. + #. Search for answers and ask questions on `DKAN Discussions `_. This is the most appropriate place for debugging issues specific to your use of the project, or figuring out how to use the project in a specific way. Please clearly explain what you are trying to do, and list what you have already attempted to solve the problem. Provide code samples, but do not attach your entire project for someone else to debug. + #. Come back and tell the community if a particular solution worked for you or not. You will help people who come after you. + +Be patient. DKAN maintainers are fully booked on projects that support the development of the module and may be slow to respond to discussions depending on work loads. + +Reporting a security issue +-------------------------- +If you have found a vunerability in DKAN, please report this by e-mailing dkan-security@civicactions.com. diff --git a/docs/source/installation/index.rst b/docs/source/installation/index.rst index 3921ef1687..81bc01235f 100644 --- a/docs/source/installation/index.rst +++ b/docs/source/installation/index.rst @@ -27,24 +27,22 @@ DKAN is based on `Drupal software `_ to generate a new Drupal site with DKAN installed on your system. + +Starting a new DKAN project with Composer +----------------------------------------- DKAN DDEV Add-on bases new projects off of a `composer project `_ that you can also use to start a project using your own toolset: .. prompt:: bash $ composer create-project getdkan/recommended-project my-project -Or simply create a project however you prefer and add a requirement for `getdkan/dkan`. - -.. warning:: - Do note that a bug in Drupal core cron may cause problems with data imports, and applying `this patch `_ is highly recommended. The patch will be applied automatically if you use the `recommended project `_. - Adding DKAN into an existing project ----------------------------------------- +------------------------------------ If you already have an existing Drupal site, install DKAN with `composer `_. You can find the `latest DKAN release here `_. Composer will download the module and all of the dependencies it requires for the backend. @@ -53,7 +51,11 @@ If you already have an existing Drupal site, install DKAN with `composer `_ is highly recommended. The patch will be applied automatically if you use the `recommended project `_. + +Add some example datasets to your site +-------------------------------------- .. prompt:: bash $ From 959dd9a9f4ee420625e1554a7e8069e57334d406 Mon Sep 17 00:00:00 2001 From: Janette Day Date: Fri, 1 Nov 2024 11:58:52 -0500 Subject: [PATCH 2/4] Remove titles from new issue templates --- .github/ISSUE_TEMPLATE/task.yml | 8 +++----- .github/ISSUE_TEMPLATE/user_story.yml | 5 +++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml index 7b7996229b..0e10cf3fcc 100644 --- a/.github/ISSUE_TEMPLATE/task.yml +++ b/.github/ISSUE_TEMPLATE/task.yml @@ -1,6 +1,5 @@ name: Task description: A workitem that needs to be done while developing a story, feature, addressing tech debt, documentation, etc. -title: "" labels: [task] body: @@ -8,11 +7,10 @@ body: attributes: label: Description description: A concise description of the task or suggested implementation. - validations: - required: true + render: markdown - type: textarea attributes: label: Acceptance Criteria description: Tell us what should happen, how will we know when we're done. - validations: - required: true + render: markdown + diff --git a/.github/ISSUE_TEMPLATE/user_story.yml b/.github/ISSUE_TEMPLATE/user_story.yml index 266769d928..24c386e739 100644 --- a/.github/ISSUE_TEMPLATE/user_story.yml +++ b/.github/ISSUE_TEMPLATE/user_story.yml @@ -1,18 +1,19 @@ name: User Story description: User stories are short descriptions of a feature told from the perspective of the person who desires the new functionality, usually a user of the system. -title: "" labels: [user story] body: - type: textarea attributes: - label: Why + label: User Story description: As a [user], I want [goal] so that [some reason]. + render: markdown validations: required: true - type: textarea attributes: label: Acceptance Criteria description: Set up the scenario. Given [x] When [y] Then [z]. + render: markdown validations: required: true From 8305d2260a87880645d54a83d6456c2e442a7c67 Mon Sep 17 00:00:00 2001 From: Janette Day Date: Fri, 6 Dec 2024 10:49:02 -0600 Subject: [PATCH 3/4] remove user story template and other touch ups --- .github/ISSUE_TEMPLATE/feature_request.yml | 8 ++++---- .github/ISSUE_TEMPLATE/user_story.yml | 19 ------------------- .../contributing/submission_guidelines.rst | 2 +- docs/source/contributing/support.rst | 2 +- 4 files changed, 6 insertions(+), 25 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/user_story.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 276f46d0a0..1b178ff804 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -6,8 +6,8 @@ labels: [feature request] body: - type: textarea attributes: - label: Feature Description - description: "Briefly describe the feature you would like to see added to the project." + label: User Story + description: "As a [user], I want [goal] so that [some reason]." placeholder: "Provide a brief overview of the feature..." validations: required: true @@ -54,7 +54,7 @@ body: - type: textarea attributes: - label: Additional Context - description: "Provide any additional context, such as similar features in other projects, screenshots, or mockups." + label: Acceptance Criteria + description: Set up the scenario. Given [x] When [y] Then [z]. validations: required: false diff --git a/.github/ISSUE_TEMPLATE/user_story.yml b/.github/ISSUE_TEMPLATE/user_story.yml deleted file mode 100644 index 24c386e739..0000000000 --- a/.github/ISSUE_TEMPLATE/user_story.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: User Story -description: User stories are short descriptions of a feature told from the perspective of the person who desires the new functionality, usually a user of the system. -labels: [user story] - -body: - - type: textarea - attributes: - label: User Story - description: As a [user], I want [goal] so that [some reason]. - render: markdown - validations: - required: true - - type: textarea - attributes: - label: Acceptance Criteria - description: Set up the scenario. Given [x] When [y] Then [z]. - render: markdown - validations: - required: true diff --git a/docs/source/contributing/submission_guidelines.rst b/docs/source/contributing/submission_guidelines.rst index 27570b26f0..283d244d14 100644 --- a/docs/source/contributing/submission_guidelines.rst +++ b/docs/source/contributing/submission_guidelines.rst @@ -22,7 +22,7 @@ Setting up a local development sandbox -------------------------------------- We recomend using DDEV with the DDEV-DKAN add-on as there are many helpful commands that will make it easier to get started. -Once you have composer, docker, and DDEV installed, head over to `Getting Started with DDEV-DKAN `_ +Once you have composer, docker, and DDEV `installed `_, head over to `Getting Started with DDEV-DKAN `_ Issues tagged Good First Issue ------------------------------ diff --git a/docs/source/contributing/support.rst b/docs/source/contributing/support.rst index 7524566561..5b29b7f79e 100644 --- a/docs/source/contributing/support.rst +++ b/docs/source/contributing/support.rst @@ -11,7 +11,7 @@ Please seek support in the following ways: #. Search for answers and ask questions on `DKAN Discussions `_. This is the most appropriate place for debugging issues specific to your use of the project, or figuring out how to use the project in a specific way. Please clearly explain what you are trying to do, and list what you have already attempted to solve the problem. Provide code samples, but do not attach your entire project for someone else to debug. #. Come back and tell the community if a particular solution worked for you or not. You will help people who come after you. -Be patient. DKAN maintainers are fully booked on projects that support the development of the module and may be slow to respond to discussions depending on work loads. +Be patient. DKAN maintainers work full time on projects that support the development of the module and may be slow to respond to discussions depending on work loads. Reporting a security issue -------------------------- From b826b6360bbc0e0135c25f2387365a71cd88a12f Mon Sep 17 00:00:00 2001 From: Janette Day Date: Fri, 6 Dec 2024 14:40:56 -0600 Subject: [PATCH 4/4] cypress woes --- cypress/integration/08_admin_views.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/cypress/integration/08_admin_views.spec.js b/cypress/integration/08_admin_views.spec.js index b183bda58c..f02934492a 100644 --- a/cypress/integration/08_admin_views.spec.js +++ b/cypress/integration/08_admin_views.spec.js @@ -48,6 +48,7 @@ context('Admin content and dataset views', () => { cy.get('input[aria-controls="select2-edit-field-json-metadata-0-value-keyword-keyword-0-results"]').type('open data{enter}') // End filling up keyword. cy.get('#edit-submit').click({ force:true }) + cy.wait(2000) cy.get('.button').contains('Yes').click({ force:true }) cy.get('.messages--status').should('contain','has been created') })