Skip to content

Commit

Permalink
MindForger 2.0.0 release via pull request #1532 from dvorka/dev/2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
dvorka authored Feb 16, 2024
2 parents 9314eaf + 580e846 commit c3ff5f4
Show file tree
Hide file tree
Showing 578 changed files with 49,356 additions and 10,417 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build_ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
submodules: recursive

- name: Install packages
run: sudo apt-get update && sudo apt-get install -y build-essential zlib1g-dev libhunspell-dev libqt5webkit5-dev qttools5-dev-tools qt5-default ccache
run: sudo apt-get update && sudo apt-get install -y build-essential zlib1g-dev libcurl4-gnutls-dev libhunspell-dev libqt5webkit5-dev qttools5-dev-tools qt5-default ccache

- name: Build dependency - cmark-gfm
run: cd deps/cmark-gfm && mkdir -v build && cd build && cmake -DCMARK_TESTS=OFF -DCMARK_SHARED=OFF .. && cmake --build .
Expand All @@ -23,7 +23,7 @@ jobs:
run: export M8R_GIT_PATH=`pwd` && cd build/make && M8R_CPU_CORES=4 ./test-lib-units.sh

- name: Run QMake to build application
run: pwd ; qmake -r "CONFIG+=mfci" mindforger.pro
run: pwd ; qmake -r "CONFIG+=mfci" mindforger.pro

- name: Run Make to build application
run: make -j 4
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Release/
Debug/
.vs/
.idea/
.vscode/
.venv/
*.o
*.a
Expand All @@ -20,3 +21,8 @@ TEST_LOG*.*
compile_commands.json
.qmake.stash
.DS_Store
deps/cmark-gfm
deps/mitie
deps/cmark-gfm
snapcraft.yaml
*.snap
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[submodule "doc"]
path = doc
url = https://github.com/dvorka/mindforger-repository.git
[submodule "deps/mitie"]
path = deps/mitie
url = https://github.com/dvorka/MITIE.git
[submodule "deps/cmark-gfm"]
path = deps/cmark-gfm
url = https://github.com/dvorka/cmark.git
117 changes: 101 additions & 16 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contribute to MindForger

MindForger is free and open source software. Feel free to **contribute** - any help
MindForger is free and open source software. Feel free to **contribute** - any help
with MindForger development will be **highly appreciated**!

* **Bugs and Suggestions**
Expand All @@ -13,33 +13,50 @@ with MindForger development will be **highly appreciated**!
* Submit pull request/patch with implementation of a feature you missed.
* **Integration**
* How-to or code enabling integration with your (favorite) project.
* **Enhancements**
* **Enhancements**
* Submit performance, efficiency and/or productivity enhancements suggestions (code, bug or docs)
* **Documentation**
* **Documentation**
* Write a document, block post; create YouTube video, ...

Don't hesitate to contact [me](mailto:[email protected]).

**Table of contents**:

