Hygiene: Move build/ext.popups/ to src/

This way, src contains sources, and dist contains distribution files.

Also, add some documentation about the folders in the README and an adr.

Change-Id: Ie0b9f6475b8423b90e927633d883bde3cd5d5e4d
This commit is contained in:
joakin 2017-02-13 15:02:18 +01:00 committed by jdlrobson
parent c593ed3502
commit fa2b10a2e7
39 changed files with 53 additions and 5 deletions

3
.gitattributes vendored
View file

@ -1,2 +1 @@
resources/ext.popups/index.js -diff -whitespace resources/dist/** -diff -whitespace
resources/ext.popups/index.js.map -diff -whitespace

View file

@ -23,7 +23,7 @@ module.exports = function ( grunt ) {
] ]
}, },
all: [ all: [
'build/**', 'src/**',
'resources/ext.popups/*.js', 'resources/ext.popups/*.js',
'resources/ext.popups/**/*.js', 'resources/ext.popups/**/*.js',
'!resources/dist/index.js', '!resources/dist/index.js',

View file

@ -6,7 +6,13 @@ what it does.
## Development ## Development
Popups uses an asset bundler so when developing for the extension you'll need Popups uses an asset bundler so when developing for the extension you'll need
to run a script to assemble the frontend assets. So, after an `npm install`: to run a script to assemble the frontend assets.
You can find the frontend source files in `src/`, the compiled sources in
`resources/dist/`, and other frontend assets managed by resource loader in
`resources/*`.
After an `npm install`:
* `npm start` Will run the bundler in watch mode, re-assembling the files on * `npm start` Will run the bundler in watch mode, re-assembling the files on
file change. file change.

View file

@ -0,0 +1,43 @@
# 1. Frontend sources directory structure
Date: 14/02/2017
## Status
Accepted
## Context
With the addition of a frontend bundler, there are now assets that are the
source, and assets that are for distribution.
Before, all assets were distribution ones stored in `resources/`, just
a configurable convention used by the Reading Web team for using MediaWiki's
ResourceLoader.
In order to facilitate the CI checks and understanding where sources are and
where compiled sources are, we need to chose two distinct paths for storing
sources and distribution files.
## Decision
After some discussion, because of ease of understanding to the wider
development community and the good mapping between the name and what they
contain, we chose to:
* Put unbundled frontend sources in `src/`.
* Put bundled distribution files in `dist/` under `resources/` in
`resources/dist/`.
* Files directly distributed by ResourceLoader remain under `resources/*` to
follow Reading Web Team's conventions around assets used by ResourceLoader.
## Consequences
* Frontend sources will be under `src/`.
* After `npm start` or `npm run build` the bundled sources will be under
`resources/dist`.
* Jenkins will check in continuous integration that the sources under `src/`
are actually compiled when commited under `resources/dist`.
* If the `src` path where to become inconvenient because we wanted to add other
types of sources in it, we'll move the frontend assets to `src/js` or
something more specific.

Binary file not shown.

View file

@ -13,7 +13,7 @@ module.exports = {
filename: '/[name].js' filename: '/[name].js'
}, },
entry: { entry: {
index: './build/ext.popups/index.js' index: './src/index.js'
}, },
devtool: 'source-map' devtool: 'source-map'
}; };