Commit Graph

259 Commits (73958ecbffbf1ea996961e92d78e354ceb914200)

Author SHA1 Message Date
Oddvar Lovaas 1ea836bb1b Remove howtos from build script 8 years ago
Benjamin Saunders 33d80408e0 Add a nix-shell environment suitable for building
This enables easy execution of scripts/*.py by Nix users.

Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Richard van der Hoff 49cd65dd58 Add a license to the spec
We're licensing hte spec under ASLv2. Add the LICENSE file, and add the
short-form to as much of the source as is practical right now (adding it to
json source is a massive pita).
9 years ago
Stas Rudakou b6c41727c5 Add PyYAML to scripts/README.md
PyYAML is a 3rd-party package used by `gendoc.py`.
9 years ago
Richard van der Hoff 8b61dab1c6 gendoc.py: add --list_targets arg
I want to be able to run all of the targets except one from matrix-doc, so make
a way to list the targets.
9 years ago
Richard van der Hoff f46a2a7f2b Include the basePath in the path in swagger output
This fixes both SPEC-393, and ORG-52.
9 years ago
Richard van der Hoff 8aa0f64665 Update the speculator to understand spec subdirs
Fix the speculator so that it doesn't blow up when it finds subdirs in the gen
directory.

(It doesn't handle the html diff very well in the case that the subdirs don't
match, but it's hard to do much about that)
9 years ago
Richard van der Hoff 01f8173c84 Put each bit of spec in its own directory
I want to change the URLs for the spec sections on the website from
<version>/<section>.html to <section>/<version>.html, to better reflect how we
do the versioning.

This puts each bit of spec in its own directory, updates the index to point to
the right place, and fixes continuserv to deal with directories as well as
files.

This will probably require fixes to the speculator too, but I'll have to come
back to that.
9 years ago
Richard van der Hoff a8eed29e9f gendoc: Allow multiple targets 9 years ago
Richard van der Hoff 7138205f31 Update README.md
escape angle-bracket to stop it getting lost in markdown
9 years ago
Richard van der Hoff 0546f0917d Replace hacky shell to do matrix styling with hacky perl
Since the shell just wrapped three invocations of perl, we might as well do
it all in perl.
9 years ago
Richard van der Hoff 23c4ffbc1b Add securityDefintions to generated swagger JSON
Also factor out to a common file
9 years ago
Richard van der Hoff 60f36bf868 Script to serve the generated swagger JSON
We need custom CORS headers to serve the swagger JSON, so add a script to do it
9 years ago
Richard van der Hoff c39d797cce Dump-swagger: take output file name rather than output dir
Make the argument to dump-swagger.py be the name of the output file rather than
the output dir, and give it a sensible default.

Also, use the absolute path to the output file, so that the output path is
relative to the user's cwd rather than the templating dir.
9 years ago
Richard van der Hoff d6c1d1343b Continuserv: Reduce number of watches
rather than trying to watch half the filesystem, be a bit more conservative in
what we put watches on. This means that we don't end up dying with "No space on
device" (thanks for that, Linux.)
9 years ago
Daniel Wagner-Hall 072d285153 speculator: Allow access token to be specified 9 years ago
Richard van der Hoff 1f6c4d5bb2 Speed up gendoc.py by only running build.py once 9 years ago
Daniel Wagner-Hall aaeaa1dd98 Detect major version in presence of patch release 9 years ago
Daniel Wagner-Hall ad7874a730 Use site-relative stylesheet 9 years ago
Daniel Wagner-Hall 60127de1e3 Take list of files to edit as args 9 years ago
Daniel Wagner-Hall a9b4f6fef0 Add missing _ to paths 9 years ago
Daniel Wagner-Hall db5cad4711 Remove accidentally committed change 9 years ago
Daniel Wagner-Hall 99b8a066c8 Make dump-swagger work from all directories 9 years ago
Daniel Wagner-Hall 1f5b6271f2 Generate swagger-ui output for client-server API
Depends on:
https://github.com/matrix-org/matrix-doc/pull/212
https://github.com/matrix-org/matrix-doc/pull/208
https://github.com/matrix-org/matrix-doc/pull/207
for the actual rendered output to not throw javascript errors at runtime.
9 years ago
Richard van der Hoff d1d3d27e2f Merge pull request #216 from matrix-org/rav/fix_speculator_redirects
Add a host and scheme to Location headers in redirects
9 years ago
Richard van der Hoff f31a053995 Add a host and scheme to Location headers in redirects
Our apache reverse-proxy can't correctly rewrite relative Location headers, so
add the Host from the request into the Location.
9 years ago
Matthew Hodgson 78e04d662e add moi :( 9 years ago
Richard van der Hoff 1b7548d460 Make the speculator serve the spec from drafts branches. 9 years ago
Daniel Wagner-Hall 2f3a00fe34 Consistently spell homeserver as homeserver 9 years ago
Daniel Wagner-Hall 1ce3357927 continuserv: serve multiple paths 9 years ago
Daniel Wagner-Hall 97fd1fdd62 Embed client and server release numbers
Note that this also removes the changelog - I'm going to re-add the
changelog differently soon.
9 years ago
Daniel Wagner-Hall ebed3b60bd Add trailing slashes to links 9 years ago
Daniel Wagner-Hall a4668c1d8c Fix typo 9 years ago
Daniel Wagner-Hall c4eaf7458f 302 to spec/head/index.html rather than serving it on /spec/head
Otherwise relative links are broken
9 years ago
Daniel Wagner-Hall 6c66bfc755 Flatten out v1 and v2_alpha directories
As a side effect, I got rid of all of the horrible symlinks and just put
in all of the proper relative paths. Because the horrible symlinks were
horrible.
9 years ago
Daniel Wagner-Hall e401d3e262 Merge pull request #184 from matrix-org/daniel/splitspec
Split spec into page-per-section
9 years ago
Daniel Wagner-Hall 30ed918633 speculator: Allow spec viewing for multi-page spec 9 years ago
Daniel Wagner-Hall e171acf01f Split spec into page-per-section 9 years ago
Daniel Wagner-Hall f0c99a6925 Generate API docs from swagger 9 years ago
Richard van der Hoff 2aa4773cc1 Make the speculator serve up errors as plain text
... so that they are legible.
9 years ago
Daniel Wagner-Hall ec31c0f518 speculator: allow styling like matrix.org 9 years ago
Daniel Wagner-Hall cc4869e68a Merge pull request #174 from matrix-org/daniel/speculatorhardening
Several improvements to speculator to prepare it for actually being used by the masses, not just us devs
9 years ago
Daniel Wagner-Hall c432396079 Add comment 9 years ago
Daniel Wagner-Hall 866fa58276 Rename 9 years ago
Daniel Wagner-Hall e045f28b44 Pull out constant for permissions
Also, drop permissions from 0755 to 0700
9 years ago
Oddvar Lovaas 24356d864e Merge pull request #176 from matrix-org/daniel/gendoc
Tweaks to spec generation for matrix.org
9 years ago
Daniel Wagner-Hall 4ac85997f5 Fix check 9 years ago
Daniel Wagner-Hall da93317a78 Take dir not files as args 9 years ago
Daniel Wagner-Hall ca3a9e3562 exec gendoc outside of script 9 years ago
Daniel Wagner-Hall e041033048 Rename file 9 years ago
Daniel Wagner-Hall 8586744771 Add anchors to spec
This is currently done by a script on the prod serving machine.

We might as well keep the matrix.org spec and dev spec as similar as
possible.
9 years ago
Daniel Wagner-Hall 6f1d00097b Only bother trying to fetch if we need to 9 years ago
Daniel Wagner-Hall 8872e17f93 Fall back to last known HEAD sha if fetch fails 9 years ago
Daniel Wagner-Hall dd53847211 Include command stderr in error text 9 years ago
Daniel Wagner-Hall 9ad64b02d1 speculator: guard against concurrent git commands 9 years ago
Daniel Wagner-Hall 0f0359d9c1 speculator: Nessle up some more if statements 9 years ago
Daniel Wagner-Hall 740cc66a7c speculator: Fetch before deciding head is fresh 9 years ago
Daniel Wagner-Hall 27ffe7bacd Don't serve rst diffs as HTML 9 years ago
Daniel Wagner-Hall c3608b3a69 Merge branch 'master' into daniel/continuservconcurrency
Conflicts:
	scripts/continuserv/main.go
9 years ago
Daniel Wagner-Hall bbf9e229a7 continuserv: guard concurrent accesses to wg 9 years ago
Daniel Wagner-Hall 1be5b856bd Preserve text/plain for errors
Newlines are nice
9 years ago
Daniel Wagner-Hall 7f6eafdce5 continuserv: set Content-Type header 9 years ago
Daniel Wagner-Hall 937ff046d8 Force / to be HTML too 9 years ago
Daniel Wagner-Hall 559747e77a speculator: Sent Content-Type: text/html header
Go is auto-detecting that this is XML (because for some reason we
generate XHTML), and serving it with a Content-Type header text/xml.

This causes the browser to render it as XHTML, which gives interesting
quirks like extra newlines.

This forces the browser to interpret it as HTML.

What we should probably do instead of stop generating XHTML and start
generating HTML. But in the mean time, this will fix the rendering
issues.
9 years ago
Mark Haines 71874870c8 Enable syntax highlighting for example http requests 9 years ago
Daniel Wagner-Hall 1aeddac319 Cache spec output
Does not cache inability to generate spec. Does not cache diffs or
anything fancy. Just the raw spec generation.
9 years ago
Mark Haines df443c10ac Move css into a css subdirectory.
Add css to put a bar next to blockquotes.
9 years ago
Daniel Wagner-Hall 82d4ea199f Trust Leo 9 years ago
Kegsay e5559e4ea5 Merge pull request #106 from matrix-org/erikj/newline_gendoc_STOP_BEING_CRANKY
gendoc should just add newlines rather than complaining about the lack thereof
9 years ago
Erik Johnston 70704240dc gendoc should just add newlines rather than complaining about the lack thereof 9 years ago
Richard van der Hoff 013b6db895 Add a note on building the speculator
... because the wiki says you need to read the README on how to build it.
9 years ago
Richard van der Hoff 270e1d7aa8 Add richvdh to list of trusted pushers for spectulator
richvdh is awesome, he should have all the permissions.
9 years ago
Oddvar Lovaas 1cfe4f784f special css for spec/howto 9 years ago
Oddvar Lovaas ceebf34fca generate docs with new nav bar 9 years ago
Daniel Wagner-Hall 6922850643 Add missing return 9 years ago
Daniel Wagner-Hall b46f0e30b8 Checkout SHA of origin/master rather than merging 9 years ago
Daniel Wagner-Hall a0cf485919 speculator: Specify merge target 9 years ago
Kegan Dougal 7805ca87df If build.py throws, actually print stdout. Also run jenkins.sh in verbose mode. 9 years ago
Kegsay 8c092e3d11 Merge pull request #74 from matrix-org/module-presence
Presence module
9 years ago
Daniel Wagner-Hall 7df3d9090a Merge pull request #81 from matrix-org/daniel/speculatormerge
speculator: Merge after fetching, so that /spec/head works
9 years ago
Daniel Wagner-Hall 0e8f1b5475 Quote args 9 years ago
Daniel Wagner-Hall a69e03f577 speculator: Report listening port 9 years ago
Daniel Wagner-Hall 30232f20aa speculator: Merge after fetching, so that /spec/head works 9 years ago
Kegan Dougal cc6f256b24 Merge branch 'master' into module-presence
Conflicts:
	specification/modules/presence.rst
9 years ago
Kegsay f74cb4d54c Merge pull request #76 from matrix-org/speculator-speedup
Modify how speculator uses git repos
9 years ago
Kegan Dougal b6f0b67da6 Speed up continuserv
Ignore .git directory as that shouldn't affect spec generation. Also, when
we receive writes from the OS, wait a bit before re-generating the spec to
clump together multiple writes rather than re-generating one after another
and waiting for no more writes before serving the request.
9 years ago
Kegan Dougal ede43fbe9f Modify how speculator uses git repos
Modified so it has a "master" repo and local A/B repos which pull from the
"master". This saves an extra git clone operation per HTTP request.
9 years ago
Kegan Dougal 52f6496cf0 Merge branch 'master' into module-presence 9 years ago
Kegan Dougal a49d5f67f1 Delete rather than comment out the offending CSS 9 years ago
Kegan Dougal 4e1e82f995 Fix paragraph CSS and adjust where paragraphs are in the RST
The CSS for `nature.css` was such that it was preventing `p` tags from
having sufficient vertical whitespace. This meant that you couldn't insert
any kind of spacing between lengthy sections (they just appeared as new lines).

This PR fixes this so you can actually have some whitespace between paragraphs.
As a result of this change, some parts of the spec appeared to have too much
whitespace. These were often sections which shouldn't have begun a new
paragraph anyway (e.g. a single sentence being an entire paragraph, `TODO`
blocks resulting in new paragraphs). This PR fixes the most offending areas
where we shouldn't have been inserting new paragraphs.
9 years ago
Kegan Dougal 0a04672d76 Start converting the presence module. Add Rationale admonition. 9 years ago
Daniel Wagner-Hall 083a76096f Support viewing the spec at head 9 years ago
Daniel Wagner-Hall 2434dfaf1c Merge branch 'master' into speculator-htmldiff 9 years ago
Kegan Dougal 6afdfc0771 Add more logging and make logging context clearer
This is now actually useful if you want to debug why your swagger YAML
isn't producing a table you think it should be.
9 years ago
Kegan Dougal f1adad5fb3 Add more logging with file prefixes
This makes the handoff between gendoc and batesian clearer in the logs.
9 years ago
Kegan Dougal 064a2c9172 Use argparse and log functions for gendoc.py
gendoc.py has become more complex such that we actually want to pass things
to it like `--verbose`, `--nodelete`, `--target`, so use `argparse` to do this
like we have `build.py`. Pass through `-v` flags to `build.py`.
9 years ago
Kegan Dougal 1da64db302 Use relative depths for groups instead of absolute ones
This means the group can be agnostic to how deeply nested it is,
improving reusability of groups.
9 years ago
Kegan Dougal 16693a644a Various review fixes 9 years ago
Kegan Dougal b21859836d Print stdout of build.py in verbose mode 9 years ago
Kegan Dougal f71763b0d3 Implement relative title styles
Templates don't know at what level they will be inserted. Previously, we
hard-coded the title style which is not compatible with the build target
system. Define a set of styles which will be replaced by the gendoc script
when it encounters them:
 '<' : Make this title a sub-heading
 '/' : Make this title a heading at the same level
 '>' : Make this title a super-heading

The build target system is now basically complete and functioning.
9 years ago
Kegan Dougal 067363c629 Get the desired title levels right; print out the actual level used to stdout 9 years ago
Kegan Dougal d5e0115e42 Merge branch 'master' into spec-restructure-modules 9 years ago
Kegan Dougal 65ce95249f cat the spec according to the build target. Remove old checks as they are now obsolete since we don't care about the filename 9 years ago
Kegan Dougal 8590cc84b5 Process and extract targets in gendoc.py 9 years ago
Mark Haines 6b5b8432b3 Turn on code highlighting for HTTP api responses and add a
code highlighting stylesheet for the specification.
9 years ago
Kegsay 5fbd534713 Merge pull request #51 from matrix-org/daniel/gendoc
Print errors to stderr
9 years ago
Kegan Dougal cf8abdafd4 Fix PR comments 9 years ago
Kegan Dougal ba4998a62b Apparently tabs are A Thing 9 years ago
Kegan Dougal 427e4c8b1b Log port being listened on 9 years ago
Kegan Dougal 1f6b12b3e8 Modify and enforce the file format/structure used
Convert the file format to be of the form ##_##_something.rst where the
first ## is the top-level section number and the second ## is the
second-level section number, e.g. 07_01_push_cs_api.rst means
Section 7.1 - This is now enforced in gendoc.py along with the title line
style that should be used (= for top-level, - for 2nd level) which will
give helpful suggestions if you trip up. This feels much more intuitive
now looking in /specification
9 years ago
Kegan Dougal 06e46c1899 Fix on a better numbering format 9 years ago
Kegan Dougal ef473b4161 Start enforcing title styles
This depends on the number of the file.
9 years ago
Daniel Wagner-Hall 08defafd98 Print errors to stderr
This means that continuserv will actually display them
9 years ago
Kegan Dougal ad26b7f8cb Fix a subtle rendering bug when catting spec sections
Throw in gendoc.py if a spec section doesn't end with \n\n

There needs to be TWO new lines at the end of each spec section else the
title of the next section merges into the last paragraph of the earlier
section. This happens without rst2html producing a warning, and results
in the section heading of a file disappearing(!)
9 years ago
Kegan Dougal 9c3a333a6d Apparently tabs are A Thing 9 years ago
Kegan Dougal 9b18fd252e Log port being listened on 9 years ago
Daniel Wagner-Hall 21411309e0 Fix chdir path 9 years ago
Mark Haines c3eab1cc3c Set the current working directory in gendoc.py to the script directory as that is where it expects to be run 9 years ago
Daniel Wagner-Hall c55917d99c Add spec diff to index page 9 years ago
Daniel Wagner-Hall 521d625aac Fix typo 9 years ago
Daniel Wagner-Hall d9013cab5f speculator: Add HTML diffing
I started fiddling with re-implementing the perl script in Go to add
some new functionality (and avoid the Perl), but it's not yet usable
9 years ago
Daniel Wagner-Hall d251f791fb speculator: Document / 9 years ago
Daniel Wagner-Hall f9ef934625 Merge branch 'master' into speculator-list
Conflicts:
	scripts/speculator/main.go
9 years ago
Kegsay e4f4670260 Merge pull request #44 from matrix-org/speculator-errs
speculator: Don't ignore errors
9 years ago
Daniel Wagner-Hall b6dab0009d speculator: Don't ignore errors 9 years ago
Daniel Wagner-Hall 20f0284155 speculator: Unified diff for rst diff 9 years ago
Daniel Wagner-Hall ba780a589a speculator: Add list-pull-request functionality 9 years ago
Daniel Wagner-Hall fef97802b7 Merge pull request #39 from matrix-org/speculator
speculator: Tool to preview spec pull requests
9 years ago
Daniel Wagner-Hall bf318ffcd5 Add HTTP endpoints to README 9 years ago
Daniel Wagner-Hall ca7dd49dc6 speculator: Add /healthz endpoint 9 years ago
Daniel Wagner-Hall 708f281270 Add comments about auth 9 years ago
Kegsay c427c579cb Merge pull request #37 from matrix-org/continuserv
continuserv: Server to live serve local updates to the spec
9 years ago
Daniel Wagner-Hall c29aef362e Error on failure of Watcher.Add 9 years ago
Daniel Wagner-Hall 6ac519d9dc Log on file updates 9 years ago
Daniel Wagner-Hall 6e86cb34d2 continuserv: Adding README 9 years ago
Daniel Wagner-Hall 34091038f3 speculator: Tool to preview spec pull requests
Not the prettiest thing in the world, and horribly unperformant, but
useful :)
9 years ago
Daniel Wagner-Hall cdc06a8bf1 Document --nodelete 9 years ago
Daniel Wagner-Hall a74fb54053 Correct comment 9 years ago
Daniel Wagner-Hall ad595aea45 Optionally don't delete intermediate rst files
Useful for debugging
Hackily hackily implemented :)
9 years ago
Daniel Wagner-Hall e30272733b continuserv: Make port flag-specified 9 years ago
Daniel Wagner-Hall c4acee3bcb continuserv: Live serves updates to the spec 9 years ago
Daniel Wagner-Hall 0414ff4cc3 Output error if command fails 9 years ago
Kegan Dougal e572cc662a Restructure the first few sections.
Remove unecessary sections; put presnece/profile sections on the right level.
Move Living Standard warning to the top of the Introduction section.
10 years ago
Kegan Dougal bb9537b824 Add a CHANGELOG. Modify table CSS.
Hook up templating system to read the CHANGELOG for version and changelog info.
Modified nature.css to make it clearer on table headings/sub-headings. Use the
full _matrix/client path on title links to make it clear it is for v1.
10 years ago
Kegan Dougal f9710a6e17 Add help blurb to gendoc.py 10 years ago
Kegan Dougal 5b31c442f5 Completely split up the templating system from the Matrix Spec template code.
The two are now linked together in build.py by specifying the input module.
Updated gendoc.py to specify the right module.
10 years ago
Kegan Dougal 96671ce833 Use the templating system to set {{git_version}}. Restructure sections code.
Restructured the sections code to be slightly more encapsulated than before.
This will be expanded to more clearly separate the templating system from
the specific implementation of the spec templates.
10 years ago
Kegan Dougal dc5c01607b Sort out table layout and rejig where state_key is placed. 10 years ago
Kegan Dougal 02c44a889e Remove stuff from 20_events.rst and replace with {{room_events}}. Update gendoc to call build.py for template vars. 10 years ago
Matthew Hodgson d40f6c1d7c lots of fixes based on kegan's review of https://github.com/matrix-org/matrix-doc/pull/13 10 years ago