* [Code of Conduct](#code-of-conduct)
* [Styleguide: Git Commit Messages](#styleguide--git-commit-messages)
* [Styleguide: C++](#styleguide--c)
* [Styleguide: C++ Comments](#styleguide--c---comments)
* [Styleguide: Qt](#styleguide--qt)


# Code of Conduct
This project and everyone participating in it is governed by the
This project and everyone participating in it is governed by the
[MindForger Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to uphold this
code.


# Styleguide: Git Commit Messages
* Commit messages must provide concise change description.
* Reference issues and pull requests related to the commit.
* Close bugs with issue references in commit messages.
* If possible, limit commit message length to 72 characters.


# Styleguide: C++
Code style:

* Use `.h` extension for header files.
* Use `.cpp` extension for class files.
* Use `lower_case_with_unserscores` source code file names.
* Use `lower_case_with_underscores` source code file names.
* Spaces, no tabs.
* No trailing whitespaces.
* Use `{}` with constructor having 0/1 parameter, () otherwise.
* `CamelCase` class names (no underscores).
* Lines to have at most 88 columns.
* See `/lib/src` source code for as code style reference.
- Guide in Qt Creator: `Tools` > `Options` > `Text editor` > `Display` > `Display right margin at column` = 88
* 4 spaces indentation.
* Python's black like formatting.
* Use `/lib/src` source code as code style reference.

Example of class `{}` style:

Expand All @@ -54,8 +71,8 @@ public:
...

void myFunction(int myParam) { ... }
int myMultiLineFunction() const {

int myMultiLineFunction() const {
...
}

Expand All @@ -78,7 +95,7 @@ bool MyClass::myFunction(const QString& myArg)
}
```

Example of how to format code to keep it under 88 columns:
Example of how to format code to keep it under 88 columns (Python's black style):

```cpp
void MainWindowPresenter::doActionOrganizerMoveNoteToNextVisibleQuadrant(Note* note)
Expand All @@ -87,8 +104,7 @@ void MainWindowPresenter::doActionOrganizerMoveNoteToNextVisibleQuadrant(Note* n
doActionKanbanMoveNoteCommon(
note,
orloj->getKanban()->moveToNextVisibleColumn(note),
orloj
);
orloj);
} else {
if(!EisenhowerMatrix::isEisenhowMatrixOrganizer(
orloj->getOrganizer()->getOrganizer()
Expand All @@ -99,19 +115,88 @@ void MainWindowPresenter::doActionOrganizerMoveNoteToNextVisibleQuadrant(Note* n
doActionOrganizerMoveNoteCommon(
note,
orloj->getOrganizer()->moveToNextVisibleQuadrant(note),
orloj
);
orloj);
} else {
statusBar->showError(
"Notebooks/notes cannot be moved around quadrants of "
"Eisenhower Matrix"
);
"Eisenhower Matrix");
}
}
}
```
# Styleguide: C++ Comments
Comments should be used to explain tricky and/or
important code only. Don't use comments to explain
obvious things as comments might diverge from the
actual code (e.g. after code refactoring) and may
cause confusion. Make comments brief, consistent
and concise
Code style:
```cpp
/**
* @brief Brief class description.
*
* Detailed class description which may include
* `examples` of use, _ASCII diagrams_ or **bullet lists**.
* Do ~~not~~ worry.
*
* Code block:
*
* int codeBlockExampleVariable;
*
* @see Text (as sentence) or URL.
* @see [The link text](http://example.com/)
* @see [The link text](#MyOtherClass)
*/
class MyClass
{
int field; // brief field description in the lower case
/**
* @brief Another field.
*
* Field with a long description must be documented using
* this style of the comment. The text of description to be
* formed by sentences. Apart to that you can use any formatting
* syntax from below.
*/
int anotherField;
public:
...
/**
* @brief Brief method description.
*
* Detailed method description which may include
* examples of use, ASCII diagrams or bullet/numbered
* lists like:
*
* 1. The first item.
* 2. The second item with the reference of `field`.
* 3. The third item.
*
* @param myParam Parameter documentation as sentence(s).
* @return Return value description as sentence(s).
*
* @see [The link text](#MyOtherClass)
*/
void myMethod(int myParam) { ... }
...
}
```


# Styleguide: Qt

* MindForger uses MVP pattern (see `main_window_presenter.h/.cpp`)
* See `/src/qt` source code for a code style reference.


3 changes: 2 additions & 1 deletion CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ Big thanks to 3rd party FOSS content authors:
* Qt Company ([Qt](https://www.qt.io/) - lib and code)
* GitHub ([CMark GFM](https://github.com/github/cmark-gfm) - Markdown rendering - lib)
* Kevin Hendricks, Bjoern Jacke, Lázsló Németh ([Hunspell](https://github.com/hunspell/hunspell) - spellcheck - lib)
* Daniel Stenberg ([cURL](https://curl.se) - libcurl with GnuTLS flavor)
* Niels Lohmann ([json](https://github.com/nlohmann/json) - JSon for modern C++ library)
* NetBSD Foundation (strptime - Windows port - lib)
* Toni Ronkko (dirent - Windows port - lib)
* Microsoft (getopt - Windows port - lib)
* Jordan Russell ([jrsoftware.org](http://jrsoftware.org) - Windows installer framework)
* Graeme Gott and Wereturtle ([Ghostwriter](https://github.com/wereturle/ghostwriter) - inspiration and code)
* Christian Loose ([CuteMarkEd](https://cloose.github.io/CuteMarkEd/) - inspiration and code)
* Davis E. King ([MITIE](https://github.com/mit-nlp/MITIE) - AI/NLP library and tools for information extraction - library)
* Jean-loup Gailly, Mark Adler ([Zlib](https://sourceforge.net/projects/gnuwin32/) - library)
* David Parsons ([Discount](http://www.pell.portland.or.us/~orc/Code/discount/) - Markdown rendering - library used in the past)
* Google ([Google C++ unit testing framework](https://github.com/google/googletest))
Expand Down
44 changes: 44 additions & 0 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
2024-02-16 Martin Dvorak <[email protected]>

* Released v2.0.0 - a major release that removes unused features
and brings several new features like Wingman.
* Feature: Wingman brings OpenAI LLM integration allowing to
compose, rewrite, summarize, NER or fix grammar of notes.
* Feature: Notebook Tree view brings ability to organize Notebooks to
a tree (outline).
* Feature: Libraries bring ability to index external PDF files and generate
Notebooks which represent them in MindForger. Synchronization and removal
of the library (directory with files) is supported as well.
* Feature: Emojis dialog allowing to use Unicode-based emojis
in Notebooks and Notes names or text.
* Feature: CLI can newly search knowledge on the internet sites - like
Wikipedia, arXiv, or StackOverflow - on phrase which is the current
context (Notebook or Note name; selected text or text under the cursor)
in order to get more information about the phrase.
* Enhancement: CLI rewrite - help, search, knowledge search
(Wikipedia, arXiv, search engines) and commands.
* Enhancement: Limbo added to the application menu View/Limbo.
* Enhancement: Polished Preferences - Appearance refactored to Controls,
restart requirement highlighted.
* Enhancement: Added up and down button in O/N preview mode to move around
O's Ns while presenting a N.
* Enhancement: MindForger icon changed to GenAI style.
* Enhancement: menu refactoring impacting Scope, and Navigate and various
menu items.
* Fix: Missing OOTB Eisenhower Matrix is automatically added back to
the list of Organizers.
* Fix: Conflicting menu keyboard shortcuts resolution (e.g. Organizers view).
* Fix: Edit and Format menus re-enabled on single Markdown file configuration.
* Upgrade: new version(s) of Qt with enhanced security support
added - Qt 5.15.2 LTS is supported on macOS and Windows.
* Deprecation: dashboard view removed.
* Deprecation: experimental Mitie (NER) code removed (replaced by LLM integration).

2023-01-15 Martin Dvorak <[email protected]>

* Released v1.55.0 - a minor release which fixes delete of a Note in
the Notebook view that now keeps selected an adjacent Note, improves
page up/page down navigation in table widgets, adds charset to
the exported HTML head, adds new Note templates, and renames Repository
to Workspace in the UI (source code kept intact).

2022-03-07 Martin Dvorak <[email protected]>

* Released v1.54.0 - macOS fix release: Qt downgraded from 5.9.9 (security)
Expand Down
24 changes: 21 additions & 3 deletions KNOWN_ISSUES.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
# Known Issues

MindForger known issues - see also
[GitHub issues](https://github.com/dvorka/mindforger/issues?q=is%3Aopen+is%3Aissue+label%3A%22bug+%3Alady_beetle%3A%22).
MindForger known issues - see [GitHub issues](https://github.com/dvorka/mindforger/issues?q=is%3Aopen+is%3Aissue+label%3A%22bug+%3Alady_beetle%3A%22)
for the complete list of bugs.

# 2.0.0

* Autolinking can break MathJax code blocks/text integrity in Markdown text.
* Windows Server R2 2012: empty MF documentation repository in wrong location when MF is launched
at the end of installation.
* Notebook HTML export doesn't export local images: links to filesystem are kept intact, images
are not copied.
* Frontend memleaks.

# 1.55.0

* Autolinking can break MathJax code blocks/text integrity in Markdown text.
* Windows Server R2 2012: empty MF documentation repository in wrong location when MF is launched
at the end of installation.
* Notebook HTML export doesn't export local images: links to filesystem are kept intact, images
are not copied.
* Frontend memleaks.

# 1.54.0

Expand Down Expand Up @@ -69,7 +87,7 @@ MindForger known issues - see also

# 1.49.0

* Windows Server R2 2012: empty MF documentation repository in wrong location when MF is launched
* Windows Server R2 2012: empty MF documentation repository in wrong location when MF is launched
at the end of installation.
* macOS 10.13: WebEngine might be broken which causes HTML preview not to rendered (root cause
is unclear).
Expand Down
8 changes: 4 additions & 4 deletions PAD.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
</Company_Info>
<Program_Info>
<Program_Name>MindForger</Program_Name>
<Program_Version>1.54.0</Program_Version>
<Program_Release_Month>03</Program_Release_Month>
<Program_Release_Day>07</Program_Release_Day>
<Program_Release_Year>2022</Program_Release_Year>
<Program_Version>2.0.0</Program_Version>
<Program_Release_Month>01</Program_Release_Month>
<Program_Release_Day>30</Program_Release_Day>
<Program_Release_Year>2024</Program_Release_Year>
<Program_Cost_Dollars />
<Program_Cost_Other_Code />
<Program_Cost_Other />
Expand Down
Loading

0 comments on commit c3ff5f4

Please sign in to comment.