Giter Site home page Giter Site logo

bbc / digital-paper-edit-client Goto Github PK

View Code? Open in Web Editor NEW
43.0 18.0 12.0 20.76 MB

Work in progress - BBC News Labs digital paper edit project - React Client

Home Page: https://bbc.github.io/digital-paper-edit-client

License: Other

JavaScript 98.44% HTML 0.97% CSS 0.38% Python 0.21%
news-labs newslabs transcript speech-to-text stt interviews audio video paper-edit paperedit

digital-paper-edit-client's Introduction

Digital Paper Edit - Client

An application to make it faster, easier and more accessible to edit audio and video interviews using automatically generated transcriptions form STT service.

See intro and slides for more info on the project and user journey for a high level overview of the user journey.

Current status

The client and API was initially developed to be portable to any platform - i.e local, web, cloud provider, and Electron. We are currently developing and maintaining a firebase version that merged the functionalities of the client (this repo) and API. The BBC is not actively working on this repo and digital-paper-edit-api. This is because we are prioritising getting Digital Paper Edit in front of our journalists. For the full list of active/inactive DPE repos, see here.

A fork of the client and API is still being developed in the open, in a separate fork, thanks to @pietrop.

We don't want the opensource collaboration to stop, so we will be pulling in changes from the forks. If there's a valuable feature that we haven't yet implemented from the fork, please open an issue in this repo or get in touch with us!

Collaborating across forks

We will look at the changes in the fork and manually add them to our firebase version.

When manually adding changes to the changes from a fork - there are challenges of pulling in dependencies, such as:

[
  ("@bbc/aes31-adl-composer": "^1.0.1"),
  ("@bbc/digital-paper-edit-react-components": "^1.3.2"),
  ("@bbc/fcpx-xml-composer": "^1.0.0"),
  ("@bbc/react-transcript-editor": "^1.4.0")
];

These dependencies (non-exhaustive) they might've been forked also. In this case, this is a matter of updating the BBC's version with the newest changes from the dependency's forks and making sure everything works together.

For understanding the approach see this PR.


Project Architecture

It's a React, Express, Electron, Adobe CEP, AWS stack to be able to deploy one modular code base as a Web app or Cross platform Desktop app (for Mac, win and linux).

The project is organised across these repository

Active

Inactive

Archived

Micro services for web app backend


See here to see them as a list in github.

See modular architecture section for more details on the stack and the Modular Architecture ADR for more info on the implementation

The projects use npm semantic versioning

The project is divided into concurrent milestones as described here

And there are github project board for each milestone

With UX being an overarching milestone that cuts across these different parts

See UX Approach in docs guides for more info.

Setup

See optional getting setup with the visual code workspace to get up and running with the various repository needed for this project.

git clone [email protected]:bbc/digital-paper-edit-client.git
cd digital-paper-edit-client

Optional step to setup nvm to use node version 10, otherwise just use node version 10

