Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
296 commits
Select commit Hold shift + click to select a range
c32fe9d
ci: Refactor actions.yml
osogi Apr 2, 2023
5bf3a7a
ci: Fix upload reports on fail
osogi Apr 2, 2023
92b0af2
ci: Init mergeable.yml
osogi Apr 3, 2023
ec0d6c0
ci(mergeable): Add git flow pattern
osogi Apr 3, 2023
3a249cb
ci(mergeable): Fix git flow pattern
osogi Apr 3, 2023
d20a0de
feat(RBTree): Init RBTree class
Parzival-05 Apr 3, 2023
8b4ee7d
feat(RBTree): Add a method to find the parent for the new node
Parzival-05 Apr 3, 2023
324bce3
feat(RBTree): Override insert method
Parzival-05 Apr 4, 2023
b07796b
feat(TemplateBSTree): Open replaceNode method for legacy
Parzival-05 Apr 4, 2023
6151947
feat(RBTree): Override rotates, replaceNode methods for balance
Parzival-05 Apr 4, 2023
16dd611
feat(RBTree): Add balance for insert method and some cases in balance
Parzival-05 Apr 4, 2023
21cfec4
refactor(RBTree): Improve code structure and change some names
Parzival-05 Apr 4, 2023
94482b5
fix(RBTree): Fix error in case of pasting an existing element
Parzival-05 Apr 4, 2023
af832a5
feat(TemplateBSTree): Add return value for insert() and remove() methods
osogi Apr 5, 2023
ed02747
feat(BalanceCase): Add ChangedChild case
osogi Apr 5, 2023
745c354
feat(BalanceTree): Add function for finding what child was changed
osogi Apr 5, 2023
e1b4c4d
feat: Edit balance() arguments
osogi Apr 5, 2023
a46bd5e
fix(BalanceTree): Fix typo in getDirectionChangedChild() fun
osogi Apr 6, 2023
cefbcc9
feat: Setup hamcrest
osogi Apr 4, 2023
71ac302
fix(TemplateBSTree): Change return of traversal() in null-root case
osogi Apr 7, 2023
ce93b12
fix(RBTree): Fix bug in balanceInsertCaseOfBLackUncle()
osogi Apr 7, 2023
2bf6050
refactor(RBTree): Change name "Son" to "Child"
osogi Apr 8, 2023
8b0f5e9
feat(RBTree): Add balance for remove
Parzival-05 Apr 7, 2023
8bb247f
feat(RBTree): Remove impossible scenario
Parzival-05 Apr 7, 2023
b86ef4e
fix(RBTree): Fix case of root remove with one child
Parzival-05 Apr 7, 2023
41fcc7a
fix(RBTree/remove): Fix rotates in redParent case
osogi Apr 8, 2023
26f0aa5
fix(RBTree/remove): Add no child case in redParent case
osogi Apr 8, 2023
48057e3
fix(RBTree/remove): Fix getBlackHeight() function
osogi Apr 8, 2023
b0ec256
fix(RBTree/remove): Fix left, right typo
osogi Apr 8, 2023
307dd73
fix(RBTree/remove): Fix red parent case
osogi Apr 9, 2023
eedd7f5
fix(RBTree/remove): Fix black parent red other child case
osogi Apr 9, 2023
f9812ab
fix(RBTree/remove): Add case to black parent red other child case
osogi Apr 9, 2023
1feef24
struct: Move trees to separate package(dir)
osogi Apr 12, 2023
65e2df2
struct: Extract TemplateNode class to separate file
osogi Apr 12, 2023
a375d1e
struct: Move templates to separate package(dir)
osogi Apr 12, 2023
b496348
fix: Fix importing of BinSearchTree in test
osogi Apr 12, 2023
4f80d53
test: Add tree generator
osogi Apr 7, 2023
ee47b20
test: Add tree check fun
osogi Apr 7, 2023
f443e03
test(BinSearchTree): Add insert() tests
osogi Apr 7, 2023
7660907
test(BinSearchTree): Add remove() tests
osogi Apr 7, 2023
14cb4a2
test(BinSearchTree): Add find() tests
osogi Apr 7, 2023
2b9073c
test(BinSearchTree): Add big insert test
osogi Apr 7, 2023
a284629
test(BinSearchTree): Add big remove test
osogi Apr 7, 2023
7044b1d
test(BinSearchTree): Add big find test
osogi Apr 7, 2023
4f4e56d
test(BinSearchTree): Add traversal() tests
osogi Apr 7, 2023
c563758
test(BinSearchTree): Remove debug comment
osogi Apr 12, 2023
d2ea439
test(RBTree): Add RB tree check
osogi Apr 9, 2023
b79179f
test(RBTree): Add remove() tests
osogi Apr 9, 2023
dfd364d
test(RBTree): Add insert() tests
osogi Apr 10, 2023
8139b22
test: Change tests DisplayName
osogi Apr 10, 2023
9aca66b
refactor: Update imports for tests
osogi Apr 15, 2023
96da1fe
feat: Add KeyValuePair class
osogi Apr 15, 2023
09ff718
test: Init NodeTest
osogi Apr 6, 2023
b2b879e
test(Node): Add traversal() tests
osogi Apr 6, 2023
6b37b45
test(Node): Add getNonNullChild() tests
osogi Apr 6, 2023
10710c3
test(Node): Add countNullChildren() tests
osogi Apr 6, 2023
c93f474
refactor: Move NodeTest to hamcrest
osogi Apr 15, 2023
9a20cf3
test: Update import in NodeTest
osogi Apr 15, 2023
f5f9e4f
test(AVLTree): Add AVL tree check
Anna-er Apr 17, 2023
1cf99bb
test(AVLTree): Add remove() and insert() tests
Anna-er Apr 17, 2023
fcc9c41
fix(TemplateBalanceBSTree): Fix remove() method
Anna-er Apr 17, 2023
bf3c568
fix(AVLTree): Fix balance() and bfactor() methods
Anna-er Apr 17, 2023
30e39c4
ci: add additional os for build
osogi Apr 17, 2023
fc52732
ci: Add os name to reports
osogi Apr 17, 2023
8eaf918
feat: Add neo4j in gradle
osogi Apr 16, 2023
584ee53
feat: Add sketch of NodeView class
osogi Apr 16, 2023
161a43d
feat: Init Neo4jIO class
osogi Apr 16, 2023
6af3083
feat(Neo4jIO): Add open() fun
osogi Apr 16, 2023
ea8fe79
feat(Neo4jIO): Add exportRBNode() fun
osogi Apr 16, 2023
ffdae6b
feat(Neo4jIO): Add importRBNode() fun
osogi Apr 16, 2023
dae577f
feat(Neo4jIO): Add sketch of exportRBTree()
osogi Apr 16, 2023
28c2b25
feat(Neo4jIO): Add sketch of importRBTree()
osogi Apr 16, 2023
e010e36
feat(Neo4jIO): Improve exportRBTree()
osogi Apr 17, 2023
7b42d71
feat(Neo4jIO/export): Remove useless data
osogi Apr 17, 2023
c7a046e
feat(Neo4jIO): Improve importRBTree()
osogi Apr 17, 2023
373f71d
refactor(Neo4jIO): Change names, add comments
osogi Apr 17, 2023
46fbe03
fix(Neo4jIO): Add case of empty db
osogi Apr 17, 2023
07df2d9
fix: Change key type for NodeView
osogi Apr 18, 2023
0fa07fd
fix: Update Neo4jIO to new NodeView
osogi Apr 18, 2023
1438937
feat(Neo4jIO): Add name arg to exportRBTree and deleteTree
osogi Apr 18, 2023
64028c3
feat(Neo4jIO): Add name arg to importRBTree
osogi Apr 18, 2023
80aea90
feat(Neo4jIO): Add removeTree fun
osogi Apr 18, 2023
a03d63b
feat(Neo4jIO): Add getTreesNames fun
osogi Apr 18, 2023
bea6f76
struct: Add app icon
osogi Apr 18, 2023
0292470
struct(README): Update README
osogi Apr 18, 2023
3fbb9f5
struct(README): Fix typos
osogi Apr 19, 2023
14fa8fc
struct(README): Add neo4j format specifications
osogi Apr 19, 2023
ad474e0
feat: Add json in gradle
Anna-er Apr 19, 2023
cfebd77
feat: Init Json class
Anna-er Apr 19, 2023
7456bac
feat(Json): Add JsonAVLNode and JsonAVLTree data class
Anna-er Apr 19, 2023
a02b486
feat(Json): Add sketch of exportAVLTree()
Anna-er Apr 19, 2023
c09dd24
feat(Json): Add sketch of importAVLTree()
Anna-er Apr 19, 2023
c025e09
feat(SQLite): Add SQLite to gradle
osogi Apr 19, 2023
a85ab04
feat(SQLite): Add SQLite realization
osogi Apr 19, 2023
a563ab7
fix(SQLiteIO): Fix bug (there was no removal of handled nodes).
Parzival-05 Apr 19, 2023
e991484
fix(TemplateBSTree): Edit find method
osogi Apr 20, 2023
ad9aea8
fix(TemplateBSTree): Edit remove method
osogi Apr 20, 2023
fffb369
fix(TemplateBalanceTree): Edit remove method
osogi Apr 20, 2023
c36c57a
refactor: Remove debug comment
osogi Apr 20, 2023
b660f0b
refactor: Rename getNonNullChild method
osogi Apr 20, 2023
1f9e452
refactor: Edit README
osogi Apr 20, 2023
fce19c3
feat(KVP): Add default value for constructor
osogi Apr 20, 2023
4843d16
fix(Neo4jIO): Fix case of deleting empty tree
osogi Apr 20, 2023
9d4dd23
refactor(Neo4jIO): Add labels and links constants
osogi Apr 20, 2023
b1dcb72
refactor(Neo4jIO): Rewrite queries using parameters
osogi Apr 20, 2023
2d17cea
refactor(Neo4jIO): Change export using parameters
osogi Apr 20, 2023
389a543
refactor(Json): Change JsonAVLNode and JsonAVLTree data clas
Anna-er Apr 21, 2023
a832193
feat(Json): Add toJsonNode() and deserialize() methods
Anna-er Apr 21, 2023
65cd8fd
perf(Json): Add exportTree() instead exportAVLTree()
Anna-er Apr 21, 2023
924245f
perf(Json): Add importTree() instead importAVLTree()
Anna-er Apr 21, 2023
daa9acf
refactor(Json): Change cleanDataBase()
Anna-er Apr 21, 2023
a99201e
fix: Return serialization
Anna-er Apr 21, 2023
a014f4a
refactor(Json): Rename toJsonNode() into serialize()
Anna-er Apr 21, 2023
458cc94
refactor: Add plain text database into README
Anna-er Apr 22, 2023
65e1f73
refactor(RBTree): Improve code readability
Parzival-05 Apr 21, 2023
0e69973
refactor(RBTree): Add algorithm source in comments
Parzival-05 Apr 22, 2023
4dd0194
fix(SQLiteIO): Add class InstanceOfNode, implementation of DAO
Parzival-05 Apr 23, 2023
d63e791
feat(SQLiteIO): Add method for setting coordinates in nodeView
Parzival-05 Apr 23, 2023
d4cf258
fix(SQLiteIO): Fix importTree method
Parzival-05 Apr 23, 2023
6edb731
feat(KVP): Make KVP data class
Parzival-05 Apr 23, 2023
c7b2ac2
feat: Add compose (ui framework) in project
osogi Apr 21, 2023
f333574
feat: Add some ui basics
osogi Apr 22, 2023
ee89cef
feat: Add menubar
osogi Apr 22, 2023
f62e471
fix: Fix immovable nodes after recreate
osogi Apr 23, 2023
62dde78
feat: Add insert, remove and find
osogi Apr 23, 2023
8ecd2e4
fix: Add lost dependencies
osogi Apr 23, 2023
08accf7
fix: Fix broken GUI for windows
osogi Apr 23, 2023
c305018
fix: Fix default node size
osogi Apr 23, 2023
00e6f20
refactor: Move TreeController.kt
osogi Apr 23, 2023
974c973
fix(SQLiteIO): Rewrite SQLiteIO with support for the new architecture
Parzival-05 Apr 24, 2023
0915460
feat(README): Update Readme
Parzival-05 Apr 24, 2023
ae344e4
fix(Neo4jIO): Rewrite export
osogi Apr 23, 2023
bd8de3a
fix(Neo4jIO): Rewrite import
osogi Apr 23, 2023
15fe1fc
fix(Neo4jIO): Edit Neo4j specification
osogi Apr 23, 2023
ca004c6
feat: Add error handling
osogi Apr 23, 2023
1f1bb71
feat: Add import/export dialogs for neo4j
osogi Apr 23, 2023
7ebcfba
feat: Add save to menubar
osogi Apr 24, 2023
6059104
fix(Neo4jIO): Fix case of exporting empty tree
osogi Apr 24, 2023
aeee57e
fix(Neo4jIO): Fix case of importing empty tree
osogi Apr 24, 2023
8696959
feat: Add alert dialog for exceptions
osogi Apr 24, 2023
53815e5
feat: Add exception handling to neo4j import/export
osogi Apr 24, 2023
6bbb9e0
refactor(TreeController): Change AVLNode color from blue to cyan
Anna-er Apr 24, 2023
ffd8549
feat(TreeController): Add childrenCount() method
Anna-er Apr 24, 2023
a3ada0e
refactor(TreeController): Add methods drawLeft() and drawRight() inst…
Anna-er Apr 24, 2023
9d77466
refactor(TreeController): Use an existing function to count children
Anna-er Apr 24, 2023
a08b666
fix(Json): Rewrite Json with support for the new architecture
Anna-er Apr 25, 2023
bce4f7a
fix(Json): Edit Json specification
Anna-er Apr 25, 2023
da152a2
fix: Fix moment than all tree disappears
osogi Apr 24, 2023
cc5157b
feat: Add resizable to TreeView
osogi Apr 24, 2023
67b5493
feat: Improve insert, remove, find
osogi Apr 24, 2023
807221f
feat: Add "reset" and "to root" buttons
osogi Apr 25, 2023
f574975
feat: Add Logger
osogi Apr 25, 2023
62efa0d
feat: Add auto-cleat to insert, remove, find
osogi Apr 25, 2023
f77a952
refactor: move irf rows to separate file
osogi Apr 25, 2023
7c34daa
feat: Add non-int key processing
osogi Apr 25, 2023
c5035cf
feat: Add auto resizable text to node
osogi Apr 25, 2023
30a6860
fix: Fix text disappearing on resize
osogi Apr 25, 2023
209d3dc
fix: Add case of empty string
osogi Apr 26, 2023
567c221
fix: Change find result
osogi Apr 26, 2023
75bc2a1
fix: Fix broken tooltips
osogi Apr 26, 2023
45777cf
feat(Contributing): Add remove
Parzival-05 Apr 29, 2023
defdfda
feat(FilesIOHandler): Add Import and Export of SQLite files in UI
Parzival-05 Apr 28, 2023
237986e
feat(FilesIOHandler): Add Import and Export of json files in UI
Parzival-05 Apr 28, 2023
3f69cca
refactor(FilesIOHandler): Remove unused DialogTypes
Parzival-05 Apr 28, 2023
7ab1a00
refactor(FilesIOHandler): Add Suppress
Parzival-05 Apr 28, 2023
608423d
refactor(App, Tree): Change some variables, fix typos
Parzival-05 Apr 28, 2023
5a0229a
feat(FilesIOHandler): Add special window for save in db
Parzival-05 Apr 29, 2023
586e321
fix(FilesIOHandler): Fix case of import empty tree
Parzival-05 Apr 29, 2023
d7c9dbd
fix(SQLiteIO): Add change of color
Parzival-05 Apr 29, 2023
845e29d
feat(SQLiteIO): Add check for double left/right child
Parzival-05 Apr 29, 2023
c072be1
feat(SQLiteIO): Change IOException to HandledIOException
Parzival-05 Apr 29, 2023
2bad2eb
feat(Readme): Add some details about SQLiteIO methods
Parzival-05 Apr 29, 2023
862cc78
remove(SQLiteIO): Remove logger
Parzival-05 Apr 29, 2023
6001957
remove(SQLiteIO): Remove unused imports
Parzival-05 Apr 29, 2023
0b916a7
fix(FilesIOHandler): Fix case of import/export of null node table
Parzival-05 Apr 29, 2023
949267a
fix(SQLiteIO): Fix case of import database without Nodes table
Parzival-05 Apr 29, 2023
d27e834
fix(TreeController): Open getNodeCol method
Parzival-05 Apr 29, 2023
41096d3
fix(SQLiteIO): Fix setting color of node
Parzival-05 Apr 29, 2023
dcbda76
feat(FilesIOHandler): Use enum as function argument
Parzival-05 Apr 30, 2023
c371fe5
feat(FilesIOHandler): Format code
Parzival-05 Apr 30, 2023
e139d5c
feat: Init AppData class
osogi Apr 29, 2023
f471641
fix: Edit Neo4jConnect and add global variable appDataController
osogi Apr 29, 2023
a4730d3
feat: Add opening of last tree
osogi Apr 29, 2023
681b99f
fix: Rework alertDialog at main
osogi Apr 29, 2023
0b2710a
feat: Add updating of lastTree on importRB
osogi Apr 29, 2023
5bbcf10
fix(SQLiteIO): Add additional exception in `importTree()`
osogi Apr 30, 2023
1f480f3
refactor: Reformat files
osogi Apr 30, 2023
a3fdb64
feat: Add updating of lastTree in BinSearch and AVL cases
osogi Apr 30, 2023
1f7c40c
fix(SQLiteIO): Fix catch of exceptions
Parzival-05 Apr 30, 2023
41a38cd
feat(App, FilesIOHandler): Improve import methods: now it's using cau…
Parzival-05 Apr 30, 2023
954218c
fix(App): Fix xyevoe name of variable
Parzival-05 Apr 30, 2023
50a4980
feat(App): Remove signs of ignorance, replace place of init of `Compo…
Parzival-05 Apr 30, 2023
4bd77a8
fix(FilesIOHandler): Fix incorrect conflict resolution
Parzival-05 Apr 30, 2023
6c6cbe6
feat(SQLiteIO): Remove treeController from class property and add it …
Parzival-05 May 2, 2023
ed77a95
refactor(TreeController): Change the root coordinates to (0,0)
Anna-er Apr 29, 2023
a825e73
feat(TreeController): Add width calculation method
Anna-er Apr 29, 2023
f0ae373
refactor(TreeController): Use widths in drawLeft() and drawRight()
Anna-er Apr 29, 2023
0acfc64
refactor(TreeController): Refactor countWidth()
Anna-er Apr 29, 2023
e6d6519
refactor(TreeController): Combine methods drawLeft() and drawRigh() i…
Anna-er May 1, 2023
b321be0
refactor(Json): Rename class
Anna-er May 2, 2023
eef2436
perf(JsonIO): Add TreeController as an argument to the import and exp…
Anna-er May 2, 2023
e138ceb
fix(JsonIO): Add color to imported nodes
Anna-er May 2, 2023
1575dac
refactor(JsonIO): Edit JsonIO specification and remove delete method
Anna-er May 2, 2023
b66818f
feat(Contributing): Add perf
Anna-er May 2, 2023
285afe7
refactor(AVLTree): Rename auxiliary methods
Anna-er May 2, 2023
dece591
refactor(AVLTree): Refactor balance() and related methods
Anna-er May 2, 2023
ad953ad
refactor(AVLTreeTest): Remove extra spaces and replace the operator …
Anna-er May 2, 2023
21d1b2e
struct: Divide ExceptionIOHandler.kt into several files
osogi May 1, 2023
f7e0492
feat: Add exit dialog
osogi May 1, 2023
e933056
feat: Implement exit dialog to main app
osogi May 1, 2023
e91d293
refactor(ExitDialog): Rename param
osogi May 2, 2023
8a1cbd8
refactor(Neo4jIO): Edit getting of color in import
osogi May 1, 2023
1283fef
fix(Neo4jDialog): Fix text fields
osogi May 1, 2023
1789275
feat(Neo4jDialog): Add auto choosing of tree name
osogi May 1, 2023
a4dd186
feat(Neo4jDialog): Add closing of database on exit
osogi May 1, 2023
0774dcf
feat(Neo4jIO): Change skipped IOException to HandledIOException
osogi May 1, 2023
b7f2776
refactor(Neo4jIO): Refactor map types
osogi May 1, 2023
2da8843
refactor(ExitDialog): Rename param (again)
osogi May 2, 2023
395fced
refactor(SQLiteIO): Change the order of defining functions
Parzival-05 May 2, 2023
a73ae09
refactor(SQLiteIO): Actions with setOfNodes moved out of transactions
Parzival-05 May 2, 2023
61ed130
refactor(SQLiteIO): Remove class property, replace count method with …
Parzival-05 May 2, 2023
73c8139
refactor: Add kdoc to TemplateNode
osogi May 2, 2023
20f26a4
refactor(TemplateNode): Remove countNullChildren() method
osogi May 2, 2023
59acbdf
refactor(TemplateNode): Remove getChild() method
osogi May 2, 2023
c58743b
refactor(TemplateNode): Rename elem to element
osogi May 2, 2023
9384bb5
refactor(RBNode): Fix color naming
osogi May 2, 2023
4ee9bb3
refactor(TreeController): Remove unused private method height
osogi May 2, 2023
d4445c4
refactor(Nodes): Add kdoc
osogi May 2, 2023
9601ae5
refactor(TemplateBSTree): Add kdoc and change some names
osogi May 2, 2023
fa92220
refactor(TemplateBalanceTree): Refactor getBalanceRemoveType() method
osogi May 2, 2023
c7734c7
refactor(TemplateBalanceTree): Add kdoc and change some names
osogi May 2, 2023
204c0db
fix(Neo4jIO): Change skipped IOException to HandledIOException
osogi May 2, 2023
9ebdb05
fix: Remove unused code
osogi May 2, 2023
74e5866
fix: Remove legacy code
osogi May 2, 2023
b7bc5fb
fix: Fix resizable line problem
osogi May 2, 2023
49b04fd
fix: Fix colors of tree nodes
osogi May 2, 2023
700ebb8
fix: Fix typo
osogi May 2, 2023
5384ee4
struct: Update README.md
osogi May 2, 2023
b31fd07
refactor(RBTree): Add separators of lines
Parzival-05 May 2, 2023
c3a4f5a
refactor(RBTree): Remove separators of lines
Parzival-05 May 2, 2023
a55d1fa
refactor(RBTree): Simplify checks for null
Parzival-05 May 2, 2023
7664737
refactor(RBTree): Remove extra `return`'s
Parzival-05 May 2, 2023
aa87335
refactor(RBTree): Optimize `getBlackHeight` method
Parzival-05 May 2, 2023
1cdbc40
feat(README): Update Readme
Parzival-05 May 2, 2023
c6f48cf
fix(RBTree): Update names
osogi May 2, 2023
ed0b0bf
refactor(RBTree): Move docs comments
osogi May 2, 2023
4d0b258
fix: Fix resizable line problem again
osogi May 2, 2023
ad22d50
fix(README): Fix bug with extension of file
Parzival-05 May 2, 2023
009e06e
fix(JsonIO): Add exception catch
osogi May 2, 2023
7306a6b
fix: Add exception catching on export
osogi May 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# Linux start script should use lf
/gradlew text eol=lf

# These are Windows script files and should use crlf
*.bat text eol=crlf

44 changes: 44 additions & 0 deletions .github/mergeable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
version: 2
mergeable:
- when: pull_request.*, pull_request_review.*
filter:
# ignore 'Feedback' PR
- do: payload
pull_request:
title:
must_exclude:
regex: '^Feedback$'

validate:
# Work in progress
- do: title
must_exclude:
regex: '^\[WIP\]'
- do: label
must_exclude:
regex: 'wip'

# No empty description
- do: description
no_empty:
enabled: true
message: Description matter and should not be empty.

# Some approve
- do: approvals
min:
count: 1
required:
assignees: true


# Pull request to main only from release and hotfix branches
- do: or
validate:
- do: baseRef
must_exclude:
regex: '^main$'
- do: headRef
must_include:
regex: '^(release|hotfix)\/.+$'
message: "Create PR to main only from release and hotfix branches"
40 changes: 40 additions & 0 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Build project

on:
push:
jobs:
build-gradle-project:
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout project sources
uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 11

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Run build with Gradle Wrapper
run: ./gradlew build

- name: Upload reports for library
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: library-reports (${{ matrix.os }})
path: binaryTree/build/reports/
if-no-files-found: ignore

- name: Upload reports for app
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: app-reports (${{ matrix.os }})
path: app/build/reports/
if-no-files-found: ignore
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Gradle
.gradle
build

# Idea
.idea
70 changes: 70 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Внесение правок

## Основные советы

1. Никогда не используйте merge, только rebase для сохранения линейной истории коммитов
2. **Осторожно** с изменениями в чужих ветках. Придется больно и мучительно делать rebase. Лучше не трогайте чужие
ветки
3. Перепроверьте историю коммитов перед созданием пулл реквеста
4. Каждый коммит должен быть осознанным и быть одним логическим элементом
5. Каждый пулл реквест должен быть осознанным и быть одним логическим элементом
6. **Перепроверьте, что вы в правильной ветке**, никогда не коммитьте напрямую в main

## Правила добавления коммитов

Коммиты добавляются в соответствии с conventional commits. Т.е
`<type>(<scope>): <body>`.

Поле `<type>` должно принимать одно из этих значений:

* `feat` для добавления новой функциональности
* `fix` для исправления бага в программе
* `refactor` для рефакторинга кода, например, переименования переменной
* `perf` для изменения кода, повышающего производительность
* `test` для добавления тестов, их рефакторинга
* `struct` для изменений связанных с изменением структуры проекта (НО НЕ КОДА), например изменение
расположения папок
* `ci` для различных задач ci/cd
* `remove` для удаления

Поле `<scope>` опционально и показывает к какому модулю, классу, методу функции и т.п применены изменения.

Поле `<body>` содержит суть изменений в повелительном наклонении настоящего времени на английском языке без точки в
конце, первое слово - глагол с большой буквы. Текст сообщения должен включать мотивацию к изменению и контрасты с
предыдущим поведением.

Примеры:

* Хорошо: "Add module for future BST implementations"
* Плохо: "Added module for future BST implementations."
* Плохо: "Adds module".
* Очень плохо: "new bug."

## Правила работы с ветками

1. Из ветки `develop` создается ветка `release`.
2. Из ветки `develop` создаются ветки `feature`.
3. Когда работа над веткой `feature` завершается, она сливается в ветку `develop`.
4. Когда работа над веткой `release` завершается, она сливается с ветками `develop` и `main`.
5. Если в ветке `main` обнаруживается проблема, из `main` создается ветка `hotfix`.
6. Когда работа над веткой `hotfix` завершается, она сливается с ветками `develop` и `main`.

### Правила именования и создания веток `feature`

Ветка под одно (большое) логическое изменение. Формат для веток `<type>/<short-body>`. Тип аналогичен тому же в
коммитах,
а `<short-body>` представляет собой короткое описание назначения ветки в kebab-case стиле.

Примеры хороших названий:

* `feat/add-avl-tree`
* `ci/add-klint`

После одобрения пулл реквеста, ветка удаляется. А новая функциональность разрабатывается в новой ветке.

### Именование веток `hotfix`

Формат для веток `hotfix/<short-body>`. Где `<short-body>` представляет собой короткое описание назначения ветки в
kebab-case стиле.

**Ветка `hotfix` создается только из ветки `main`**
16 changes: 16 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
MIT License

Copyright (c) 2023 Akhmedov David, Ermolovich Anna, Efremov Alexey, Yakshigulov Vadim, Dyachkov Vitaliy, Perevalov Efim

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading