Motivation:
dtrace is extrmely useful when debugging allocation related issues. This
adds two scripts that have helped me many times.
Modifications:
- `dev/malloc-aggregation.d` which prints an aggregation of all
stacks that have allocated
- `dev/boxed-existentials.d` which live prints all allocations of boxed
existentials
Result:
sharing debugging tools is great
Motivation:
The integration tests' info mode lets us see the number of allocations
the did, that's great.
Modifications:
run integration tests in info mode
Result:
mode information
Motivation:
generate_linux_tests.rb is written in a non idiomatic way.
Modifications:
I used Rubocop to refactor the code.
More info: https://github.com/bbatsov/rubocop
Result:
A more idiomatic Ruby script.
Problem: Documentation for classes like _ChannelInboundHandler are not accesible via the official API documentation pages
Cause: GitHub treats the gh-pages branch as Jekyll
Solution: Turn off Jekyll by adding a .nojekyll file to the gh-pages branch
Motivation:
Websockets is a major protocol in use on the web today, and is
particularly valuable in applications that use asynchronous I/O
as it allows servers to keep connections open for long periods of
time for fully-duplex communication.
Users of NIO should be able to build websocket clients and servers
without too much difficulty.
Modifications:
Provided a WebsocketFrameEncoder and Decoder that can serialize and
deserialize Websocket frames.
Result:
Easier use of websockets.
Motivation:
We need license headers at the top of all files but we didn't
automatically check for it in all source files.
Modifications:
Check for the full licensing header in all files (Swift, C & Shell).
Result:
If we're missing a licensing header a PR won't turn green.
Motivation:
Our shell scripts didn't have license headers but they should.
Modifications:
Add licensing headers to all shell scripts
Result:
Licensing clear for shell scripts too.
Motivation:
prevent adding source that does not include the license header
Modifications:
add a check in sanity script to grep over all swift files and make sure they have the license header
Result:
ci build will fail if/when trying to commit source files that do not include the license header
Motivation:
Nicely written files end in newline characters.
Modifications:
Edited the test generation script to put a newline at the end of the
LinuxMain.swift file.
Result:
One more newline
Motivation:
set up continuous integration
Modifications:
* update docker file to include all dependencies required for build, unit tests, integration tests and doc generation
* remove dependency steps from doc generation script
* add integration tests driver script
Result:
able to set up docker based continuous integration
Motivation:
doc generation broken due to module rename and lack of tags
Modifications:
* update module names
* set default version if tag not found
Result:
doc generation works again
Motivation:
Right now the test gen script will rewrite every file. Not ideal!
Modifications:
Added the license header, and made the follow-on comment match that
style.
Result:
Test files will look the same when running this script as they do
now.
motivation: bring documentation generation closer to what it will look like on oss
changes:
* make cacheable steps conditional
* use absolute path for source-kitten generated index files