9c4ea85041
Despite being a bit gross to look at, this brings a few advantages: - Tests are now closer to what actually runs, so more likely to find broken stuff. - We can start using things that were so far Webpack-only or browser-only, like ES6 imports, loading Handlebars templates, etc. - We open ourselves to browser testing (there is some work to do, but that would be a necessary step). - We improve the client/server separation, by making it possible to run them independently I do some extra steps around coverage: now we have 2 reports (client + server), so I have an extra step to combine them (the `nyc report` part). This is strictly to keep feature parity (the coverage report of this code is effectively the same as before), but in the near future, we might want to keep both reports separate, for example to continue separating client/server. Another reason would be to use something like Codecov, which I believe has the ability to have multiple reports. This is down the road though, our coverage is not good enough to make hosting them somewhere be useful (I think). A few extras with this commit: - Coverage summary is displayed when tests are run (this is not slowing down tests) - Tests check for leaks (see https://mochajs.org/#--check-leaks) - Tests now output with the `dot` reporter. This is nice as `npm test` runs in parallel, the whole output holds in a few lines instead of spanning over multiple screens. |
||
---|---|---|
client | ||
defaults | ||
scripts | ||
src | ||
test | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.yml | ||
.gitattributes | ||
.gitignore | ||
.npmignore | ||
.npmrc | ||
.stylelintrc.yml | ||
.thelounge_home | ||
.travis.yml | ||
appveyor.yml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
index.js | ||
LICENSE | ||
package.json | ||
README.md | ||
SECURITY.md | ||
SUPPORT.md | ||
webpack.config-test.js | ||
webpack.config.js | ||
yarn.lock |
Modern web IRC client designed for self-hosting
Overview
- Modern features brought to IRC. Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
- Always connected. Remains connected to IRC servers while you are offline.
- Cross platform. It doesn't matter what OS you use, it just works wherever Node.js runs.
- Responsive interface. The client works smoothly on every desktop, smartphone and tablet.
- Synchronized experience. Always resume where you left off no matter what device.
To learn more about configuration, usage and features of The Lounge, take a look at the website.
The Lounge is the official and community-managed fork of Shout, by Mattias Erming.
Installation and usage
The Lounge requires Node.js v4 or more recent. Yarn package manager is also recommended (npm will also work).
Running stable releases using Yarn (recommended)
Run this in a terminal to install (or upgrade) the latest stable release from npm registry:
[sudo] yarn global add thelounge
If you already have The Lounge installed globally, use the following command to update it:
[sudo] yarn global upgrade thelounge
When installation is complete, run:
thelounge start
For more information, read the documentation, wiki, or run:
thelounge --help
Running from source
The following commands install and run the development version of The Lounge:
git clone https://github.com/thelounge/lounge.git
cd lounge
yarn install
NODE_ENV=production yarn build
yarn start
When installed like this, thelounge
executable is not created. Use node index <command>
to run commands.
⚠️ While it is the most recent codebase, this is not production-ready! Run at your own risk. It is also not recommended to run this as root.
Development setup
Simply follow the instructions to run The Lounge from source above, on your own fork.
Before submitting any change, make sure to:
- Read the Contributing instructions
- Run
npm test
to execute linters and test suite - Run
npm run build
if you change or add anything inclient/js
orclient/views