-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
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
build: add oracle to CI #6623
Merged
Merged
build: add oracle to CI #6623
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason why we didn't have this before in
package.json
is because it will cause many problems to users who want to pull typeorm source, simply runnpm i
without any headache and continue tweaking things.Is it still problematic to install this package? If yes, I recommend to remove it, and manually add
npm i oracledb
command to CI configThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did not have any issues installing this - at least, no more than sqlite3 with node-gyp. I didn't have to install anything extra.
But - that's just me. I tried on Linux and a Mac running high sierra (with homebrew). Is there any way we can test that further?
Actually USING the Oracle driver with this package is a separate issue.. as long as you're not enabling it and just using it for the static analysis and the like it seems to work without extra effort.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm talking about these steps:
https://oracle.github.io/node-oracledb/INSTALL.html#-2-quick-start-node-oracledb-installation
From what I remember it was required to do all these steps otherwise
npm i
on typeorm root would fail. That's why I'm talking, if it still necessary to do these steps for users, it's better to remove oracledb from dependencies.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The steps required for the install to work only apply if there's no prebuilt binary.
This does not include fetching the client libraries and setting up the ld config path which is only required if you are actually exercising the OracleDB module - eg, trying to connect to OracleDB.
Instead, the steps include installing dependencies for building a nodejs binary extension using gyp - but ONLY if your architecture and node version does not have a prebuilt binary. The same requirement applies for sqlite3 as it's also a binary module.
If this is a concern we can move this to a peer or optional dependency? But then the same should be done for sqlite3 & better-sqlite.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't have any problems installing sqlite3 & better-sqlite.... Don't remember any at least. But oracle definitely is a problem to install.
Anyway, my point is - any user should be able to just clone the repo, run
npm i
and just use it. With oracle its complicated (and we had users complaining about it few years ago). And since it looks like nothing has changed, and it's still a problem. I didn't heard anything about sqlite from users regarding to its issues.So I suggest to remove it, and make oracle tests to run only on CI, so it won't bring problems to users on their local machines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, I can do that. I'll get that later today. And as it stands, oracle tests wouldn't run locally unless you enabled them.
Also, the issues you're probably referring to are that the client libraries were needed to import the module before v3.1.0. However, that's been changed to not be the case.
The v4 release brought a refactor to use a different node API so the builds are portable allowing for a binary distributable to be used instead of having to always compile from source - using node pre gyp just like sqlite3.
So folks that are developing on typeorm would have the module installed but during runtime if they try to open a connection to OracleDB it throws an error.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay, if they updated the installations steps, then we can left it in deps.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy to move forward in whatever direction you think is best, here. It's fine either way by me. The one thing I'd want to make sure is that there's at least a hint of somewhere with the expected version of
oracledb
so we can easily pull it in with CI without hard-coding the version in the CI config.