nvm use || nvm install`

in root of project

npm install

Usage - development

In root of the client project (cd digital-paper-edit-client) start React

npm run start

To developer for the web app you will need to start setup and the API server as well.

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

Usage - production

The project is also publicly available in the npm registry @bbc/digital-paper-edit-client

you can add it to your project

npm install @bbc/digital-paper-edit-client

and eg in an express server you can serve the static build as follows

app.use("/", express.static(path.join(__dirname, '..', 'node_modules/@bbc/digital-paper-edit-client')));

System Architecture

Client - React, is setup using Create React App.

You can learn more in the Create React App documentation.

To learn React, check out the React documentation.

Development env

Node version is set in node version manager .nvmrc

Documentation

See docs folder

An architectural decision record (ADR) is a document that captures an important architectural decision made along with its context and consequences.

We are using this template for ADR

Build

npm run build

Build of react client side will be in build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

Electron

See docs for more information on how this works with Electron.

In public/index.html:

if (window.process && window.process.versions.electron) {
  const ElectronWrapper = require("../src/ElectronWrapper/index.js");
  window.ElectronWrapper = ElectronWrapper;
}

ElectronWrapper needs to be on the Electron render process otherwise (i.e. from the main process) the app will hang.

  1. run npm run build which will output a build folder
  2. move the build folder to digital-paper-edit-electron repository
  3. from digital-paper-edit-electron, run npm run start:prod

Running in development (npm start:dev) in digital-paper-edit-electron will not work. In development mode, the electron-main.js looks for the app served by webpack in src/ElectronWrapper/index.js, which doesn't resolve as that is in a different repository.

Tests

TBC

Test coverage using jest, to run tests

npm run test

During development you can use

npm run test:watch

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

Environment variables

.env contains environment variables config for the React client side app.

Do not store credentials in .env during development.

REACT_APP_NAME App name is used in browser title and navbar component.

Deployment

npm run publish:public

for more info on Create React app deployment:

See the section about deployment for more information.

Demo page on github pages

To update demo on github pages bbc.github.io/digital-paper-edit-client

npm run deploy:ghpages

Contributing

See CONTRIBUTING.md guidelines and CODE_OF_CONDUCT.md guidelines.

Licence

See LICENCE

Legal Disclaimer

Despite using React and DraftJs, the BBC is not promoting any Facebook products or other commercial interest.

digital-paper-edit-client's People

Contributors

dependabot[bot] avatar emettely avatar jamesdools avatar pietrop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

digital-paper-edit-client's Issues

Clicking on progress bar in programmes script video preview crashes the app

Describe the bug
clicking progress bar of Video preview (video context) component in programme script crashes the app.

To Reproduce
Steps to reproduce the behavior:

  1. Go to programme script in client http://localhost:3000/#/projects/1cjw29xii80000ird74yb19swa/paperedits/1112cjw29xii80000ird74yb19swa
  2. Select some text from transcript
  3. Click on 'Add Selection' (in the programme script)
  4. click 'Refresh Preview' (in the programme script)
  5. Click anywhere in the progress bar for video context
  6. See error
TypeError: Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite

Expected behavior
Expect to be able to click around the progress bar without crashing the app

Screenshots
Screen Shot 2019-07-11 at 15 54 06

Desktop (please complete the following information):

  • OS: OS X - 10.13.6
  • Browser Chrome - Version 75.0.3770.100 (Official Build) (64-bit)
  • Version 1.0.2

Additional context
NA

Cleaning up deps

Describe the bug
It's not a fully fledged bug, but more like a worm. There are so many deps, might be worth considering cleaning it up

To Reproduce
Steps to reproduce the behavior:
Install dependencies for the deployed NPM package.

Expected behavior
No errors or warnings from NPM.

Additional context

npm WARN deprecated [email protected]: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2.
npm WARN deprecated [email protected]: Way too old
npm WARN deprecated [email protected]: use String.prototype.padStart()
npm WARN deprecated [email protected]: Please upgrade to kleur@3 or migrate to 'ansi-colors' if you prefer the old syntax. Visit <https://github.com/lukeed/kleur/releases/tag/v3.0.0\> for migration path(s).
npm WARN deprecated [email protected]: I wrote this module a very long time ago; you should use something else.
npm WARN deprecated [email protected]: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN [email protected] requires a peer of acorn@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of [email protected] - 3 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of react@^15.6.1 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] requires a peer of typescript@* but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/chokidar/node_modules/fsevents/node_modules/rc/node_modules/minimist):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/media/workspace/digital-paper-edit-infrastructure/dpe-client/src/node_modules/chokidar/node_modules/fsevents/node_modules/rc/node_modules/minimist/package.json.3811107122'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents/node_modules/rc/node_modules/minimist):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/media/workspace/digital-paper-edit-infrastructure/dpe-client/src/node_modules/fsevents/node_modules/rc/node_modules/minimist/package.json.3191992871'


+ @bbc/[email protected]
added 71 packages from 30 contributors, removed 40 packages, updated 8 packages, moved 4 packages and audited 37212 packages in 93.944s
found 68 vulnerabilities (63 low, 5 high)
  run `npm audit fix` to fix them, or `npm audit` for details

VideoContext responsiveness 🐛

Describe the bug

VideoContext preview of paper edit is not responsive

To Reproduce
Steps to reproduce the behavior:

  1. Go to online demo projects-->paperedits (on chrome)
  2. See error

Expected behavior

This is what it looked like before - screenshot from electron app Version 1.0.9-alpha.1
Screenshot 2019-10-18 at 12 39 02

Screenshots

Screenshot 2019-10-18 at 12 36 13

Additional context

previewcanvas--videocontext in bbc.github.io/digital-paper-edit-storybook

Also there is CORS error in the demo (probl separate issue?)

Access to video at 'https://digital-paper-edit-demo.s3.eu-west-2.amazonaws.com/PBS-Frontline/The+Facebook+Dilemma+-+interviews/The+Facebook+Dilemma+-+Soleio+Cuervo-OIAUfZBd_7w.mp4' from origin 'https://bbc.github.io' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

I think that might be the CORS settings in S3

Usability testing

Usability testing
Date: roughly set for the week c/ 18.11.

Recruitment and facilitation options discussed with Nalika and Jenny H. (23.10.2019)
1.) Recruitment through external agency + facilitation with internal people
2.) Recruitment + facilitation through external agency

Recruiting people needs to be done through external agency because we can't pay people directly
[email protected]
Is the person who has contacts to external producers

To do:

  • Rough recruitment brief
  • Rough research objectives

React component to preview paper-cuts in paper-edits

Is your feature request related to a problem? Please describe.

As part of the Paper-edit view

Screen Shot 2019-04-18 at 13 54 26

As a user, I want to be able to get (watch or listen to) a preview of the paper-edit/program script so that I can see how my program's paper-cuts (transcripts text selections) will "render" as audio and/or video.

In the sketch, this would be the "canvas" - borrowing terminology from to the NLE video editors distinction between preview and canvas

Describe the solution you'd like

A React component that takes a sequence of audio or video clips as an input, with start and end time, and displays a player that can

  • Seamlessly play this EDL (edit decision list) without buffer or load time in between clips
  • Has player controls, such as
    • progress bar
    • play/pause
    • stop

Note that the component should be able to generate the preview if the sequence is made of audio, video or a mix of audio and video files.

In first version it could just deal with sequences of media, but it be good if in subsequent versions it could handle things like text, titles (as a possible way to display place holders for voice over text?) - this second part needs to be flashed out more. But the general thing to keep in mind is the extensibility of the elements to display, if that makes sense.

bbc/VideoContext

Main option considered is to use bbc/VideoContext within a React component.

See this issue for more details on how it works with an EDL(Edit Decision List) sequence of clips bbc/VideoContext#42

There are other examples and indications in the repo on how to enable, play, pause, and a progress bar.

I think under the hood, Video Context, used the HTML5 canvas to concat the videos in the sequence and then provides a unified interface to treat it as a single media.

Describe alternatives you've considered

Vanilla Js

in autoedit2, paper-editing because the files are stored locally, there's no network buffer issue when loading the different clips so used a vanilla js implementation that you can see in this js fiddle
This also uses media fragments to only get the specific segment.

BBC Video compositor

html5-video-compositor was a precoursor of bbc/VideoContext, now deprecated.

Popcorn JS

Popcorn js was a library by Mozilla, but is no longer mantained.
There was a JSfiddle with an example but
it's not working, coz no popcorn js CDN url is not valid.

The Documentation shows what the sequence function used to do

Hyperaud.io

Hyperaud.io was one of the first project to experiment with the idea of Hypertranscripts
and you can see in the hyperaud.io pad how you can mix from multiple selections and then get a preview.

I think under the hood two HTML5 video elements are cued up one after the other as a workaround to reduce load time of the media.

Additional context

For preview videos you could use two or more Ted Talks

Investigate technology and architecture for the Transcript feature

User Story / Context

We want an architecture for the transcript section of digital paper edit. The architecture will evolve and incorporate varying technologies, which we will need to evaluate.

  1. ffmpeg vs AWS elastic transcoder service
  2. EC2 vs Lambda etc.
  3. DB - SQLite vs NoSQL
  4. Preview of LQ files (MP4 vs webm)

Other notes

  • Make sure it's extendable
  • Consider open source
  • How frequently will it be used?
  • Electron compatibility

Acceptance Criteria

  • Output based on ADR - where we both agreed on technologies and architecture

Definitions of Done

  • Demonstrated: #5
  • Documentation
  • Peer reviewed by:

Text editing: truncate snippets

From research we found that a lot of producers wanted to remove parts of text in the Programme Script (without having to delete the entire snippet).

Although DPE is not an editing tool for refining the AV file, removing bits of snippets in the programme script can avoid another work around for producers.

The hypothesis is, the closer the rough cut comes to the final file by preventing producers to come up with more hacks THEN the producer is more likely to work in and use DPE – maybe for other kind of projects too.

S3 file upload cloud formation setup

Context

We want to upload directly to S3 from the client using the signed URL.

Acceptance Criteria

  • Set up S3 in Cloudformation and deploy in Cosmos (infrastructure repository)

-Make sure upload of files are only done through signed URLs, retrieved from the API-
(moved to a different ticket)

Some useful references

Should we add timecodes to transcript in the Workspace UI?

This is SUPER TBD, dependant on the outcomes of User Research!


Background

For reference, we used to have a little bit of commented code from Pietro which demonstrated how to do it in packages/components/ProgrammeScriptContainer/ProgrammeElements/PaperCut.js which was removed during migrating ProgrammeScriptContainer to the Storybook.

// In PaperCut() function
// TODO could wrap words in span and add timecodes to make it cliccable on programme script
<Col sm={ 3 } className={ 'text-truncate text-muted' }
// TODO: could add timecode from eg -  ${ shortTimecode(this.props.words[0].start) }
// TODO: Could add transcript name along side the timecode for the paper-cut
{/* <br/> */}
{/* <u style={ { cursor: 'pointer' } }>00:01:20</u> */}
{/* <br/> */}
{/* <FontAwesomeIcon icon={ faTag } />TagExample */}

Demo page will not work with BrowserRouter

Describe the bug
The build and the demo page is showing an error message, but no console errors.
This is due to the browserrouter replacing the hashrouter in refactor for npm-simple-refactor. The browser router does not work with dynamic paths when the hosted websites have paths already in them.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://bbc.github.io/digital-paper-edit-client/

or

  1. Run build for demo page - and then open index.html

Expected behavior
Should not have an error message, and should show bottom screenshot.

Screenshots
Screen Shot 2019-10-19 at 12 02 00
should be
Screen Shot 2019-10-19 at 12 04 23

Additional context
See below.

Adding audio for demo and utilise mediaType prop for React-Transcript-Editor

Is your feature request related to a problem? Please describe.
Need to add audio to the demo page. Currently we don't make any differences based on audio or video file content. This is just for the demo only and needs a proper solution for the actual DPE Client (e.g. determine MIME type on file upload) and API (update database in transcripts to have mediaType).

Describe the solution you'd like

  • Update database in public/db with an audio file ready to be demoed.
  • Add audio file to URL in db, with legit file (s3 bucket)
  • Should also take advantage of react-transcript-editor's audio content display as well
  • The demo page is updated with the above changes in place and ready to view

Describe alternatives you've considered
Not having it would be easier, but could make DPE less impressionable for people who only care about audio content.

Additional context

UX Investigate and evaluate sharing feature

Is your feature request related to a problem? Please describe.
Not a problem so to speak - but there's been quite a lot of chatter from UX interviews that they'd want a more collaborative way to work. One of the suggested ways was to "Share". We want to understand what the size of the demand is and what it solves.

Describe the solution you'd like
A decision on the sharing feature.

Describe alternatives you've considered
The alternative is not allow users to directly share in DPE's UI, but they'll share the files exported from DPE.

Additional context

Client doesn't communicate to the server in local dev

Describe the bug
Client doesn't communicate to the server in local dev

To Reproduce
in server npm run start:dev

in client npm run start:dev
I get this screen with error in console

Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

Screen Shot 2019-06-25 at 11 02 30

Expected behaviour

Expect to see this

Screen Shot 2019-06-25 at 11 02 06

Additional context
PR with fix coming up

Copy Feedback ‘Show it’s been used’

Once copy of selection is displayed in Programme Script, original selection should be signposted as being copied – that the clips have been used. This will help with users being able to quickly identify what has already been used.

Autosave

Is your feature request related to a problem? Please describe.

Since the build is still quite not stable (see bug reports of app crashing), automatic save is needed as a workaround feature. It's quite handy to have any ways!

Describe the solution you'd like
I would like the automatic save to happen. This can be at the frequency that is suitable for the application to run still smoothly - after every transfer, adding of elements, etc. Maybe there should be an indication that it is automatically saved somewhere - but that is secondary to having the feature.

Additional context
There have been quite a few suggestions during workshops and UX research.

The current code for save is in the Programme Script Component.

Security tightened for API and Client communication

Context

The security for the API is completely loose right now for easier experimentation. We do not yet have any business critical data in the API. However this will change and we should tighten communication of the API.

Issues relating to this:
bbc/digital-paper-edit-api#7

Todo

  1. Revert changes in bbc/digital-paper-edit-api@ad0e351 to be like this: bbc/digital-paper-edit-api@b9d30f1
  2. set up requests using certs in the Client. This would imply that the cert is an optional environment variable.

UX investigations: transfer

See discussions below, let's try and narrow down as much as possible, based on rapid UX research findings.

What we are NOT doing

  1. drag and drop (error prone)
  2. Automatically populating transfer
  3. Transferring transcript blocks, instead we will select text and copy them over

What we are doing

  1. Paste interaction in the form of dotted lines between text

Options

Selected text can be transferred by

  1. hover menu
  2. copy button (dividers between programme script blocks, arrow button, contextual buttons)

20191007_175810

Show Programme Script's aggregated time

Is your feature request related to a problem? Please describe.
There's been numerous feedback regarding the, "how long is my output video"?
Related to first check box in #45 and there's a comment from @pietrop about how to go on about it.

Describe the solution you'd like
See comment in #45
The solution is a time display from the video context preview, somewhere in the workspace (preferably in the programme script).

Be wary...

There are limitations around updating the video context preview see bbc/digital-paper-edit-storybook#22
It is related but this ticket is not blocked by it.

Describe alternatives you've considered

Additional context

Cloud formation add RDS DB to API Server

User Story / Context

Cloud formation add RDS DB to API Server

Acceptance Criteria

  • Set up RDS in Cloud formation and deploy in Cosmos
  • The RDS can only be written from the API

Definitions of Done

  • Runs locally
  • Runs remotely
  • Test passes
  • Demonstrated
  • Deployed to Cosmos on Test and Live
  • Documentation
    • Developer Documentation - [repo's README|]
    • Stakeholder Documentation - [Confluence|]
    • Operational Documentation - [Runbook|]
  • Peer reviewed by:

On save, transcript's detail disappears and becomes undefined in programme script

Describe the bug
This is a bug in the ui-tweaks branch in changes between #40 (including) to the most recent changes and needs to be resolved before ui-tweaks can be merged in into master.
Transcript, on update loses details in the cards and in the Programme Script UI becomes undefined.

To Reproduce
Steps to reproduce the behaviour:

  1. Click a transcript
  2. In transcript editing UI click "save"
  3. Go back to project page
  4. See missing details (icon + description)
  5. Go to programmme script tab
  6. See transcript show on the left hand side as "undefined"

Expected behavior
No missing details after save or undefined state of transcript.

Screenshots

Seen:
Screen Shot 2019-08-30 at 13 48 12
Screen Shot 2019-08-30 at 13 46 37

Expected:
Screen Shot 2019-08-30 at 13 53 56

Desktop (please complete the following information):

  • OS: mac
  • Browser firefox
  • Version [e.g. 22]

UX Changes from ui-tweaks around fluid containers

Describe the bug
This is comparing the changes between #40 (including) to the most recent changes in ui-tweaks.

Originally the boxes didn't bleed into the transcript column.
Screen Shot 2019-08-30 at 13 58 25

After ui-tweaks update, this is what it looks like.
Screen Shot 2019-08-30 at 13 58 22

To Reproduce
Steps to reproduce the behavior:

  1. Go to programme script
  2. select one
  3. make the window as small as possible, before it changes layout.

Expected behavior
Similar CSS behaviour to before.

Screenshots
See above.

Original source

display contributor, labels are important because multiple pieces of footage

Rapid User Testing with shortlisted UX features (Re-order and Transfer)

Is your feature request related to a problem? Please describe.
We would like to make informed decisions when developing an idea further and taking it to development. Therefor we are conducting the rapid testing sessions with actual users to gather their feedback and opinion on our shortlisted ideas.

Methodology
Finding, 30 mins testing with paper, evaluation and analysis.
The number o participants will depend on whether some of the people who approached us are willing to give feedback again.

We are separating testing sessions for 'Reordering' and 'Transfer' to keep the sessions short.

Schedule for testing
https://paper.dropbox.com/doc/Research-II-schedule-and-content--Ak4iKgyNmi200lb4giW81FGeAQ-ElAKmqWz4hAxhMB6yq8Z4

Discussion guide
https://paper.dropbox.com/doc/DPE-Rapid-in-house-testing--Ak4KpHaXZmOpPRV0H9VF8040AQ-c2OJVZMlfdPEWT4kcQJIy

BBC Video Context - How Tos

Some things to figure out about how BBC Video Context React wrapper could work to integrate with DPE functionalities

  • 1. How to show total duration of media for a playlist input
  • 2. How to show showing current time while playing
  • 3. How to flatten the progress bar (see @melnyczuk 's PR #41 & #41 (comment))
  • 4. How to make the BBC Video context jump to a specific point, eg equivalent of .currentTime = for HTML5 video/audio element. (eg to enable functionalities such as click on a word in programme script, after calculating offset etc..)
  • 5. how to update a playlist in video context

cc @PTaylour @melnyczuk

Build fail on Jenkins due to Javascript out of heap

Context

Build fails on Jenkins due to Javascript heap (and possibly other things, such as node-sass).
The mock package from fedora creates a mocked environment. This is missing the python2 package needed for pulling in node-sass bind to build the RPM.

Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.cfcqrlft:/...skipping...
gyp verb `which` failed Error: not found: python2
...skipping...
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:89:16
gyp verb `which` failed     at /builddir/build/BUILD/digital-paper-edit-client/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /builddir/build/BUILD/digital-paper-edit-client/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:123:15)
gyp verb `which` failed  python2 { Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:89:16
gyp verb `which` failed     at /builddir/build/BUILD/digital-paper-edit-client/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /builddir/build/BUILD/digital-paper-edit-client/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:123:15)
gyp verb `which` failed   stack: 'Error: not found: python2\n    at getNotFoundError (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:13:12)\n    at F (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:68:19)\n    at E (/builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:80:29)\n    at /builddir/build/BUILD/digital-paper-edit-client/node_modules/which/which.js:89:16\n    at /builddir/build/BUILD/digital-paper-edit-client/node_modules/isexe/index.js:42:5\n    at /builddir/build/BUILD/digital-paper-edit-client/node_modules/isexe/mode.js:8:5\n    at FSReqWrap.oncomplete (fs.js:123:15)',
gyp verb `which` failed   code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` failed Error: not found: python

Acceptance Criteria

Build succeeds and digital-paper-edit int tools has a new version of the client RPM.

Additional Context

https://fedoraproject.org/wiki/Using_Mock_to_test_package_builds#Building_packages_that_depend_on_packages_not_in_a_repository
https://jenkins.newslabs.tools.bbc.co.uk/job/digital-paper-edit-client/36/console

test

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.