Commit Graph

250 Commits

Author SHA1 Message Date
rm-dr bab45fc1eb
Added `bundle create` 2024-09-20 09:24:13 -07:00
Bryan Lai c0e57c0d2f Generate shell completions for `nextonic`
This is achieved with clap_complete.

The current v1 & v2 cli mixture makes it a bit difficult to offer
clean completions for the `tectonic` command, so for now we only
target the `nextonic` command exclusively for the v2 cli.
2024-08-21 12:05:31 +08:00
winstxnhdw 0f3660747c
fix(clippy): ignore `cfg(backtrace)` 2024-06-27 05:07:40 +08:00
winstxnhdw 6b49ca8db4
build/fix: update `time` 2024-06-27 02:39:22 +08:00
Rune Tynan 16e809ff77
Update watchexec to v3.0 2024-03-07 13:27:41 -08:00
Rune Tynan 44eb323bd4
Bump easy deps + hyper test 2024-03-07 12:11:38 -08:00
rm-dr 8d5402cd6a
Removed atty dependency 2024-02-27 10:49:33 -08:00
rm-dr 8bb6db38f8
Replaced structopt with clap 2024-02-27 10:38:27 -08:00
rm-dr eb473ee2fc
Normalize quotes in READMEs 2024-02-13 18:37:04 -08:00
Peter Williams 2636fce056 CI/doc updates to track the Harfbuzz/ICU decoupling 2023-09-17 14:46:23 -04:00
Peter Williams 701b2ee2a7 bridge_harfbuzz: no longer require ICU
The motivation for this change is to fix the Windows pkg-config CI,
where MSYS2's switch to the `pkgconf` implementation of `pkg-config` has
surfaced challenges in this crate's build script. But, it is also true
that we only need harfbuzz-icu for versions of Harfbuzz that are very
old at this point, and separating out that dependency will help us work
towards potentially one day being able to swap out the ICU dependency
with something else. So it's good to make that jump for bigger reasons
than just the CI.
2023-09-17 14:45:47 -04:00
Peter Williams 3dfc7fe80f bridge_icu: put the libicudata link hack here, where it belongs
Some pending work surfaced a problem where the icudata link order wasn't
correct in some situations. Putting the link ordering hack with the rest
of the ICU logic fixes things.
2023-09-17 14:38:05 -04:00
Peter Williams 9e9468c52e Cargo.toml: VS Code wants to reformat this file for me 2023-09-04 11:42:19 -04:00
Peter Williams d4a80b0d52 Cargo.toml: update vcpkg to latest 2023-09-04 11:42:08 -04:00
Peter Williams 9e4a93234b Cargo.toml: main crate requires latest tectonic_bridge_core 2023-06-11 15:54:21 -04:00
Peter Williams c2e2ef176c Cargo.toml: update vcpkg version 2023-06-11 10:44:57 -04:00
Rune Tynan 54429d8a55 Fix watchexec execution 2023-05-16 10:39:44 -04:00
Rune Tynan c309c4f957 Fix watchexec, test hyper. Added tokio 2023-05-16 10:39:36 -04:00
Rune Tynan ef0fd5dae3 Bump zip 2023-05-15 12:45:35 -04:00
Rune Tynan 99b157aa81 Bump toml, missed sub-crate deps 2023-05-15 12:44:34 -04:00
Rune Tynan 7401fc47b1 Update open 2023-05-15 12:43:33 -04:00
Rune Tynan 31e0b96093 Update sha2 2023-05-15 12:42:39 -04:00
Rune Tynan 03e81bae61 Update md-5 2023-05-15 12:42:39 -04:00
Rune Tynan aa46cfa24a Update quick-xml 2023-05-15 12:42:39 -04:00
Rune Tynan 2b1166831d
Bump pinned vcpkg version to fix microsoft/vcpkg#30542 2023-05-08 22:49:40 -04:00
Peter Williams 67b5ec4715 engine_spxhtml: wire up "assets spec" emission to the toplevel crate 2023-01-28 17:06:15 -05:00
Peter Williams cdface8c1c Cargo.toml: try updating vcpkg 2023-01-23 21:51:38 -05:00
Peter Williams 6d682cdc3a Default Windows vcpkg to using a custom triplet
This is basically a tactic to speed up the Windows builds. By default, vcpkg
builds both debug and release versions of requested libraries. There's probably
some good reason for that, but for us it just makes the builds a lot slower than
they need to be. We can avoid that by providing a custom "triplet" file that
disables the debug builds. In order to do this cleanly, we use new support from
cargo-vcpkg that adds support for an "overlay triplets" directory. Builds also
need to set the $VCPKGRS_TRIPLET environment variable so that vcpkg-rs can find
the packages it needs. We add some docs and a diagnostic warning if that may be
what's going on when a vcpkg fails to be found.
2022-11-01 22:12:53 +00:00
Peter Williams df2247a602 Update vcpkg and re-add a Linux vcpkg build 2022-10-26 20:20:01 -04:00
Peter Williams ffa48c2ffc Update Cranko internal version requirements for TL2022 release 2022-10-02 18:22:41 -04:00
Peter Williams 93aaca7f7e Cargo.toml: update to latest vcpkg 2022-09-18 22:43:18 -04:00
Peter Williams cbd96ec19f tectonic: start using the versioned default bundle URL 2022-03-29 18:56:49 -04:00
Peter Williams 7437aff41b Cargo.toml: update vcpkg version 2022-03-22 09:18:45 -04:00
Peter Williams ef5ade1927 engine_spx2html: use pinot 0.1.4
The latest release includes our new math APIs, which means that
we can stop worrying about the patched crate.
2022-03-01 20:27:08 -05:00
Peter Williams 642c22fa8d engine_spx2html: try to fix released crates.io artifacts
Attempting to work around something that I think is currently a Cargo
issue, reported here:

