Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v82 build #81

Merged
merged 515 commits into from
Nov 5, 2019
Merged

v82 build #81

merged 515 commits into from
Nov 5, 2019

Conversation

GerHobbelt
Copy link
Collaborator

Everything up to v82.0.7216.35525 release.

This release is binary compatible with previous releases v80 and v79: the file storage formats haven't changed since v79.

The most important addition to v82 is much improved code robustness: Qiqqa SHOULD open and peruse user libraries, which have been corrupted somehow previously and which would crash or otherwise cause releases v80, v79 and older releases to fail or become completely inoperable. Bad/invalid/truncated PDF files in a user library or Watch Folder should not fatally wound Qiqqa any more.

v82 DOES NOT 'auto-fix' such libraries; this is reserved for a future release. See also #80

To see what happened up to this release, next to the CHANGELOG, there's the 'closed issues list' for this release at github.

The CHANGELOG (and CHANGELOG_full) list the work done in this series of commits.

At the time of this writing, the CHANGELOG_FULL is completed and the CHANGELOG (which is a reduction of the latter) is under construction. Once done, it will show up in this pullreq as the pullreq tracks the release branch.

A DRAFT release will be prepped later today, so that the installer can be tested by others.

Tip

Run a Qiqqa Expedition session on the entire library to retrigger OCR and text indexing of your library files, which were previously insufficiently parsed/processed (silently) due to a major fault in older QiqqaOCR: see also #74, #73 and https://github.com/GerHobbelt/qiqqa-open-source/issues/1

WARNING: a PDF URI does *not* have to include a PDF extension!

Case in point:

    https://pubs.acs.org/doi/pdf/10.1021/ed1010618?rand=zf7t0csx

is an example of such a URI: this URI references a PDF but DOES NOT contain the string ".pdf" itself!
…ust like you get in the library/document view panels in Qiqqa. KNOWN ISSUE: for small BibTeXs (only a few lines of BibTeX for the given document), the green toggle X is obscured by the thumbs up/down fade in/out buttons. :-(
…there which mentioned 'unit tests' -- which did not come with Qiqqa and are being recreated, but will not require or use this dead bit of code anyway.
- adding NuGet package ApprovalTests so we can more easily compare BibTeX records and other complex data input/outputs
- slowly getting the MSTest-based unit tests set up and going: using the new MSTest v2 DataRow feature to keep the amount of test code low.
- added `Assert.FileExists()`; used in TestBibTeX
…ve with the Sniffer window: currently the green X to toggle between BibTeX and RAW view mode gets obscured for files which have few or no BibTeX lines, thus making that bit of the UI unusable ATM. TODO: must find a way to resize the RAW view pane to max of both or some other method to ensure a minimum height that's acceptable everywhere.
- enabled some of the performance tests in the codebase by loading the same source file in the Unit Test project and having `#if TEST` code sections turned on there
- added unit test to verify that the unit tester has `#if TEST` defined/enabled
- added a TraceAppender to allow performance tests and others to log to the Test Explorer output via TraceLogAppender / TRACE
- adjusted the log4net configuration(s) accordingly
… LaTeX macros define `<` and `>` and those should never-EVAR be present around *any* BibTeX record. Besides, we WILL add code in the parser/lexer later on to cope with TeX macros inside text strings, so this bit is an old hack at best. Now it's GONE.
…op when encountering unterminated fields, etc.
…tion macros in order to (somewhat) correctly parse google scholar patents records: fixes jimmejardine#22 and a bit of work towards jimmejardine#68
…do is point it to an 'Intranet' sync point = directory/URI path instead. (TODO)
… ApprovalTests library -- for this purpose we had to create a custom Writer and Namer for ApprovalTests does not provide those suitable for DataTests.
… ApprovalTests custom DataTest namer/writer.
…sts in git; only the `*.approved.json` user-approved reference output files should be registered with the revision control system.
…stering the current state of affairs in 'approved' reference files by way of `ApprovalTests` use in the test rig.

# Conflicts:
#	QiqqaSystemTester/data/fixtures/bibtex/b0rked-0008.bib
…till needed: we already disabled those empty style classes in the previous commit SHA-1: ff6e4ee ; now we take them out in the UI XAML definitions.
- fixing the last bit of work done in that commit where all the PageLayer-derived classes were fitted with IDisposable interfaces. Trouble is that the cleanup runs over a loop which accesses these instances via a PageLayer baseclass cast.
- fixing several more DevStudio Code Analysis reports regarding Closed/Dispose handling of a few XAML controls; global Code Review used to update all OnClosed() handlers and treat them as we did the Dispose() code: NULL and Dispose/Clean what we can.
- fixed crash in PageLayer-derived classes' Dispose, where the access to the `Children` member would throw a cross-thread-access error exception ( https://stackoverflow.com/questions/11923865/how-to-deal-with-cross-thread-access-exceptions ) Weird stuff happens as it looks like there are multiple Dispatchers in Qiqqa from this perspective, which is ... odd. (And, no, I'm not a WPF expert so it may be lack of understanding here.)
…n Profile 1, where Profile 1 was set up to include these:

- Apply expression/block body preferences
- Apply 'this.' qualification preferences
- Sort usings
- Remove unnecessary usings
- Add accessibility modifiers
- Sort accessibility modifiers

The output has been manually code reviewed and has been adjusted to ensure all relevant files include ALL THREE AlphaFS using references anyway: Path, Directory, File to ensure we won't get surprised by odd spots *not* supporting long filenames when we later on edit the source code anywhere and happen to use one of the now 'unused' using references to AlphaFS.

---

This implies there are NO FUNCTIONAL CHANGES in this commit.
…* action per se, but rather improve upon the patch we picked up there from the experimental branch: as it turns out, the patch caused a lot of trouble which has been resolved to allow the running background task(s) access to a reduced clone of the WebLibraryDetails, which does not exhibit the cyclic dependency that the original WebLibraryDetails instance incorporated, thus breaking the cyclic reference and allowing the .NET GC to do its job on the Library instance(s) ASAP.

As this problem was discovered while doing work on commit SHA-1: ed2cb58, these files also include the remainder of the work done for that commit, as it was important to separate out the patches which fixed the cyclic memory reference.
…inating the application at special moments, e.g. while it is still loading the libraries on init (Hit Alt-F4 while the busybee cursor is still active and you might've run into a few of these, f.e.)

- Make sure all `MessageBox.Show` actions go through the `MessageBoxes` class
- Make sure every `MessageBox.Show` is executed from the UI thread, even when its wrapper was invoked from a background thread
…t the code to use non-skippable SafeThreadPool threads to Stop/Abort pending threads.
…riginal Qiqqa. Upon closer inspection the remaining `Process.Start()` calls are are intended to open an (associated) application for a given file or directory, which is proper.

Added a few `using(...)` statements around Process usage, etc. to prevent memory leaks on these IDisposables.
…e huge or you're running on a slow box and you'll get a b0rked extract. Just let 7ZIP complete.
@GerHobbelt GerHobbelt merged commit a00facd into jimmejardine:master Nov 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant