72 lines
3.5 KiB
Markdown
72 lines
3.5 KiB
Markdown
# Webamp NPM Module
|
|
|
|
## Development
|
|
|
|
I do most development by starting the demo site in dev mode and iterating that way. The following commands will install all dependencies, run an initial development build and then start a local server. Every time you save a file, it will rebuild the bundle and automatically refresh the page.
|
|
|
|
# First clone the repo, then...
|
|
cd webamp
|
|
# Change into the NPM module's sub directory
|
|
cd packages/webamp
|
|
# __Note:__ Please use yarn over npm, since yarn will respect our `yarn.lock` file
|
|
yarn install
|
|
yarn start
|
|
|
|
`http://localhost:8080/` should automatically open in your browser.
|
|
|
|
# Run tests and lint checks
|
|
yarn test
|
|
|
|
## Building
|
|
|
|
The NPM module is built separately from the demo site. To build it run:
|
|
|
|
yarn run build-library
|
|
|
|
This will write files to `./built`.
|
|
|
|
## Testing
|
|
|
|
yarn test
|
|
|
|
This will run the tests the linter and the type checker.
|
|
|
|
To update snapshots run
|
|
|
|
yarn test -u
|
|
|
|
## Cutting a Release
|
|
|
|
1. Update the version number in `package.json`
|
|
2. Rename the "Next" title at the top of `CHANGELOG.md` to the new version number and ensure it is up to date
|
|
3. Update the static `VERSION` property of the `Webamp` class in `webamplazy.tsx`
|
|
4. Git commit
|
|
5. `npm publish`
|
|
6. Git tag the commit (e.g. `1.4.2` or `1.4.3-beta.3`)
|
|
7.
|
|
|
|
## Reference
|
|
|
|
- [skinspecs.pdf](http://members.xoom.it/skinart/tutorial/skinspecs..pdf)
|
|
- [Skinner's Atlas 1.5 by Jellby](http://forums.winamp.com/showthread.php?p=951257)
|
|
- [Winamp Skinning Tutorial](http://people.xmms2.org/~tru/promoe/Winamp_skinning_tutorial_1_5_0.pdf)
|
|
- Sacrat Skinning tutorial parts [1](http://www.hugi.scene.org/online/hugi26/hugi%2026%20-%20graphics%20skinning%20sacrat%20winamp%20skinning%20tutorial%20-%201.htm), [2](http://www.hugi.scene.org/online/hugi26/hugi%2026%20-%20graphics%20skinning%20sacrat%20winamp%20skinning%20tutorial%20-%202.htm), [3](http://www.hugi.scene.org/online/hugi26/hugi%2026%20-%20graphics%20skinning%20sacrat%20winamp%20skinning%20tutorial%20-%203.htm), [4](http://www.hugi.scene.org/online/hugi26/hugi%2026%20-%20graphics%20skinning%20sacrat%20winamp%20skinning%20tutorial%20-%204.htm), and [5](http://www.hugi.scene.org/online/hugi26/hugi%2026%20-%20graphics%20skinning%20sacrat%20winamp%20skinning%20tutorial%20-%205.htm),
|
|
- [Winamp Wiki](http://wiki.winamp.com/wiki/Creating_Classic_Skins)
|
|
|
|
## Predecessors
|
|
|
|
- [Webamp2x](http://forums.winamp.com/showthread.php?threadid=91850) An
|
|
impressive implementation from 2002(!).
|
|
- [JsAmp](http://freecog.net/2005/jsamp/demo/MainWindow.xhtml) An implementation from 2005 by @twm (via [Hacker News](https://news.ycombinator.com/item?id=15317723)).
|
|
- [LlamaCloud Comp](https://vimeo.com/20149683) From 2011 by [Lee Martin](http://www.leemartin.com/) (via [Twitter](https://twitter.com/leemartin/status/910235793737814017))
|
|
- [Winamp em HTML5 e Javascript](http://www.tidbits.com.br/winamp-em-html5-e-javascript)
|
|
In 2010 a developer named Danilo posted one of his HTML5 experiments: "an
|
|
audio player simulating good old Winamp". You will have to download the zip
|
|
file.
|
|
- [JuicyDrop](http://cggaurav.github.io/juicydrop/) An HTML5 implementation with
|
|
less emphasis on being true to the skin, but fully featured visualizations.
|
|
@cggaurav is keeping it alive on [GitHub](https://github.com/cggaurav/juicydrop)
|
|
- [Spotiamp](https://web.archive.org/web/20160109180426/http://spotiamp.com/)
|
|
The folks at Spotify reimplemented Winamp as a frontend for Spotify. Not in a
|
|
browser, and only runs on Windows. It has since been discontinued.
|