Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
9709017
Setted up action for autopublish tests results. Due to the incompatib…
TheRustifyer Oct 30, 2022
42702f3
# Setting up testing actions, generate unit tests for the projects, c…
TheRustifyer Nov 10, 2022
7c755c9
#feature - Curated the reexports for redesing the public API of the l…
TheRustifyer Nov 14, 2022
0a158ab
Removed the complete reexport of . Now it's reexported only the neces…
TheRustifyer Nov 14, 2022
085be53
#features - cleaned and upgraded the reexports of the public API. Pro…
TheRustifyer Nov 14, 2022
abc7402
Trying to transmute instances of DatabaseConnection from &self obtain…
TheRustifyer Nov 16, 2022
3bfbd4c
Why tests passes?!
TheRustifyer Nov 16, 2022
fe1ff91
Playing with the behaviour of 'block_on()' in different contexts of t…
TheRustifyer Nov 16, 2022
8540d18
Implemented the connection cache manager for every datasource
TheRustifyer Nov 17, 2022
45bbc99
Using the datasource variants to check against the MSSQL
TheRustifyer Nov 17, 2022
0bc8973
#feature - Reworked the canyon macro -> main, that now runs the custo…
TheRustifyer Nov 18, 2022
3a6b7ba
Merge branch 'feature/GH-27-b-trasmutting-mut-ref-to-tiberius-tcp-cli…
TheRustifyer Nov 18, 2022
217e090
#refactor - canyon_manager crate removed from the project. The manage…
TheRustifyer Nov 21, 2022
0ad0e39
[NON WORKING] - Preview of the first changes of the migrations API
TheRustifyer Nov 22, 2022
46ca967
[WIP] - Mapped unordered metadata rows into one comprehensive struct
TheRustifyer Nov 23, 2022
c832d14
[WIP] - Removing intermediate data structures to parse the metadata i…
TheRustifyer Nov 23, 2022
463f64a
Debug logs for the row retriever
TheRustifyer Nov 23, 2022
80903d9
Correction over the concrete column entity generation
TheRustifyer Nov 24, 2022
b15ec53
Finished the refactor of the information schema parser
TheRustifyer Nov 24, 2022
bf4c6eb
Minor corrections on the memory process
TheRustifyer Nov 24, 2022
93b4010
CanyonMemoryRows holds references in its process
TheRustifyer Nov 24, 2022
a59aa2b
Canyon memory now works with both PostgreSQL and MSSQL without issues
TheRustifyer Nov 25, 2022
05368ae
First refactorings of the rename tables entity name operations
TheRustifyer Nov 26, 2022
bbcd41f
#fix - Renamed tables now are included as candidates for migrations
TheRustifyer Dec 2, 2022
63860e7
Removed properties from TableMetadata that aren't relevant for the mi…
TheRustifyer Dec 2, 2022
b7a633a
Debugging points for the base first operation, create or rename tables
TheRustifyer Dec 2, 2022
b6bbbf6
ALTER TABLE SqlServer version for migrations
TheRustifyer Dec 6, 2022
2cf3362
Reworking the constant values on the translations from Rust types to …
TheRustifyer Dec 6, 2022
d2cdd6d
WIP - Pursuing a .value() on a Option<String>
TheRustifyer Dec 7, 2022
9f3c199
#fix - Foreignkeyable refactor. The foreign key reverse lookage now r…
TheRustifyer Dec 7, 2022
9817659
merging branch with reflog content
TheRustifyer Dec 7, 2022
f1ea8f2
WIP - Entering on madness zone 'cause of SQL SERVER way of deleting a…
TheRustifyer Dec 8, 2022
880b70a
Non hardcoded values for column names on delete defaul constraint
TheRustifyer Dec 8, 2022
0a55627
Correction on the MS SQL rename table migration query. Cleaned up run…
TheRustifyer Dec 9, 2022
083d712
Merge branch 'feature/GH-27-feature-refactor-the-migrations-api' of h…
TheRustifyer Dec 9, 2022
6edf511
Merge branch 'feature/GH-27-feature-refactor-the-migrations-api' into…
TheRustifyer Dec 12, 2022
c327fa2
Solved an issue with past changes that was a function arg that was sp…
TheRustifyer Dec 12, 2022
0512646
Merge branch 'hotfix/bad-type-reverse-side-fk-macro' into feature/GH-…
TheRustifyer Dec 12, 2022
86fa3a2
Merge branch 'feature/GH-26-feature-joins-for-the-querybuilder' into …
TheRustifyer Dec 12, 2022
92db9a8
The QueryBuilder now has it's parameters non hardcoded as strings, ar…
TheRustifyer Dec 12, 2022
eed8f57
<TypeName>Field::field_name FieldName autogenerated enum now it's abl…
TheRustifyer Dec 12, 2022
b71f74c
Small corrections
TheRustifyer Dec 12, 2022
c12eb22
WIP - Base implementation of the hierarchy of the diff QueryBuilder i…
TheRustifyer Dec 13, 2022
3f02f3b
Merge branch 'feature/GH-27-feature-refactor-the-migrations-api' of h…
TheRustifyer Dec 13, 2022
415a833
WIP - Megarefactor of the QueryBuilder. SelectQueryBuilder has now jo…
TheRustifyer Dec 15, 2022
e95009b
More refactor to the QB
TheRustifyer Dec 15, 2022
758b9c8
Standarized the SelectQueryBuilder
TheRustifyer Dec 16, 2022
fe05755
Query impl on the BaseQueryBuilder type is removed from the interface…
TheRustifyer Dec 16, 2022
f3c4983
Update and delete operations created with the QueryBuilder got it's c…
TheRustifyer Dec 16, 2022
f55eb61
Accessors (as read only member methods) and mutators (for wire user d…
TheRustifyer Dec 16, 2022
ac28e6c
and_in BaseQueryBuilder method gets completed and added to the trait.…
TheRustifyer Dec 16, 2022
583cb49
BaseQueryBuilder type it's renamed to QueryBuilder, matching the Quer…
TheRustifyer Dec 16, 2022
ddec1c7
First unit tests for the SQL generated by the builder method calls
TheRustifyer Dec 16, 2022
8d0bc11
WIP Partial refactoring of migrations (add constraints).
TheRustifyer Dec 18, 2022
2d11926
WIP Partial refactoring of migrations (logic completed but not tested).
TheRustifyer Dec 18, 2022
31bda60
Added provisional conditionals on queries
TheRustifyer Dec 18, 2022
fb78eda
NOT WORKING - Added logs. Fix query execution.
TheRustifyer Dec 18, 2022
f3c0bca
Merge branch 'feature/GH-26-feature-joins-for-the-querybuilder'
TheRustifyer Dec 19, 2022
94342b1
Fixed level of conditionals for Foreign Key comparison operations
gbm25 Dec 20, 2022
3fbbd72
Merge pull request #1 from gbm25/feature/GH-27-feature-refactor-the-m…
TheRustifyer Dec 21, 2022
d867890
You're just not a Foreign Key honey, sorry about that
TheRustifyer Dec 21, 2022
082eacf
Added the case to the migrations when the user desires to add or remo…
TheRustifyer Dec 21, 2022
c78a16b
Migrations are now executed for every datasource designed. Pending to…
TheRustifyer Dec 22, 2022
2ea7f0c
Preparing the migrations for being executed by multiple datasources
TheRustifyer Dec 23, 2022
00fe205
Migrations caché works now with a lazy_static HashMap that organizes …
TheRustifyer Dec 23, 2022
8c3b991
Added more database datatypes supported on the migrations. Corrected …
TheRustifyer Dec 23, 2022
d3bb893
Merged the migrations API refactor and the QueryBuilder API extension…
TheRustifyer Dec 23, 2022
d61e8cd
WIP - The QueryBuilder tests are back. Everything works as spected bu…
TheRustifyer Dec 23, 2022
fc0a52a
UpdateQueryBuilder<T> got finally it's owned .set(...) method to gene…
TheRustifyer Dec 24, 2022
fa86d61
Preparing the very first initial release, at version 0.0.1, which wil…
TheRustifyer Dec 24, 2022
5b404d1
Every inner package specifies a version
TheRustifyer Dec 24, 2022
3ce892d
Added more terminal commands to the bash_aliases
TheRustifyer Dec 24, 2022
ae67c21
Relaxed restrictions on the type values of the second element of the …
TheRustifyer Dec 24, 2022
1b3cedb
Relaxed the mandatory until now Debug + Clone bounds on the Crud Oper…
TheRustifyer Dec 25, 2022
9fdc3ff
Included the repo metadata documents
TheRustifyer Dec 25, 2022
896cb16
Code formatted with rustfmt
TheRustifyer Dec 25, 2022
3ffc85e
Clippy tolds us that we could do it better, or, at least, rustier
TheRustifyer Dec 25, 2022
e1eefcd
More format. Inserting data into MSSQL docker for the integration tes…
TheRustifyer Dec 25, 2022
85d1a14
Upgraded docker-compose
TheRustifyer Dec 25, 2022
719c352
Solving Clippy warnings at the tests module
TheRustifyer Dec 25, 2022
ef7f35f
Reenabling docker-compose on targets different from Linux
TheRustifyer Dec 25, 2022
5d8b62c
Disabling integration tests for MacOS due to not docker-compose support
TheRustifyer Dec 25, 2022
44db0ff
IT only for Unix based systems
TheRustifyer Dec 25, 2022
0c693f0
Merge pull request #29 from Pyzyryab/main
TheRustifyer Dec 25, 2022
7820cc9
Merged development
TheRustifyer Dec 25, 2022
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
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# CODEOWNERS file for automating PR flows for the project

* @Pyzyryab
* @Gbm25
128 changes: 128 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[email protected].
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: "\U0001F41B Bug Report"
about: "If something isn't working as expected \U0001F914."
title: ''
labels: 'i: bug'
assignees: ''
---

## Bug Report

### Description
A clear and concise description of what the bug is.

### Steps to reproduce

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

### Expected result
A clear and concise description of what you expected to happen.

### Actual result
What is the actual behaviour you saw?

### Possible solution
<!--- Only if you have suggestions on a fix for the bug -->

### Additional information
For example, screenshots or analysis so far.

### Environment
OS:
Browser:
Stack used and version:
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: "\U0001F680 Feature Request"
about: "I have a suggestion! \U0001F642"
title: ''
labels: 'i: enhancement'
assignees: ''

---

## Feature Request

### Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I have an issue when [...]

### Describe the solution you'd like
A clear and concise description of what you want to happen. Add any considered drawbacks.

### Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: "\U00002753 Question"
about: "I'm trying to figure something out. \U0001F914"
title: ''
labels: ''
assignees: ''

---

## Question

What are you trying to understand?
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/refactor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: "\U0000267B Refactor"
about: "I spotted something we can do better. \U0001F913"
title: ''
labels: ''
assignees: ''

---

## Refactor

Describe the improvement we can make.
72 changes: 72 additions & 0 deletions .github/changelog_configuration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"categories": [
{
"title": "## 🚀 Features",
"labels": ["feature"]
},
{
"title": "## 🐛 Fixes",
"labels": ["fix"]
},
{
"title": "## 🧪 Tests",
"labels": ["test"]
},
{
"title": "## 🧪 Tests and some 🪄 Magic",
"labels": ["test", "magic"],
"exclude_labels": ["no-magic"],
"exhaustive": true,
"empty_content": "- no matching PRs"
}
],
"ignore_labels": [
"ignore"
],
"sort": {
"order": "ASC",
"on_property": "mergedAt"
},
"template": "${{CHANGELOG}}\n\n<details>\n<summary>Uncategorized</summary>\n\n${{UNCATEGORIZED}}\n</details>",
"pr_template": "- ${{TITLE}}\n - PR: #${{NUMBER}}",
"empty_template": "- no changes",
"label_extractor": [
{
"pattern": "(.) (.+)",
"target": "$1",
"flags": "gu"
},
{
"pattern": "\\[Issue\\]",
"on_property": "title",
"method": "match"
}
],
"duplicate_filter": {
"pattern": "\\[ABC-....\\]",
"on_property": "title",
"method": "match"
},
"transformers": [
{
"pattern": "[\\-\\*] (\\[(...|TEST|CI|SKIP)\\])( )?(.+?)\n(.+?[\\-\\*] )(.+)",
"target": "- $4\n - $6"
}
],
"max_tags_to_fetch": 200,
"max_pull_requests": 200,
"max_back_track_time_days": 365,
"exclude_merge_branches": [
"Owner/qa"
],
"tag_resolver": {
"method": "semver",
"filter": {
"pattern": "api-(.+)",
"flags": "gu"
}
},
"base_branches": [
"dev"
]
}
71 changes: 71 additions & 0 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Linux CI && Code Coverage

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]+'

