Commit Graph

206 Commits

Author SHA1 Message Date
Jacob Karlsson c205826b48 Merge branch 'master' of github.com:fraction/oasis into image-search 2020-05-06 20:05:37 +02:00
Christian Bundy f86b73b40e Upgrade Flotilla and SSB-CONN, remove auto-stage
Problem: The auto-stage code was a horrible hack that may be causeing an
OOM bug if too many peers are staged too quickly.

Solution: Since SSB-CONN now supports a variable number of connection
hops, we can remove the auto-stage hack and use the default scheduler
instead of trying to staple on our own hacky scheduler fix.
2020-05-04 13:27:06 -07:00
Jacob Karlsson 3b753f16ac Apply style fixes 2020-05-03 23:14:19 +02:00
Jacob Karlsson e456c1d9c5 Add image search 2020-05-03 22:16:44 +02:00
Christian Bundy 09ff4cad21 2.16.0 2020-04-13 14:32:21 -07:00
Christian Bundy 8e4a1c8e53 2.15.0 2020-04-10 12:51:36 -07:00
Christian Bundy a24b5a7acf Fix broken changelog moving logic
Problem: The `npm version` command is supposed to do some changelog
magic but the paths are broken.

Solution: Use the correct paths.
2020-04-10 12:50:45 -07:00
Christian Bundy 2968f7d80a Merge https://github.com/fraction/oasis into advisory-fix-1 2020-04-10 10:51:29 -07:00
Christian Bundy ecdd78c42e Merge branch 'master' of github.com:fraction/oasis into update-deps 2020-04-08 14:52:06 -07:00
Christian Bundy 3886b1fc53 Increase test timeout and remove log statements
Problem: The Windows tests seem to be failing, it looks like a timeout
problem? Also there are a handful of debug statements around the code
that can be safely removed.

Solution: Double the timeout length and remove debug statements.
2020-04-06 13:22:07 -07:00
Christian Bundy cb1be6bc8b Fix open sockets that weren't closing during tests
Problem: The test suite isn't closing the database because `app.close()`
only affects the HTTP server. This means that tests don't exit cleanly
and sockets remain open and all sorts of really fun stuff that we don't
want while writing tests.

Solution: Refactor `src/ssb.js` so that we can exit cleanly and have
less rope to hang ourselves with. Add a small lifecycle test that can
help us ensure that the bare minimum lifecycle events are working
correctly, plus now the previous tests are passing on my machine too.
2020-04-06 12:14:58 -07:00
Christian Bundy 3c9ec37d2f Add very basic test suite
Problem: ESLint and TypeScript help catch some types of regressions, but
they don't protect us against obvious stuff like "the server won't
start". This means that humans need to test a bunch of stuff manually,
and that can be really tedious and exhausting.

Solution: Yesterday someone invented this cool concept called "testing"
where you write automated tests for your software to ensure it actually
works the way you expect. It might have beeen invented before yesterday,
I don't know. Anyway, this solution adds a bunch of tests that send HTTP
GET requests to a bunch of endpoints to make sure the server is at least
returning HTTP 200 responses. It also fixes a race condition where HTTP
server was available before the readme / version strings were loaded.
2020-04-03 09:17:13 -07:00
Christian Bundy 182d6d68bc Update npm dependencies
Problem: Our dependencies are getting ahead of us!

Solution: Catch up with `npm update`. I think Markdown-It was the only
breaking change, and it didn't affect us.
2020-04-03 07:11:11 -07:00
Christian Bundy b01ff74dbc Clean up root of project directory
Problem: Project root has a handful of files that aren't used at all or
could be placed elsewhere.

Solution: Delete unused files and move the changelog to the
documentation directory with the other Markdown files (other than the
readme, of course).
2020-04-01 15:04:57 -07:00
Christian Bundy 555249277f Remove @ts-ignore workaround
Problem: The workaround is no longer necessary now that the new version
of @types/koa has been published. Thanks to @peterblazejewicz,
@harryparkdotio, and @orta for the quick upstream fix.

Solution: Run `npm update` and remove the `@ts-ignore` comment.
2020-03-27 09:13:31 -07:00
Christian Bundy defb57321e Merge branch 'master' of github.com:fraction/oasis into type-defs 2020-03-27 08:02:44 -07:00
Christian Bundy c4aaf47a06 Fix Markdown link bug
Problem: Some sigil links were broken because of a bug in SSB-Markdown
that was recently resolved.

Solution: Upgrade SSB-Markdown.

