v2.1.0
This release of Crystal focuses on improving the experience of downloading a
website through a web browser. In particular, a progress bar is displayed when
navigating to an undownloaded page, it is possible to create a named root URL
on the Not in Archive Page, and the Fetch Error page provides a convenient
button to retry downloading the page.
-
Browsing improvements
- When visiting a page that hasn't been downloaded,
a progress bar is now shown in the browser. - Not in Archive page improvements:
- The Not in Archive page now allows you to provide a name when creating
a new root URL. - The Source dropdown on the Not in Archive page uses the same labels
as the Source dropdown in the New Group Dialog. - When a served page tries to display an undownloaded image
that isn't covered by a URL or a Group, show a prominent red box with
an X rather than showing the browser's generic broken image icon.
- The Not in Archive page now allows you to provide a name when creating
- When visiting a Fetch Error for a page that didn't download successfully,
there is now a "Retry Download" button that will delete the error and
try to download the page again.
- When visiting a page that hasn't been downloaded,
-
Workflow improvements
- For projects that consistently give names to Root URLs and Groups,
it is now possible to distinguish Root URLs and Groups more easily
by changing the title format from "URL - Name" to "Name - URL". - Download tasks can be right-clicked to copy their related URL (pattern)
or view the related URL in a browser. - Several standard menuitems are now present and work:
- The "New Project..." menuitem can be used to create a different project
when another project is already open. - The "Open Project..." menuitem can be used to open a different project
when another project is already open. - The "About Crystal" menuitem shows information about Crystal.
- The "New Project..." menuitem can be used to create a different project
- Some focus bugs were fixed, making keyboard-only navigation smoother:
- After the first root URL is created it is now focused in the
Entity Tree. Previously it was selected but not focused. - When the View action is triggered by a keyboard accelerator
the focused UI element will no longer unfocus.
- After the first root URL is created it is now focused in the
- For projects that consistently give names to Root URLs and Groups,
-
Parsing improvements
- New projects default to using the faster lxml parser rather than BeautifulSoup.
-
Downloading improvements
- Experimental: SOCKS v5 proxies are supported for tunneling downloads
through a remote network location. Proxy authentication is not yet supported.- You must start Crystal with
--enable-incomplete-feature=Proxy
to use this feature.
- You must start Crystal with
- Warn if HTTP 4xx or 5xx error while downloading a URL, on stderr,
to make it easy to notice when a domain starts repeatedly refusing requests.
- Experimental: SOCKS v5 proxies are supported for tunneling downloads
-
Serving improvements
- Ignore timeout errors when responding to a request.
-
CLI improvements
- When Crystal is started with
--shelland all windows are closed,
the shell and app exit automatically. crystal --versionwill print Crystal's version number.
- When Crystal is started with
-
Support changes (Breaking Change)
- macOS 14+ is now the minimum macOS version.
Drop support for macOS 13.
- macOS 14+ is now the minimum macOS version.
-
Minor fixes
- A callout appears over the View button after adding the first URL to a
project. This callout now hides itself when scrolling the entity tree
underneath it on Windows rather than flickering and showing visual
artifacts. - Show menubar on macOS when Open or Create Dialog is visible.
In particular ⌘Q now quits the app correctly when that dialog is visible. - When Crystal starts, the first dialog appears 0.2 seconds faster.
- When Crystal is started with both --shell and --serve,
always print shell prompt and server start prompt in a consistent order. - Don't wait more than 2 seconds to determine whether a project is being
opened on an SSD or an HDD, on macOS.
- A callout appears over the View button after adding the first URL to a
-
Development improvements
- Show correct application menu title on macOS when run from source.
- Code coverage statistics now report which tests cover each source line.
- Threads are now always created with a name, to assist with multi-threading debugging.
- Custom lint rules now ban direct use of certain unsafe wx APIs in favor
of Crystal's internal wrapper APIs.
-
Testing improvements
- Tests no longer assume that the default server port (2797) or any other
fixed port numbers (like 2798) are free.- Thus an independent Crystal app running in the background will
no longer cause tests to fail. - Thus multiple copies of Crystal can now run automated tests without
their ports interfering with each other.
- Thus an independent Crystal app running in the background will
- Tests use app preferences isolated from each other and from any
independent Crystal app running in the background.
- Tests no longer assume that the default server port (2797) or any other