env:
CARGO_TERM_COLOR: always

jobs:
code-coverage:
permissions:
contents: write
env:
CARGO_INCREMENTAL: '0'
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Use nightly toolchain
run: |
rustup toolchain install nightly
rustup override set nightly

- name: Caching cargo dependencies
id: project-cache
uses: Swatinem/rust-cache@v2

- if: ${{ steps.cache-cargo.outputs.cache-hit != 'true' }}
name: Install grcov
run: cargo install grcov

- name: Make the USER own the working directory
if: ${{ matrix.os == 'ubuntu-latest' }}
run: sudo chown -R $USER:$USER ${{ github.workspace }}

- name: Waking up docker
run: docker-compose -f ./docker/docker-compose.yml up -d

- name: Run tests
run: |
cargo test --all-features --no-fail-fast --target=x86_64-unknown-linux-gnu -- --show-output --test-threads=1

- name: Waking up docker
run: |
docker-compose -f ./docker/docker-compose.yml down
sudo chown -R $USER:$USER ${{ github.workspace }}
rm -rf ./docker/postgres-data

- name: Generate code coverage report
run: |
grcov . -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing -o ./target/debug/coverage
grcov . -s . --binary-path ./target/debug/ -t cobertura --branch --ignore-not-existing -o ./target/debug/coverage/code_cov.xml

- name: Publish Test Results
uses: actions/upload-artifact@v3
with:
name: Unit Test Results
path: |
./target/debug/coverage/code_cov.xml
./target/debug/coverage/index.html

- name: Publish coverage report to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: ./target/debug/coverage
token: ${{ secrets.GITHUB_TOKEN }}
Loading