anki/qt
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
..
aqt move Bazel convenience symlinks outside of repo folder 2022-01-23 19:18:44 +10:00
icons move remaining Filter button items into sidebar 2021-02-05 18:58:22 +10:00
mac implement a basic native macOS audio recorder 2021-12-07 18:48:24 +10:00
package Change X-GNOME-SingleWindow key to SingleMainWindow (#1582) 2022-01-20 11:58:27 +10:00
tests update to latest rules_python 2022-01-15 16:16:33 +10:00
tools Add py3.9 to hooks (#1542) 2021-12-09 09:11:22 +10:00
.isort.cfg initial Bazel conversion 2020-11-01 14:26:58 +10:00
.pylintrc Backend Custom Study (#1600) 2022-01-20 14:25:22 +10:00
bazelfixes.py updated package scripts 2021-10-28 18:46:45 +10:00
BUILD.bazel improve PyQt install 2021-10-23 10:56:17 +10:00
dmypy.py fix scripts/mypy* 2021-10-30 09:14:43 +10:00
mypy.ini switch to new-style PyQt scoped enums and Qt6 2021-10-15 12:57:19 +10:00
README.md minor doc updates 2020-12-11 22:37:12 +10:00
runanki.py get PyQt working directly with ./run on macOS 2021-10-16 18:07:29 +10:00

Python's Qt GUI is in aqt/