az-digital / az_quickstart Goto Github PK
View Code? Open in Web Editor NEWUArizona's web content management system built with Drupal 10.
Home Page: https://quickstart.arizona.edu
License: GNU General Public License v2.0
UArizona's web content management system built with Drupal 10.
Home Page: https://quickstart.arizona.edu
License: GNU General Public License v2.0
It was noticed in #42 that the existing eslintrc file in use by Drupal core that provides our lint settings is rather geared towards ES6 and transpiled ES5, rather than standard ES5. This lead to the realization that Drupal core's process for how they develop javascript has changed in Drupal 8/9:
*.es6.js
filesyarn
and babel
to transpile the es6.js
files to .js
files, which are what is actually used by the Drupal theme infrastructure.js
files are not intended to be editable by humans.js
files are a committed part of the codebase; they are not transpiled on the fly during site operation.More information:
https://www.drupal.org/node/2815083
As documented at https://confluence.arizona.edu/pages/viewpage.action?pageId=105505925 we elected that it would be good to follow this same path, and that we should update our tooling to allow for usage of this process. Going forward, this means we would write our javascript in es6, and allow babel to create the browser-usable versions.
A good first step in that regard would be to update our Lando and DDEV workflows to allow for yarn to be installed and have tooling to run a babel transpile process on our install profile's future .es6.js
files.
Please see Drupal core's core/package.json
for necessary dependencies.
It's currently difficult to write ES5 javascript code that passes the drupal core eslint settings.
Yarn tooling integrated into Lando/DDEV set up with scripts to transpile .es6.js files. It would also be nice if there was "watch" functionality to transpile whenever files change. It's possible that lack of true inotify
support in VMs may complicate watch functionality - TBD.
Available alternatives:
eslintrc.json
to avoid problematic eslint sniffs that are difficult to avoid in readable ES5.This avenue was chosen due to desiring to follow core-friendly workflows, and the knowledge that ES6 will gradually become the browser standard as time goes on.
For D7, @kevcooper added some basic functionality to uaqs_mail to add specific information to mail headers (related to Pantheon site information and SES configuration set and message tags) (see http://jira.arizona.edu/browse/UADIGITAL-2223).
We'd like to have the ability to do this in D8 as well.
@kevcooper Also suggested we could expose some site configuration settings that would allow site owners to pick and choose which information to attach to outbound messages. @tadean suggested that some more generic information such as the Drupal site name could also be useful.
The contrib Display Suite module was added as a dependency as part of #38 and #39. We need to decide whether we want to keep the module as a dependency long term or not.
Display Suite was used for #39 primarily because @akslay preferred the more minimal markup of the Display Suite provided layout plugin templates over the layout plugin templates provided by core out of the box. It should be possible to create our own layout plugins and templates with whatever markup we want as a replacement if none of the other features provided by the module are needed/used.
As is, the module has added stub configuration to the third_party_settings
of various other exported configuration entities including entity_view_display settings which we probably don't want to have to maintain if not really needed (example third party settings). We should determine if any of the exported Display Suite third party settings are actually needed/being used for anything.
Describe the bug
The probo check for Drupal 8 Coding Standards has two errors and one warning
7FILE: ...tart-scaffolding/web/profiles/custom/az_quickstart/COPYRIGHT.txt
8----------------------------------------------------------------------
9FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
10----------------------------------------------------------------------
11 1 | WARNING | Line exceeds 80 characters; contains 114 characters
...
15FILE: ...rt-scaffolding/web/profiles/custom/az_quickstart/CONTRIBUTING.md
16----------------------------------------------------------------------
17FOUND 1 ERROR AND 1 WARNING AFFECTING 2 LINES
18----------------------------------------------------------------------
19 36 | WARNING | [ ] Line exceeds 80 characters; contains 94
20 | | characters
21 84 | ERROR | [x] Expected 1 newline at end of file; 0 found
22----------------------------------------------------------------------
23PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
https://app.probo.ci/#/dashboard/build/a98bdae6-a28e-4467-8aec-a30fa6d74c14/task/5c1139dfff400001
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Drupal 8 Coding Standards only fail if the pull request introduces non-standard code
Create new content editor role
Do not disclose security vulnerabilities here, please email us instead:
[email protected]
Currently, there are only local development instructions for Lando; however, there's a known issue for Lando and Pantheon, which doesn't allow a user to access information for a given Pantheon site, so providing an alternative local development process is necessary for Pantheon users who might also want to contribute to Quickstart.
Add basic instructions for creating a local working copy of a Quickstart site using DDEV.
There are already instructions for Lando, but as listed above, Lando has some limitations when used with Pantheon sites and some users prefer DDEV to Lando, so offering an alternative is useful.
N/A
name: Feature request
about: Add az_cas module to override default CAS settings unique to the University of Arizona.
labels: 'enhancement'
assignees: 'trackleft'
As an affiliate of the University of Arizona I would like to be able to log into an az_quickstart site via the centralized authentication system.
No
CAS module installs and az_cas module overrides the initial settings.
As of version 8.x-1.0-beta1, the Layout Builder Styles module does not provide a way to control the order which layout builder styles are listed on the Layout Builder interface.
When adding a block to a page with Layout Builder, the layout builder styles are presented in a seemingly random order.
A patch has been uploaded to drupal.org by one of the module maintainers that adds weight to layout builder styles allowing manual ordering. We should try this patch and if it works, update our exported layout builder styles to include weights.
@akslay and @joeparsons worked on a much simpler patch that would have just applied an alphabetical order to the layout builder styles but the patch now available from the module maintainer looks more promising.
Name | Installed version | Recommended version |
---|---|---|
Drupal core | 8.8.1 | 8.8.2 (Release notes) |
We need to be able to run D8 Javascript Functional Tests both locally and on our CI tools.
We should look into what Drupal.org is doing for this and also at what tools are already installed/available on ProboCI's docker images.
UC Davis' SiteFarm project has Functional Javascript tests and they use ProboCI.
As a Quickstart site administrator, I'd like to have default roles with sensible permissions already configured when I create a new Quickstart site.
As a site administrator, I would like to be able to change permissions associated with roles without worrying about losing my changes on code updates.
As a Quickstart developer I would like to be able to add new features and assign roles and permissions for new installations of Quickstart, as well as provide defaults for when said feature is enabled.
Our dev and test dependencies are currently defined and configured primarily in our az-quickstart-scaffolding repo.
As we've continued to work more on Quickstart, we've found that:
Investigate and experiment with making our scaffolding repo as minimal as possible by moving dependencies from the scaffold repo to the profile repo.
A potential blocker that was brought up by @tadean was that the zaporylie/composer-drupal-optimizations
composer plugin we are currently using has to be defined/configured in the "root" composer project to function correctly. This may also be true for drupal/core-composer-scaffold
.
@tadean and @joeparsons discussed some potential changes/workarounds that would be worth experimenting with:
drupal/core-composer-scaffold
in scaffold repo but experiment with moving actual dependency to profile repodrupal/core-composer-scaffold
in the scaffolding repo's composer.json and let it select the version defined by the profile automaticallyzaporylie/composer-drupal-optimizations
helps a lot, but it wouldn't be the end of the world to not have it. (And maybe we could implement something with a similar in the profile to what it's doing - it's basically just composer trickery that truncates symfony packages.)We need to create a Pantheon upstream that can be used for basic AZ Quickstart sites on the Pantheon platform.
Pantheon is working on a new platform feature that will support composer dependency installation on the platform without needing to use external build/CI tools which should be suitable for sites needing to add their own composer dependencies but there will still be a certain number of sites that can be managed using Pantheon's traditional upstream repository model that we want to maintain an artifact repository for.
Maintain current functionality... or use the User as the Person in the future.
The Layout Plugins provided by display suite do not seem to function properly with Layout Builder Drag and Drop functionality.
When a layout builder section is created from one of the layout plugins provided by display suite, it doesn't seem possible to drag and drop blocks within the section. This is also present in a fresh non-quickstart Drupal site using nothing but layout builder and the latest display suite.
Steps to reproduce the behavior:
It seems like this may be caused by missing markup that Layout Builder is expecting. Add potential patch to fix missing markup, or potentially switch to other Layout plugins (#45 ) that do not have the issue (custom plugins, bootstrap_layouts
, etc)
Blocks should be able to be reordered within a section via drag and drop.
Note that the DS Layout Plugin is missing the hashed outline that is present from the standard layout plugins. It seems like some markup may be missing.
Describe the bug
The PR template we added in #10 doesn't seem to be working. This appears to be because the file we added is named PULL_REQUEST_TEMPLATE.md
instead of pull_request_template.md
.
To Reproduce
Steps to reproduce the behavior:
According to GitHub's docs, the template should be called .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
, not .github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.md
.
Do not disclose security vulnerabilities here, please email us instead:
[email protected]
Someone who hasn't drank enough coffee ☕️(like me this morning) might not connect "how to contribute" with "how to build locally." So this quick readme update aims to tease all the great info on that apge
Use [email protected] instead of [email protected] for security reports.
As part of PR #21 we added three new issue types.
task
spike
user story
We should add task as one of the pull request types. Also we should add spike and user story as other ways to contribute
The Layout Builder Revision UI doesn't currently function correctly. It's not possible to write a revision message or disable the creation of revisions due to the form elements not being used. This is necessary for future work on review workflow.
The form elements for the above functions need to be added to the Layout Builder form so that they're available to the user. The backend functionality for these already exists as part of the entity system.
Steps to reproduce the behavior:
Drupal.org issue provides a patch for this functionality - investigate adding this to Quickstart.
It should be possible to add a revision message, and enable or disable a revision being created.
Core and contrib dependencies can now be specified with drupal.org project namespaces in .info.yml files. This is now recommended by Drupal.org.
Add project namespaces to dependencies in .info.yml files as documented on Drupal.org:
https://www.drupal.org/docs/8/creating-custom-modules/let-drupal-8-know-about-your-module-with-an-infoyml-file
https://www.drupal.org/node/2299747
Only references to core and contrib projects hosted on drupal.org should be updated. Our own custom modules can continue to be referenced in the non-namespaced way.
Do not disclose security vulnerabilities here, please email us instead:
[email protected]
Is your feature request related to a problem? Please describe.
The current issue types of Feature Request and Bug Report aren't suitable for all tasks.
Describe the solution you'd like
Add issue templates for User Story, Task, and Spike to match our workflow from JIRA.
The anonymous review feature of UA Quickstart (D7) has seen a large increase in usage across many Quickstart sites over the last couple of weeks. We need to make sure that the way we're implementing flexible pages for Quickstart 2.0 (blocks, layout builder, etc) won't prevent us from being able to support the same functionality going forward.
GitHub currently recognizes az_quickstart as a CSS project and doesn't correctly recognize various vendor/generated files as such.
We can improve this by adding some rules to a .gitattributes
file as documented here:
https://github.com/github/linguist#overrides
Getting issues from all over the place without any proposed resolution is almost counterproductive and can add friction where there doesn't need to be.
Add "Proposed Resolution" to feature request and bug_report issue templates
"Describe the solution you'd like" sounds more condescending and dismissive.
Currently the feature request issue template has "Describe the solution you'd like" as part of it.
We would like to encourage people to author and run tests locally before making a PR, plus would like to document things with less friction, setup time.
Currently every time I want to run a phpunit test, I have to set
export SIMPLETEST_BASE_URL="http://localhost"
export SIMPLETEST_DB="mysql://drupal8:drupal8@database/drupal8"
Add simpletest environment variables to lando config, and other local dev config files.
Do not disclose security vulnerabilities here, please email us instead:
[email protected]
We need to figure out what's needed to be able to start tagging Quickstart releases:
During planning of our MVP for usage of Layout Builder, we have identified a few workflow customizations we would like to implement. It would be desirable if we could gather these customizations to LayoutBuilder workflows inside one of our custom modules related to Layout.
It's recently become possible in Drupal 8.8.0 to override the LayoutBuilder class in use, and it might be useful to implement a LayoutBuilder subclass that can be used to hold these customizations, to go along with the new changes in #38
Some initial targets for this might consist as follows:
Describe the bug
Our composer.json file references http://uadigital.arizona.edu.
Expected behavior
We should reference https://digital.arizona.edu instead.
Progress on this Epic is hinging on our decision on the best way to move forward with delivering a Flexible Page Content Type.
The options are:
This is our process and timeline to make the decision:
Is your feature request related to a problem? Please describe.
Currently, reviewers need to be manually selected / added to PRs.
Describe the solution you'd like
We should take advantage of GItHub's Code Owners feature to make adding reviewers to PRs easier.
Describe alternatives you've considered
GitHub doesn't seem to have repo configuration settings for adding default reviewers like BitBucket does.
As a developer, I would like to benefit from code hinting and a better editing experience overall.
Code editing is done within a docker container, which is often inaccessible to IDE's like sublime text or even vim.
Add info about IDE integration into docker container directories.
Original D7 issue: https://jira.arizona.edu/browse/UADIGITAL-1419
As a Quickstart site administrator, I need to be able to automatically provision and de-provision Drupal user accounts and roles based on Grouper group membership(s) and potentially other attributes from a central directory.
Many University websites are administered or supported by one or more teams. Some teams support a large number of websites. The task of ensuring that team members have appropriate administrative access to all team-supported websites is compounded for teams with a a lot of turnover (e.g. teams that employ a lot of student employees).
Grouper is an enterprise-wide group management system for university related groups of people, teams, or departments. Grouper is well suited as an authorization system for role-based access to other systems or resources.
"drupal/bootstrap_barrio": "4.22"
, updated in composer.json to "drupal/bootstrap_barrio": "4.23"
,missing theme config schema
patch removed from composer.json.Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Maintain UA Zen functionality
We need to make the decision on whether or not to use Display Suite during the next Workshop.
The rest of the Arizona Barrio work has been moved into the Finish Barrio epic which can be completed after we finish up either the Navigation or Flexible Page epics.
The default path provided for the bootstrap
option in our phpunit.xml.dist
configuration file works for ProboCI but does not work for lando or ddev.
In our phpunit.xml.dist
configuration file we current specify these top level attributes:
<phpunit bootstrap="../../../core/tests/bootstrap.php" colors="true">
The path provided for the bootstrap script was based on what worked for ProboCI. Unfortunately, in order for someone to run our PHPUnit tests with lando or ddev, they need to modify that value to be /app/web/core/tests/bootstrap.php
.
Try running phpunit inside a lando or ddev container.
We should either make the bootstrap
value provided in phpunit.xml.dist
be something that works on more environments or consider removing it and document how to specify a bootstrap value at runtime using the --bootstrap
command line option.
Someone following our documented steps for running PHPUnit tests should not need to make changes to the phpunit.xml.dist
file. Our ProboCI configuration could be changed to provide runtime configuration options as needed.
On line 148 of modules/custom/az_core/src/Form/QuickstartCoreSettingsForm.php the !=
operator is used.
We should use !==
unless we explicitly want to convert type.
Do not disclose security vulnerabilities here, please email us instead:
[email protected]
There is an initiative underway to create a design system that all designers across campus can use to design components for web and mobile apps.
With this in mind, we may need to decouple component design from Drupal into a component designer like storybook with arizona bootstrap and drupal integration.
This will not solve for other frameworks like angular or react, but could make it easier to convert from one framework to another.
Here is an article to follow when creating the proof of concept. https://medium.com/@askibinski/integrating-storybook-with-drupal-ddabfc6c2f9d
There should be easy to find instructions on how to contribute to this project. Some things to include would be:
Have a way to deliver QS through Pantheon
As a site administrator, I'd like to be able to send mail from my site.
Maintain current functionality
Determine if part of MVP and where in priority
https://www.drupal.org/sa-core-2020-001
Update Drupal core to version 8.8.4.
Several features were not added or not enabled with the initial AZ Barrio theme that exist in UA Zen. There are also some new features in UA Zen that should be imported to AZ Barrio.
Continue AZ Barrio development for UA Zen parity.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.