https://github.com/rust-lang/cargo/issues/10440

Basically, `cargo install tectonic` seems to fail because our
workspace-level `patch.crates-io` statement isn't propagated into the
sub-crate's Cargo artifact. I think I can work around this by adding an
individual patch statement, at the cost of getting a warning every time
I run Cargo.
2022-03-01 09:38:31 -05:00
Peter Williams 96c218c01c Wire up the new spx2html implementation in the main engine 2022-02-20 18:35:03 -05:00
Peter Williams e84d8282c8 engine_spx2html: Add this
This is a new engine for creating HTML from TeX. SPX is "semantically
paginated XDV", a slight variant on the XDV output created by the XeTeX
engine during TeX processing. It looks like the it will be a misnomer:
we're going to ignore the pagination of the XDV file. But whatever.

We add a dependency on a patched version of "pinot", a crate for
analyzing OpenType files. In order to deal with some math properly, we
need to parse some of the special OpenType math tables.

Also, update dependencies in Cargo.lock.
2022-02-20 18:35:03 -05:00
Peter Williams dd28cdd53e xetex_format: add a new introspection crate
This crate supports introspection of the Tectonic/XeTeX TeX engine
internal data structures. It aims to support two major use cases:

1. Generating a C header with all of the magic constants needed for the
   engine implementation.
2. Decoding "format files" so that one can understand *exactly* what's
   going on in a given format.

