Commit Graph

138 Commits

Author SHA1 Message Date
Sergio Benitez 57b6b8007c Support minijinja in 'dyn_templates'. 2024-05-22 13:40:40 -05:00
Sergio Benitez 3fefbb24f8 Remove redirect creation in mk-docs.sh. 2024-02-29 23:46:14 -08:00
Sergio Benitez ab028a7894 Trim unneeded code in scripts. 2024-02-28 23:48:59 -08:00
Sergio Benitez e4d8a8e377 Reorganize and upgrade markup in site docs.
The guide is now in docs/guide. All other site assets are being migrated
to a separate repository.

The guide markup has been upgraded to take advantages of improvements in
the static site generator used to build the Rocket website.
2024-02-28 23:43:49 -08:00
Sergio Benitez 48d1305651 Avoid generating unused docs index page.
The unstable flag also results in rustdoc emitting absolute links, which
breaks versioned documentation.
2024-02-28 12:50:52 -08:00
Sergio Benitez c54a6ed05e Improve doc building scripts.
Also removes unused 'bump_version' script.
2024-02-28 12:50:05 -08:00
Sergio Benitez 38ae8d6317 Update version numbers for 0.5.0. 2023-11-17 16:38:14 +01:00
Sergio Benitez 09cbf2f371 Fix broken links between codegen and http crates.
Also resolves link warnings emitted by rustdoc.

Closes #2594
2023-10-26 20:01:06 -05:00
Manuel Transfeld e581e3f98e Update 'sqlx' to '0.7'. 2023-10-26 19:55:46 -05:00
Sergio Benitez 74be8a90a1 Add support for 'diesel-async' to 'db_pools'. 2023-10-26 19:46:35 -05:00
Sergio Benitez 7d895eb9f6 Add initial implementation of 'rocket_ws'.
This provides WebSocket support in Rocket's official 'contrib'.
2023-04-01 15:02:24 -07:00
Sergio Benitez 8f2ee138ea Don't set master as current release. 2023-03-26 18:19:44 -07:00
Sergio Benitez 91f6288ea4 New version: 0.5.0-rc.3.
New contrib versions: 0.1.0-rc.3.
2023-03-23 16:56:17 -07:00
Sergio Benitez 0f1d141905 Use PCRE git grep to work around macOS git bug.
Git 2.39 on macOS contains a buggy `grep` implementation which, among
other things, fails to interpret the metasequence `\s` in extended regex
mode as space characters and instead interprets it as the literal `s`
character. To avoid this issue, this commit now uses `-P` instead of
`-E` when calling `git grep`, forcing use of PCRE instead.
2023-01-30 16:09:54 -08:00
Sergio Benitez ca4b38c0d0 Allow UI tests to fail in CI.
This commit makes passing compile UI tests optional, allowing the CI to
succeed even when UI tests fail. This change was made because UI tests
are highly susceptible to false negatives due to benign rustc compiler
output changes. A failure resulting from such a benign change inhibits
progress in the main branch due to failing PR testing which would have
otherwise passed.
2023-01-30 16:06:18 -08:00
Sergio Benitez 05db80afbc Don't set master as current release. 2022-05-09 06:32:53 -05:00
Sergio Benitez 4dcd92837f New version: 0.5.0-rc.2.
New contrib versions: 0.1.0-rc.2.
2022-05-09 06:32:46 -05:00
Sergio Benitez 1c9ac78f76 Add 'db_pools' to 'config.sh' crates. 2022-05-09 06:32:46 -05:00
Sergio Benitez f568d43caa Print more variables from 'config.sh -p'. 2022-05-09 04:58:28 -05:00
Sergio Benitez 49d138de14 Set 'RUSTC_BOOTSTRAP' to for '--no-run' on stable.
This is used by the testing script to run compile-only tests.
2022-04-18 21:15:58 -07:00
Edgar Onghena ff7cf68461 Make HTTP/2 optional via 'http2' feature.
Closes #2030.
2022-03-08 15:13:24 -08:00
Sergio Benitez 179be25866 Add 'rocket_db_pools' UI tests. 2021-07-18 13:14:13 -07:00
Sergio Benitez 5b1a04deab Introduce async database pools: 'rocket_db_pools'.
This is the async analog of 'rocket_sync_db_pools', rewritten to be
cleaner, leaner, easier to maintain and extend, and better documented.

