Commit 9b6c486a authored by Elber Rodrigues's avatar Elber Rodrigues Committed by Chris Wells
Browse files

Issue #3269587 by elber, andregp, volkswagenchick, Johnny Santos, NadiaFaucon,...

Issue #3269587 by elber, andregp, volkswagenchick, Johnny Santos, NadiaFaucon, chrisfromredfin, jjcs227: Missing contributor.md file
parent 89876978
Loading
Loading
Loading
Loading

contributor.md

0 → 100644
+93 −0
Changes for contributor.md: 93 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Set up for Development on DrupalPod

## First, what is Gitpod?
Gitpod can provide fully initialized, perfectly set-up developer environments
for any kind of software project. It is a container-based developer platform
that puts developer experience first. Gitpod provides ready-to-code developer
environments in the cloud accessible through your browser or your local IDE.

## What is DrupalPod?
DrupalPod allows you to work on Drupal contributions with the familiar setup of 
a “normal” Drupal website. No local LAMP stack is needed because it is all 
running in the cloud.

## How to configure DrupalPod?
1. Download the DrupalPod browser extension:
[Chrome](https://chrome.google.com/webstore/detail/drupalpod-helper-extensio/pjfjhkcfkhbemnbpkakjhmboacefmjjl?hl=en)
or [Firefox](https://addons.mozilla.org/en-US/firefox/addon/drupalpod)
2. Go to any issue page on Drupal.org (core, module, or theme)
3. Click on the DrupalPod extension
4. (Optional) Choose a patch / issue fork / branch

_NOTE: We recommend choosing the branch/issue fork, the "standard" profile, and
the latest version of Drupal (9.4.x at the time of this writing)._

## DrupalPod - Pushing Code
In order to push code a one time SSH key setup is required.

## From within a Gitpod workspace run:
1.  .gitpod/drupal/ssh/02-setup-private-ssh-sh
2.  Follow the instructions on the screen.
3.  .gitpod/drupal/ssh/04-confirm-ssh-setup.sh
4.  If SSH keys are valid, it stores your private SSH key as an environment
variable in Gitpod.

# Contributing without DrupalPod

-   Follow the [Git instructions](https://www.drupal.org/project/project_browser/git-instructions)
to clone project browser to your site.
-   In the `/project_browser` directory, install PHP dependencies with `composer
install`.
-   In the `/project_browser/sveltejs` directory install JS dependencies `yarn
install` and run the dev script `yarn dev` which will watch for filesystem
changes.
    -   Note: `yarn dev` will report the app is available at localhost,
    but it is better to use the fully available version in your Drupal site 
    at admin/modules/browse

If you are working on the Svelte frontend, you will need to install Svelte 
dependencies and start a "watcher" process. This will watch for changes that
affect the frontend and automatically re-compile.

```
cd sveltejs
yarn install
yarn dev
```

*__NOTE__: Every commit that affects any of the Svelte files should include the
compiled bundle.css, bundle.js, and bundle.js.map files. Even if you have been
watching with a `yarn dev` and compiling as you go, you must use `yarn build`
from the `sveltejs` folder in order to run a one-time production build to 
have your changes accepted.*

Another thing to consider is that we are working in the contrib space so we can
iterate quickly, but with an eye toward getting Project Browser accepted into
Drupal core. To that end, we should not do anything that we know would not be
allowed in core, and we are working against Claro as the theme it should
initially work with. Be sure to test using Claro as the admin theme.

# Why Svelte?

This module uses Svelte as a "frontend" framework. There are many reasons to
choose Svelte, but the primary reason is that it does not require this module
(or Drupal Core for that matter) to "ship" a frontend framework. Svelte is only
used during the development process. Before "shipping," the Svelte code is
compiled into "vanilla" HTML, CSS, and JS.

This avoids many of the security and deprecation issues that have historically
arisen from shipping jQuery with Drupal.

It also avoids many of the licensing, performance, and dependency concerns posed
by the possibility of using frameworks like React or Vue.


# What to work on?

We’re currently in the process of working toward an MVP, a true 1.0.0 release in
contrib. We have a “Contrib Kanban” board of issues that are required for the
MVP to be a success, so those issues may be the best ones to start with:

[https://contribkanban.com/board/ProjectBrowserMVP](https://contribkanban.com/board/ProjectBrowserMVP)

Otherwise, you can find any issue in the issue queue and push it through!