The second functionality here isn't fully worked out, but a lot of the
pieces are in place.
2021-12-07 11:50:56 -05:00
Peter Williams 5a4f726d3a Update internal version requirements for pending release 2021-10-11 11:47:02 -04:00
Peter Williams ace697eed5 Cargo.toml: update to latest vcpkg
Hoping blindly that this will fix our Windows/vcpkg builds, which seem
to have broken with the release of Rust 1.55.0.
2021-09-10 17:42:33 -04:00
Peter Williams 4f5d70d221 Cargo.toml: try updating to latest vcpkg to see if that fixes our Windows CI build failure 2021-07-30 17:33:57 -04:00
Peter Williams b1c19f3940 Improve biber handling by parsing the `.run.xml` file
It turns out that in some cases, biber needs access to various `.bib`
files that may be associated with the document build. Fortunately, the
`.run.xml` file contains exactly the information we need to populate the
temporary tool directly properly. We have to link in an XML parser, but
so be it.

I wasn't aware of the `.run.xml` file before and we potentially could
use it a lot more aggressively. We don't do that here, but the support
is written to try to be future-conscious.
2021-07-03 15:10:05 -04:00
Peter Williams ce4f000b9d tectonic: use the new security API
Building off of the new core bridge API, we can provide a bit of a more
refined approach to security controls. `tectonic -X compile` and
`tectonic -X build` now take an `--untrusted` option that ensures that
`-Z shell-escape`, and any future insecure features, cannot be enabled.

As with the core bridge work, this changes the ProcessingSessionBuilder
to be in untrusted mode by default, and adds a new API to configure in a
more-trusted mode if that's what you want to do.
2021-06-14 19:18:22 -04:00
Peter Williams 51ee421466 tectonic(!): switch to using `tectonic_bundles`
Start using the separated-out bundle implementation crate. Now you can
work with bundles, and the cache, without having to link to XeTeX and
everything! This is a BREAKING CHANGE because the original bundle
implementations have been removed, and the Bundle trait has gained a new
required method.
2021-06-13 11:47:54 -04:00
Peter Williams 26fb3f8436 tectonic(!): use io_base app_dirs implementation
The app_dirs have been moved to a lower level. This is a subtle BREAKING
CHANGE because we remove the app_dirs error variant from our un-boxed
error type.
2021-06-13 11:45:45 -04:00
Peter Williams 1660b31ca2 bundles: add the `tectonic_bundles` crate
This extracts the "bundle" implementations into a standalone crate,
adding a bunch of documentation that has really clarified my thinking
about why we need to distinguish bundles from generic IoProviders
anyway. We also dramatically clean up the implementation of the caching
layer, drawing a cleaner separation between the caching mechanism and
the underlying "indexed tar" / "HTTP Range request" backend.
2021-06-13 11:42:43 -04:00
Peter Williams 14763bf7af tectonic: fix build for no-serialization-feature
Fine, fix things up so that we build when the `serialization` Cargo
feature is disabled. This is getting annoying to support and I'm not
sure if it's useful anymore (we can build statically linked with proc
macros by adopting a cross-compilation model), but it wasn't too hard to
fix up here.
2021-06-09 22:27:36 -04:00
Peter Williams 6f329e5361 tectonic(!): start using the "document model"
We have now split the handling of `Tectonic.toml` files into a separate
crate, `tectonic_docmodel`, so that other people can manipulate
documents without needing to link to the main crate and all of the extra
dependencies that it entails. This ends up working out pretty nicely, in
that we can maintain functionlity with a few targeted extension traits
that wire up the document settings to the actual engine invocations.

However! This is a BREAKING CHANGE because the `tectonic::document` and
`tectonic::workspace` modules have been removed. We don't need or want
them anymore! I doubt anyone has been using them, but if so, use
`tectonic_docmodel` instead, with the new extension traits in the
`tectonic::docmodel` module if needed.
2021-06-09 22:07:47 -04:00
Peter Williams cd77b60d48 docmodel: separate out the document model into its own crate
This way, people will be able to work with Tectonic.toml files without
having to link with XeTeX and xdvipdfmx and everything else. That will
be nice!
2021-06-09 22:07:20 -04:00
Peter Williams e873fceffb
Merge pull request #762 from hulloanson/synctex-abs-path
Use absolute paths in synctex
2021-06-09 15:52:54 -04:00