Resolves #1117.
Resolves #1187.
2021-07-18 12:17:17 -07:00
Jeb Rosen f7f068be11 Initial implementation of async DB pooling. 2021-07-18 12:14:25 -07:00
Sergio Benitez 7ffe3a7360 Complete mTLS implementation.
Resolves #254.
2021-07-09 00:05:44 -07:00
Sergio Benitez c2d8f11ffe Doctest core feature matrix with '--no-run'.
Previously, we ran each doctest in core many times, once for each
individually enabled feature. This took a long time and consumed an
inordinate amount of resources for no gain: we already run each test
when we enable all features. Instead, emulate a 'cargo check' for
doctests by passing '--no-run' to rustdoc via an environment variable.
2021-06-30 20:44:58 -07:00
Sergio Benitez 36c1570c61 Fix order of contrib crates in config script. 2021-06-09 09:59:44 -07:00
Sergio Benitez c028d63e5b New version: 0.5.0-rc.1.
New contrib versions: 0.1.0-rc.1.
2021-06-09 09:52:37 -07:00
Sergio Benitez 32ec00ca19 Update deps when testing sibling workspaces. 2021-06-09 04:51:46 -07:00
Sergio Benitez 394982edbd Make new contrib libraries publishable. 2021-06-09 04:51:46 -07:00
Sergio Benitez 06455b6eb2 Use crate version in pre-release docs. 2021-06-09 04:51:46 -07:00
Sergio Benitez 5f50d5e232 Check for trailing new lines in testing script. 2021-06-07 19:31:23 -07:00
Sergio Benitez 2d974ece78 Check fuzzers and benchmarks in testing script. 2021-06-07 19:31:23 -07:00
Sergio Benitez 5a4e66ec43 Split 'rocket_contrib' into distinct crates.
This follows the completed graduation of stable contrib features into
core, removing 'rocket_contrib' in its entirety in favor of two new
crates. These crates are versioned independently of Rocket's core
libraries, allowing upgrades to dependencies without consideration for
versions in core libraries.

'rocket_dyn_templates' replaces the contrib 'templates' features. While
largely a 1-to-1 copy, it makes the following changes:

  * the 'tera_templates' feature is now 'tera'
  * the 'handlebars_templates' feature is now 'handlebars'
  * fails to compile if neither 'tera' nor 'handlebars' is enabled

'rocket_sync_db_pools' replaces the contrib 'database' features. It
makes no changes to the replaced features except that the `database`
attribute is properly documented at the crate root.
2021-05-24 22:57:51 -07:00
Sergio Benitez b1d05d20ac Graduate 'serve' into core as 'fs', 'FileServer'.
This completes the graduation of stable 'contrib' features to 'core'.

Closes #1107.
2021-05-22 11:15:56 -07:00
Sergio Benitez a78814f1c5 Graduate contrib 'uuid' into core.
This has the following nice benefits:

  * The 'Uuid' wrapper type is gone.
  * 'Uuid' implements 'UriDisplay', 'FromUriParam'.
  * The 'serialization' example merges in 'uuid'.

Resolves #1299.
2021-05-22 11:01:00 -07:00
Sergio Benitez f6a7087c84 Graduate 'helmet' as 'shield' into core.
The 'SpaceHelmet' fairing is now called 'Shield'. It features the
following changes and improvements:

  * Headers which are now ignored by browsers are removed.
  * 'XssFilter' is no longer an on-by-default policy.
  * A new 'Permission' policy is introduced.
  * 'Shield' is attached to all 'Rocket' instances by default.
  * Default headers never allocate on 'Clone'.
  * Policy headers are rendered once and cached at start-up.
  * Improved use of typed URIs in policy types.
2021-05-22 11:01:00 -07:00
Sergio Benitez c74bcfd40a Graduate contrib 'json' and 'msgpack' into core.
This has the following nice benefits:

  * The 'JsonValue' wrapper type is gone.
  * 'Local{Request, Response}' natively support JSON/MessagePack.
  * The 'json' and 'msgpack' limits are officially recognized.
  * Soon, Rocket application will not require an explicit 'serde' dep.