Fixes: https://github.com/fraction/oasis/issues/242
2020-03-25 10:15:26 -07:00
Christian Bundy e0a20e4915 Merge commit 'd9e8' 2020-03-24 14:45:33 -07:00
Nick Wynja d9e829e2e8 Removes husky to fix #346 2020-03-24 15:19:33 -04:00
Christian Bundy c9fffe2b9c Add TypeScript definitions for better guardrails
Problem: We have TypeScript enabled on the project but have been missing
lots of definition files, so there are like 500 errors when you enable
`--noImplicitAny`.

Solution: Add definitions and fix the bugs that they point out. This
reduces the number of errors with `--noImplicitAny` to 285.
2020-03-24 09:23:52 -07:00
Christian Bundy dd388feefe Revert @fraction/flotilla change 2020-03-24 08:15:05 -07:00
Christian Bundy 488852f205 Resolve Travis CI + Windows EOL bug
Problem: Travis CI is converting our EOL characters and it's causing
problems when we're parsing with Prettier.

Solution: Disable auto-conversion.
2020-03-23 19:20:38 -07:00
Christian Bundy 32465e5983 Update npm dependencies
Problem: Our dependencies are falling behind and it'd be nice to have
them up-to-date. The only big update it that Common-Good upgraded to the
latest version of Prettier.

Solution: Update them!
2020-03-23 18:59:53 -07:00
Cinnamon 3e74a5cd2e
Merge pull request #298 from christianbundy/2019-03-npm-update
Upgrade npm dependencies
2020-03-11 16:02:09 -07:00
Christian Bundy c575aebb03 2.14.0 2020-03-10 16:57:46 -07:00
Christian Bundy 9b193cda14 Upgrade npm dependencies
Problem: Patchwork is soon going to release with a new SSB-Backlinks,
and since we share a database with Patchwork we should make sure we're
on the same version. If we're on different versions, we'll be constantly
regenerating indexes and that isn't fun for anyone.

Solution: Upgrade npm dependencies.
2020-03-09 14:34:18 -07:00
Christian Bundy cb1cf5e87e Render vanilla Markdown with basic renderer
Problem: The SSB-Markdown library has some SSB-flavored quirks, like
messing with newline behavior, and is inappropriate for rendering plain
Markdown like the readme.

Solution: Since SSB-Markdown uses Markdown-It under the hood, we can use
the same library and just render our Markdown *without* the SSB-flavored
quirks. This gives us the ability to wrap text and avoid SSB-Markdown
problems without having to rewrite all of our Markdown.
2020-03-03 16:13:56 -08:00
Daan Wynen 35c42f6b95 Read settings from ~/.config/oasis/config.json
This should give pretty much expected behaviour. Each config value
can be set by three sources:

1. By command-line argument. If it is not given, then
2. By config file. Or, lastly
3. By default value in the source code.

I can't test that the config file is searched and read from the right
place on windows or macOS, but on linux it works.
2020-02-22 10:32:50 +01:00
Christian Bundy 293dcabe68 Update SSB-Mentions and remove workaround
Problem: We've been using a workaround to filter the results of
SSB-Mentions, but that's just been fixed upstream and so we don't need
the workaround anymore.

Solution: Update the SSB-Mentions package and remove the workaround.
2020-02-19 14:38:10 -08:00
Christian Bundy 8088a9aa8b Add Oasis version to settings
Problem: It was impossible to tell which version of Oasis you're
running, which makes it hard to know when you need to update.

Solution: Put the version in the settings so it's easy to reference.
2020-02-18 10:44:36 -08:00
Christian Bundy 1e28b29758 Replace cooler methods with SSB-Client promises
Problem: We started using `cooler.get()` and `cooler.read()` because it
was impossible to use promises with SSB-Client.

Solution: I made some downstream pull requests into the MuxRPC module
and the SSB-Client module, which means that both of them now natively
support promises. This commit removes the weird convenience methods and
replaces them with the native promise support, which should hopefully
make the code easier to read and write.
2020-02-11 13:20:50 -08:00
Christian Bundy 6031b11470 2.13.1 2020-02-09 16:05:36 -08:00
Christian Bundy dfb498181b 2.13.0 2020-02-09 08:11:32 -08:00
Cinnamon 22fe9763d7
Merge pull request #125 from christianbundy/no-links2
Update Flotilla to drop SSB-Links2
2020-01-31 15:29:11 -08:00
Christian Bundy 01701d5119 Fix SVG rendering by setting content-type
Problem: Most browsers parse SVG files as XML and refuse to display it
in an `<img>` tag. It's usually unsafe to have browsers try to sniff the
file type themselves, because they can be tricked into running unsafe
code, so we want to set the file type ourselves in the server.

