Anki is a smart spaced repetition flashcard program
Find a file
Damien Elmes 5efaf5a4be move Bazel convenience symlinks outside of repo folder
The default symlink location can cause slowdowns and wasted CPU cycles
in VS Code and PyCharm/IntelliJ, as they try to watch Bazel's (large)
build folder for changes. The issue can be mostly ameliorated in VS Code
by excluding the symlinks using globs in settings like watcherExclude,
but the Rust extension doesn't support globs, so each folder needs to be
listed out separately. And because the product name symlink depends on
the name of the directory you're building from, we can't just include
the excludes in .vscode - it will depend on the folder the user is storing
things.

PyCharm and IntelliJ behave even worse here - they continue to monitor
for changes in all folders of the repo, even if those folders have been
marked as excluded in the project settings. Placing the folders into the
IDE-global Editor>File Types>Ignored Files And Folders works around this,
but again we run into troubles making this work out of the box, especially
with the product name in the symlink.

One option would be to turn the symlinks off completely. They are not
required for building, and for scripting/debugging, we can get the folder
locations via 'bazel info'. But with that approach, we would no longer
be able to symlink build products into the source tree, as we do for
things like the generated backend methods and translations, so we'd lose
code completion for them that way.

Another option would be to place the symlinks in .bazel/ inside the repo.
That solves the VS Code case (in conjunction with a workspace config file),
but doesn't fully fix IntelliJ/PyCharm.

The only remaining option I can see is to place the symlinks outside the
repo. Bazel won't expand ~ in the symlink path, so we can't use something
like ~/.cache/bazel/anki to place the files near the other build files.
So we end up having to have the files written to ../bazel/anki, in the
repo's parent folder. Not very clean, but I don't see a better alternative
at the moment.

.gitignore is still ignoring bazel-*, as currently bazel-dist and
bazel-pkg will be created when building/packaging. They should be fairly
innocuous, but we may want to rename them at one point.

Other changes:

- add missing symlink for pylib hooks
- add a sample .user.bazelrc file
2022-01-23 19:18:44 +10:00
.buildkite fix linkchecker invocation in CI 2021-12-20 17:41:13 +10:00
.github/ISSUE_TEMPLATE update bug report template 2021-11-12 12:20:02 +10:00
.vscode add vscode conf so pylib imports resolve in aqt by default 2022-01-21 21:50:53 +10:00
cargo update Rust deps 2022-01-15 14:59:43 +10:00
docs fix formatting in docs/ 2022-01-21 21:50:20 +10:00
ftl Remove individual .html files + other refactorings (#1588) 2022-01-16 15:05:35 +10:00
platforms use x86 binaries for clang format/protobuf on Mac 2021-10-16 18:07:39 +10:00
proto Backend Custom Study (#1600) 2022-01-20 14:25:22 +10:00
pylib move Bazel convenience symlinks outside of repo folder 2022-01-23 19:18:44 +10:00
python update to latest rules_python 2022-01-15 16:16:33 +10:00
qt move Bazel convenience symlinks outside of repo folder 2022-01-23 19:18:44 +10:00
rslib Remove into_node_list() (#1609) 2022-01-21 21:23:52 +10:00
sass sass/codemirror does not appear to be used 2022-01-15 21:19:58 +10:00
scripts add scripts/run-qt5.15.bat for Windows devs 2022-01-16 15:23:00 +10:00
ts Add _raw methods for all methods in the backend (#1594) 2022-01-21 21:32:39 +10:00
.bazelignore move node_modules into root folder [action required] 2021-10-07 11:42:27 +10:00
.bazelrc move Bazel convenience symlinks outside of repo folder 2022-01-23 19:18:44 +10:00
.bazelversion update Bazel version 2021-10-01 20:54:48 +10:00
.gitattributes try again to improve GitHub's language stats 2021-01-20 13:20:45 +10:00
.gitignore chore: ignore .idea/ folder created by IntelliJ IDE (#1599) 2022-01-16 15:14:16 +10:00
.prettierignore Mathjax editor improvements (#1502) 2021-11-23 10:27:32 +10:00
.prettierrc Mathjax editor improvements (#1502) 2021-11-23 10:27:32 +10:00
.user.bazelrc move Bazel convenience symlinks outside of repo folder 2022-01-23 19:18:44 +10:00
bazel.bat initial Bazel conversion 2020-11-01 14:26:58 +10:00
BUILD.bazel Fix prettier after moving node_modules to repo dir (#1413) 2021-10-09 10:13:14 +10:00
Cargo.lock update Rust deps 2022-01-15 14:59:43 +10:00
Cargo.toml move linkchecker into separate crate 2021-12-20 17:27:43 +10:00
CONTRIBUTORS Update CONTRIBUTORS (#1611) 2022-01-21 21:24:42 +10:00
defs.bzl update to edition 2021 2021-11-18 20:51:10 +10:00
late_deps.bzl download wheels using rules_python 2021-10-15 16:02:26 +10:00
LICENSE move aqt_data into source folder; implement wheel building 2020-11-04 12:14:03 +10:00
package.json update JS deps 2022-01-16 13:29:48 +10:00
pkgkey.asc add public key for release signing 2018-09-18 10:40:45 +10:00
README.md fix build badge 2021-06-24 09:21:56 +10:00
repos.bzl update translations 2022-01-16 15:48:46 +10:00
run get PyQt working directly with ./run on macOS 2021-10-16 18:07:29 +10:00
run.bat enable Python warnings when running 2020-12-16 14:59:04 +10:00
SECURITY.md add SECURITY.md 2021-09-22 22:55:19 +10:00
WORKSPACE move node_modules into root folder [action required] 2021-10-07 11:42:27 +10:00
yarn.lock update JS deps 2022-01-16 13:29:48 +10:00

Anki

Build status

This repo contains the source code for the computer version of Anki.

If you'd like to try development builds of Anki but don't feel comfortable building the code, please see https://betas.ankiweb.net/

For more information on building, please see Development.