This marks the beginning of the end of 'rocket_contrib'.
2021-05-22 11:01:00 -07:00
Sergio Benitez 068aacd79d Require source lines to be under 100 chars. 2021-04-27 20:19:35 -07:00
Sergio Benitez 579508d58f Make 'FileName' a DST. Improve sanitization.
Resolves #1594.
2021-04-03 17:09:00 -07:00
Sergio Benitez ff22645d3a Remove upstream unmaintained 'mysql' support.
Also updates 'sqlite' dependencies.
2021-03-27 02:42:04 -07:00
Sergio Benitez 0be3b41687 Add '--benchmarks' target to testing script. 2021-03-26 20:12:19 -07:00
Sergio Benitez 8283bf0a2b Make obvious when and which tests in '--all' fail. 2021-03-10 22:52:37 -08:00
Sergio Benitez 88cb6ec4d1 Always test on stable on publish. 2021-03-10 14:56:34 -08:00
Sergio Benitez c9d7b4fbe0 Use '-Zrustdoc-map' to fill in external doc URLs. 2021-03-09 22:00:52 -08:00
Sergio Benitez 17dd8dafd0 Move examples to their own workspace.
This allows us to test all of the "core" crates (and the guide) by
testing the root workspace, and all of the examples by testing in the
examples workspace.
2021-03-09 21:57:30 -08:00
Sergio Benitez 4e06ee64aa Test 'secret_key' validation, now on pre-launch.
Prior to this commit, it was not possible to test Rocket crates in
production mode without setting a global secret key or bypassing secret
key checking - the testing script did the latter. The consequence is
that it became impossible to test secret key related failures because
the tests passed regardless.

This commit undoes this. As a consequence, all tests are now aware of
the difference between debug and release configurations, the latter of
which validates 'secret_key' by default. New 'Client::debug()' and
'Client::debug_with()' simplify creating an instance of 'Client' with
configuration in debug mode to avoid undesired test failures.

The summary of changes in this commit are:

  * Config 'secret_key' success and failure are now tested.
  * 'secret_key' validation was moved to pre-launch from 'Config:from()'.
  * 'Config::from()' only extracts the config.
  * Added 'Config::try_from()' for non-panicking extraction.
  * 'Config' now knows the profile it was extracted from.
  * The 'Config' provider sets a profile of 'Config.profile'.
  * 'Rocket', 'Client', 'Fairings', implement 'Debug'.
  * 'fairing::Info' implements 'Copy', 'Clone'.
  * 'Fairings' keeps track of, logs attach fairings.
  * 'Rocket::reconfigure()' was added to allow modifying a config.

Internally, the testing script was refactored to properly test the
codebase with the new changes. In particular, it no longer sets a rustc
'cfg' to avoid secret-key checking.

Resolves #1543.
Fixes #1564.
2021-03-09 21:57:26 -08:00
Sergio Benitez fd8af3a2c5 Pass extra testing script flags as cargo flags. 2021-03-09 21:57:03 -08:00
Sergio Benitez bbfe2ba5cc Point all docs and doc links to 'master' branch. 2020-10-21 04:54:24 -07:00
Sergio Benitez 1fb061496d Revamp configuration.
This commit completely overhauls Rocket's configuration systems, basing
it on the new Figment library. It includes many breaking changes
pertaining to configuration. They are:

  * "Environments" are replaced by "profiles".
  * 'ROCKET_PROFILE' takes the place of 'ROCKET_ENV'.
  * Profile names are now arbitrary, but 'debug' and 'release' are given
    special treatment as default profiles for the debug and release
    compilation profiles.
  * A 'default' profile now sits along-side the meta 'global' profile.
  * The concept of "extras" is no longer present; users can extract any
    values they want from the configured 'Figment'.
  * The 'Poolable' trait takes an '&Config'.
  * The 'secrets' feature is disabled by default.
  * It is a hard error if 'secrets' is enabled under the 'release'
    profile and no 'secret_key' is configured.
  * 'ConfigBuilder' no longer exists: all fields of 'Config' are public
    with public constructors for each type.
  * 'keep_alive' is disabled with '0', not 'false' or 'off'.
  * Inlined error variants into the 'Error' structure.
  * 'LoggingLevel' is now 'LogLevel'.
  * Limits can now be specified in SI units: "1 MiB".

The summary of other changes are:

  * The default config file can be configured with 'ROCKET_CONFIG'.
  * HTTP/1 and HTTP/2 keep-alive configuration is restored.
  * 'ctrlc' is now a recognized config option.
  * 'serde' is now a core dependency.
  * TLS misconfiguration errors are improved.
  * Several example use '_' as the return type of '#[launch]' fns.
  * 'AdHoc::config()' was added for simple config extraction.
  * Added more documentation for using 'Limits'.
  * Launch information is no longer treated specially.
  * The configuration guide was rewritten.

Resolves #852.
Resolves #209.
Closes #1404.
Closes #652.
2020-10-20 19:21:56 -07:00