Solution: Use the Is-SVG library for a quick-n-dirty check for whether a
buffer is an SVG. If so, we set the file type accordingly.
2020-01-31 15:04:13 -08:00
Christian Bundy dc23b8bdf2 Update Flotilla to drop SSB-Links2
Problem: We aren't using the index at all so Oasis is just wasting time
and CPU power.

Solution: Upgrade Flotilla and resolve the problem.
2020-01-31 12:59:26 -08:00
Christian Bundy 17cb550539 Specify exact Node.js engine support and test it
Problem: Targeting only the latest version of Node.js and the latest LTS
means that we have a sort of rolling backward-compatibility that's hard
to reason about. If we break compatibility, we should release those
changes as a major version, but the current strategy makes it difficult
to tell exactly when we're breaking compatibility.

Solution: Specify the exact Node.js versions that we want to support in
`package.json` and add the specific tests to `.travis.yml`. In the
future we can break compatibility if it's helpful but we'll have to do
so explicitly and release the change as a major version.
2020-01-31 10:59:10 -08:00
Christian Bundy 89b68db17e 2.12.0 2020-01-28 12:56:55 -08:00
Christian Bundy ec3e4d489a Merge branch 'master' of github.com:fraction/oasis into conn-buttons 2020-01-28 10:25:42 -08:00
Christian Bundy b56b4bcd74 Update Flotilla to fix conn.stop bug
Problem: Stopping the networking would sometimes allow peers to remain
connected, which was confusing.

Solution: Upgrade to latest SSB-CONN to pull in a bugfix for this
behavior. Huge thanks to @staltz for the quick fix!
2020-01-28 10:22:24 -08:00
Christian Bundy 681e3c6755 Add buttons to 'meta' page to manage networking
Problem: Sometimes you want to disconnect from the network but you don't
want to have to restart Oasis with the `--offline` flag
(https://github.com/fraction/oasis/issues/89). Sometimes networking gets
stuck and you need to run the equivalent of `ssb gossip reconnect`
(https://github.com/fraction/oasis/issues/63).

Solution: Buttons on the 'meta' page that let you start, stop, or
restart SSB-CONN whenever you want. Note that this commit includes an
update to SSB-CONN, but this version and the previous version both have
a bug where hitting 'stop' twice in a row will throw an error. This
commit implements a workaround for the bug, but it's something we'll
want to remove later once the underlying bug is fixed.
2020-01-26 16:55:48 -08:00
Christian Bundy dec0f42b0f Fix tangle bug when Patchwork is used as a server
Problem: Patchwork is missing a plugin that we need to set the `branch`
property when posting a message. This property is important because it
helps us sort threads, so we're throwing an error when it isn't
available. See: https://github.com/fraction/oasis/issues/21

Solution: HACK THE ~~PLANET~~ API. This commit injects the plugin we
need via Oasis, which is a bit of a duct tape solution but it *is* a
solution.
2020-01-26 12:57:42 -08:00
Christian Bundy 3c50b94fa1 Update Common-Good to stop using npm alias
Problem: CG's dependency, CSpell, had problems with Windows support, so
I was using a forked module as an alias to circumvent the problem. This
only works on very recent version of npm.

Solution: This morning the CSpell maintainer resolved the problem, so
the latest CG doesn't have to depend on an alias. This commit runs `npm
update` to get the latest version of CG so we don't have this problem.
2020-01-25 16:28:08 -08:00
Christian Bundy 8cfc7d1e00 Fix test script in package.json 2020-01-24 09:29:29 -08:00
Christian Bundy 393f7ef087 Update Common-Good to fix Windows problem 2020-01-24 09:28:37 -08:00
Christian Bundy ace1bc0314 Test spawnSync 2020-01-23 18:35:02 -08:00
Christian Bundy 6d8591b0c8 Upgrade ssb-client and common-good 2020-01-23 18:27:06 -08:00
Christian Bundy abe802910f Update npm dependencies for new common-good
Problem: Common-Good had a bug in the Prettier glob where the recursion
wasn't working correctly. This meant that we weren't actually testing or
fixing some of the deeper files.

Solution: Update CG to the latest version and run `npm run fix` to fix
the linter stuff.
2020-01-23 14:36:25 -08:00
Christian Bundy 0a10e37cee Make Travis faster by removing double-build
Problem: Travis builds PRs and branches, which means that local branches
get built twice (!).

Solution: Travis should only build `master`, and maybe tags.
2020-01-23 12:09:59 -08:00
Christian Bundy f0563d3e27 Upgrade common-good 2020-01-21 18:20:06 -08:00