From b4e509fd6d5429f4f288b5158c9b0fef896697ac Mon Sep 17 00:00:00 2001 From: Niall Farrell Date: Wed, 1 Nov 2023 11:01:53 +0000 Subject: [PATCH 1/3] KXI-27841 Repo cleanup, adding contribution guides --- .github/CONTRIBUTING.md | 39 +++++ .github/ISSUE_TEMPLATE/BUG.YML | 40 +++++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/pull_request_template.md | 3 + CODE_OF_CONDUCT.md | 1 - LICENSE | 240 +++++++++++++++++++++++++----- README.md | 4 +- SECURITY.md | 0 SUPPORT.md | 1 - package.json | 3 + release_process.md | 6 +- 11 files changed, 292 insertions(+), 46 deletions(-) create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE/BUG.YML create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/pull_request_template.md delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 SECURITY.md delete mode 100644 SUPPORT.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..9c18a2a3 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,39 @@ +# Contributing to kdb VS Code Extension + +Your input is very welcome, some examples of this include: + +- Reporting a bug +- Submitting a fix +- Proposing new features + +## Reporting a bug + +Bugs can be reported via [Issues](https://github.com/KxSystems/kx-vscode/issues) + +Where possible include: + +- Quick summary and/or background +- Steps to reproduce + - Be specific + - Provide sample code if you can +- What you expected would happen +- What actually happens +- Other relevant notes + +## Submitting a fix + +Fixes can be submitted via a pull request: + +1. Fork the repo and create your branch from `dev` +2. If you've added code that should be tested, add tests +3. Ensure the test suite passes, using `npm run test` +4. Apply the prettier formatting, using a plugin or manually using `npm run format` +5. Create a pull request for your branch + +### License + +When you submit code changes your submissions are understood to be under the same [Apache 2.0](https://github.com/KxSystems/kx-vscode/blob/main/LICENSE) that covers the project. Please feel free to contact the maintainers if that's a concern. + +## Proposing a new feature + +Please use vscode-questions@kx.com to raise any questions, feature requests or feedback. diff --git a/.github/ISSUE_TEMPLATE/BUG.YML b/.github/ISSUE_TEMPLATE/BUG.YML new file mode 100644 index 00000000..24e3d844 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG.YML @@ -0,0 +1,40 @@ +name: Bug Report +description: File a bug report +title: "[Bug]: " +labels: ["bug", "triage"] +projects: ["KxSystems/kx-vscode"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to complete this bug report + - type: input + id: contact + attributes: + label: Contact Details + description: How can we get in touch with you if we need more info? + placeholder: ex. email@example.com + validations: + required: false + - type: textarea + id: what-happened + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: Tell us what you see! + value: "A bug happened!" + validations: + required: true + - type: input + id: version + attributes: + label: Version + description: What version of the extension are you running? + validations: + required: true + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output (e.g. contents of the 'kdb' Output pane) + render: shell diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..50ab2fcf --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,3 @@ +### Changes introduced by this PR + +- diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 8b137891..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/LICENSE b/LICENSE index 8d641b91..c61b6639 100644 --- a/LICENSE +++ b/LICENSE @@ -1,39 +1,201 @@ -© KX Systems, Inc 2023 - -Version Number: 1.0 Date Last Revised: September 2023 - -Software License Agreement for use of kdb VS Code extension (“Agreement”) - -CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS. BY DOWNLOADING OR USING THE SOFTWARE, YOU ACKNOWLEDGE AND AGREE TO BE BOUND BY THESE TERMS AND CONDITIONS, WHICH MAY BE UPDATED FROM TIME TO TIME. “END USER” OR “YOU” MEANS YOU, THE USER OF THE SOFTWARE. YOU WARRANT THAT THE IDENTIFICATION DETAILS AND INFORMATION THAT YOU PROVIDE TO US, INCLUDING BUT NOT LIMITED TO, YOUR NAME, EMAIL ADDRESS, LOCATION, TELEPHONE NUMBER AND INTENDED USE ARE TRUE AND CORRECT. YOU ACKNOWLEDGE AND AGREE THAT THIS AGREEMENT IS ENFORCEABLE AND LEGALLY BINDING. - -NO ACCESS OR USE OF THE SOFTWARE IS PERMITTED FROM THOSE COUNTRIES WHERE SUCH USE IS PROHIBITED BY TRADE CONTROL LAWS. - -This Agreement is made between KX Systems, Inc. (“KX” or “we”) and the End User for access and use of KX’s kdb VS Code extension software, any updates, new versions and/or any documentation provided to you by KX (jointly, the “Software”). You agree to use the Software subject to the terms and conditions set forth below which shall be subject to change from time to time. - -1. LICENSE GRANTS - -1.1 Grant of License. KX hereby grants End User a non-transferable, non-exclusive license, without right of sublicense, to install and use the Software solely in connection with KX’s kdb+ or kdb Insights Enterprise software, which is made available by KX under separate licensing terms. End User will not attempt to circumvent any restrictions imposed on the Software or use the Software for any purpose other than stated above. - -1.2 Software Use Restrictions. End User may not: (a) modify any part of the Software or create derivative works thereof, (b) sell, lease, license or distribute the Software to any third party, (c) attempt to decompile, disassemble or reverse engineer the Software, (d) copy the Software, except for purposes of installing and executing it within the limitations set out at clause 1.1, (e) use or attempt to use the Software in any way that is unlawful or fraudulent or has any unlawful or fraudulent purpose or effect, (f) use or attempt to use the Software in any way that would breach the license granted herein. - -1.3 Software Performance. End User shall not distribute or otherwise make available to any third party any report regarding the performance of the Software, Software benchmarks or any information from such a report. - -1.4 Intellectual Property Ownership Rights. End User acknowledges and agrees that KX owns all rights, title and interest in and to the Software and in and to all of KX’s patents, trademarks, trade names, inventions, copyrights, know-how and trade secrets relating to its design, manufacture and operation, including all inventions, customizations, enhancements, improvements, updates, derivative works and other modifications and all related rights shall automatically vest in KX immediately upon creation. End User will not register any trademark, patent or copyright which uses or references the Software. The use by End User of such proprietary rights is authorized only for the purposes set forth herein, and upon termination of this Agreement for any reason, such authorization will cease. End User acknowledges that the Software is proprietary and contains confidential and valuable trade secrets of KX. - -2. SUPPORT. KX may at its discretion provide support to End User in relation to the Software. - -3. FEES. The Software is licensed to End User without charge. - -4. NO WARRANTY. THE SOFTWARE IS PROVIDED “AS IS.” KX EXPRESSLY DISCLAIMS AND NEGATES ALL WARRANTIES, WHETHER EXPRESSED, IMPLIED, STATUTORY OR OTHERWISE, AND SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF - -INTELLECTUAL PROPERTY OR OTHER VIOLATION OF RIGHTS. KX DOES NOT WARRANT THAT THE SOFTWARE WILL MEET END USER REQUIREMENTS OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR FREE. - -5. LIMITATION OF LIABILITY. WE DO NOT EXCLUDE OR LIMIT IN ANY WAY OUR LIABILITY TO YOU WHERE IT WOULD BE UNLAWFUL TO DO SO. SUBJECT TO THE FOREGOING SENTENCE, (I) KX’S LIABILITY UNDER OR IN CONNECTION WITH THIS AGREEMENT UNDER ANY LEGAL OR EQUITABLE THEORY, INCLUDING BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY SHALL BE LIMITED TO US$100, AND (II) IN NO EVENT SHALL KX BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES, INCLUDING BUT NOT LIMITED TO DAMAGE TO REPUTATION, LOSS OF EARNINGS, LOSS OF PROFIT, LOSS OF BUSINESS OR BUSINESS OPPORTUNITY OR BUSINESS INTERRUPTION IN CONNECTION WITH OR ARISING OUT OF THIS AGREEMENT AND/OR THE USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -6. TERM AND TERMINATION OF AGREEMENT. This Agreement shall terminate immediately upon KX’s written notice to End User and KX may at its discretion suspend or terminate End User’s use of the Software at any time. Upon termination of this Agreement or at any time upon KX’s written request, End User shall permanently delete or destroy all copies of the Software in its possession. - -7. GOVERNING LAW AND JURISDICTION. This Agreement and all related documents and all matters arising out of or relating to this Agreement whether in contract, tort, or statute shall be governed by and construed in accordance with the laws of the State of New York, United States of America, except as to copyright matters covered by U.S. Federal Law. Each party irrevocably and unconditionally agrees to the exclusive jurisdiction of the State of New York, and it will not commence any action, litigation, or proceeding of any kind whatsoever against any other party in any way arising from or relating to this Agreement and all contemplated transactions, including, but not limited to, contract, equity, tort, fraud, and statutory claims, in any forum other than the State of New York (except as permitted by KX as detailed below). End User hereby waives any objections to venue in those courts. Each party agrees that a final judgment in any such action, litigation, or proceeding is conclusive and may be enforced in other jurisdictions by suit on the judgment or in any other manner provided by law. Should any provision of this Agreement be declared unenforceable in any jurisdiction, then such provision shall be deemed to be severed from this Agreement and shall not affect the remainder hereof. Furthermore, with respect to a violation by End User of Section 1 (License Grant), KX will have the right at its discretion to seek remedies in courts of competent jurisdiction within any applicable territory. The United Nations Convention on Contracts for the International Sale of Goods and the Uniform Computer information Transactions Act, as currently enacted by any jurisdiction or as may be codified or amended from time to time by any jurisdiction, do not apply to this Agreement. - -8. TRADE CONTROL. You acknowledge that Software (including its related technical data and services) may be deemed dual use and is subject to, without limitation, the export control laws and regulations of the United Kingdom, European Union, and United States of America (“Trade Control Laws”). You agree to fully comply with those Trade Control Laws in connection with Software including where applicable assisting in obtaining any necessary governmental approvals, licenses and undertakings. You will not, and will not allow any third party, to use, export, re-export or transfer, directly or indirectly, of any part of the Software in violation of any Trade Control Laws or to a destination subject to US, UN, EU, UK or Organisation for Security and Cooperation in Europe (OSCE) embargo, or to any individual or entity listed on the denied parties’ lists. A statement on the Export Controls applicable to the Software, is available at the following website: Export Statement – KX. Any dispute in relation to this clause 8 shall be governed in accordance with clause 7 unless Trade Control Laws determine otherwise. You acknowledge that we may not be permitted (and, in such an event, shall be excused from any requirement) to deliver or grant access to the Software, or perform support or services, due to an embargo, trade sanction or other comparable restrictive measure. - -9. GENERAL. This is the only Agreement between End User and KX relating to the Software. The provisions of section 1.4 (“Intellectual Property Ownership Rights”), section 4 (“No Warranty”), section 5 (“Limitation of Liability”), section 6 (“Term and Termination”), section 9 (“General”) shall survive the termination of this Agreement for any reason. All other rights and obligations of the parties shall cease upon termination of this Agreement. This Agreement constitutes the sole and entire agreement of the parties with respect to the subject matter of this Agreement and supersedes all prior and contemporaneous understandings, agreements, and representations and warranties, both written and oral, with respect to such subject matter. You agree that you shall have no remedies in respect of any statement, representation, assurance or warranty (whether made innocently or negligently) that is not set out in this Agreement. Except for the limited rights and licenses expressly granted under this Agreement, nothing in this Agreement grants, by implication, waiver, estoppel, or otherwise, to you or any third party. If we fail to insist that you perform any of your obligations under this Agreement, or if we do not enforce our rights against you, or if we delay in doing so, that will not mean that we have waived our rights against you and will not mean that you do not have to comply with those obligations. If we do waive a default by you, we will only do so in writing and that will not mean that we will automatically waive any later default by you. \ No newline at end of file + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md index 9dbb9ea1..781d2c30 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ This is a companion extension for kdb developers to edit q files, connect to kdb Please use vscode-questions@kx.com to raise any questions, issues or feedback. - + ## Contents diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index e69de29b..00000000 diff --git a/SUPPORT.md b/SUPPORT.md deleted file mode 100644 index 8b137891..00000000 --- a/SUPPORT.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/package.json b/package.json index ec460763..ab2edb26 100644 --- a/package.json +++ b/package.json @@ -583,6 +583,9 @@ } }, "license": "MIT", + "bugs": { + "url": "https://github.com/KxSystems/kx-vscode/issues" + }, "homepage": "https://kx.com", "scripts": { "vscode:prepublish": "npm run -S esbuild-base -- --minify --keep-names", diff --git a/release_process.md b/release_process.md index d546453f..0df8852f 100644 --- a/release_process.md +++ b/release_process.md @@ -1,10 +1,10 @@ -# Release process for KX VSCode extension +# Release process for kdb VS Code extension -On each push to Main or Dev there is a vsix built and uploaded to [Downloads Portal](https://portal.dl.kx.com/assets/raw/kdb-vscode/) +On each push to the `main` or `dev` branches` a VSIX file is built and uploaded to [Downloads Portal](https://portal.dl.kx.com/assets/raw/kdb-vscode/) ## Steps for creating a new release -1. Update the [package.json](package.json) to bump the version for the extension. This is important because when installing the package (VSIX), it's important to have the updated version to ensure VSCode does not install another version. This applies after the extension is published to the marketplace. This uses semantic version of build.release.patch (e.g., 0.1.8) +1. Update the [package.json](package.json) to bump the version for the extension. This is important because when installing the package (VSIX), it's important to have the updated version to ensure VSCode does not install another version. This uses semantic version of build.release.patch (e.g., 0.1.8) 2. Update the [CHANGELOG.md](CHANGELOG.md) to include the release version the the appropriate comments on updates. This uses semantic version of build.release.patch (e.g., v0.1.8) From 824881f91850ae0c78a2d72e2c9c0da132bc274b Mon Sep 17 00:00:00 2001 From: Niall Farrell Date: Wed, 1 Nov 2023 11:13:34 +0000 Subject: [PATCH 2/3] Update image links to use Github --- README.md | 58 +++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 781d2c30..5eb76700 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,10 @@ This is a companion extension for kdb developers to edit q files, connect to kdb Please use vscode-questions@kx.com to raise any questions, issues or feedback. - [![KX VS Code CI Testing](https://github.com/KxSystems/kx-vscode/actions/workflows/ci.yml/badge.svg)](https://github.com/KxSystems/kx-vscode/actions/workflows/ci.yml) [![KX VS Code Release](https://github.com/KxSystems/kx-vscode/actions/workflows/release.yml/badge.svg)](https://github.com/KxSystems/kx-vscode/actions/workflows/release.yml) - ## Contents - [Why q for VS Code?](#why-q-for-vs-code) @@ -67,25 +65,25 @@ You can install q from the VS Code extension. You still need to register for [kd **Step 1**: Click `Install new instance` from the prompt if no q installation is flagged. If this prompt is cancelled, then use the aforementioned [install q](#install-q). -![installnewinstance](https://code.kx.com/img/vscode/installnewinstance.jpg) +![installnewinstance](https://github.com/KxSystems/kx-vscode/blob/main/img/installnewinstance.jpg?raw=true) **Step 2**: If you have already registered for kdb+ or kdb Insights, then choose `Select/Enter a license`. If you haven't registered, choose `Acquire license`, this will open a dialog with a redirect link to register for [kdb Insights Personal Edition](https://kx.com/kdb-insights-personal-edition-license-download/). -![findlicense](https://code.kx.com/img/vscode/findlicense.jpg) +![findlicense](https://github.com/KxSystems/kx-vscode/blob/main/img/findlicense.jpg?raw=true) **Step 3**: With the license secured, you can then link this to VS Code by either `pasting license string` or `selecting license file` from your PC; the latter method is recommended for new users. -![findlicense](https://code.kx.com/img/vscode/pastelicense.jpg) +![findlicense](https://github.com/KxSystems/kx-vscode/blob/main/img/pastelicense.jpg?raw=true) The base64 encoded license string can be found in the welcome email received after registration, under the download link for the license file. -![welcomeemaillicense](https://code.kx.com/img/vscode/weclomeemail.jpg) +![welcomeemaillicense](https://github.com/KxSystems/kx-vscode/blob/main/img/weclomeemail.jpg?raw=true) The `k4.lic` or `kc.lic` license file can be downloaded to your PC. **Step 4**: Set a [`QHOME` environment variable](https://code.kx.com/q/learn/install/#step-5-edit-your-profile) to the location used by the kdb VS Code install. A notification dialog displays the location of q, as do the extension [settings](#settings). This will allows you to use q outside of VSCode. -![qfound](https://code.kx.com/img/vscode/installationofqfound.jpg) +![qfound](https://github.com/KxSystems/kx-vscode/blob/main/img/installationofqfound.jpg?raw=true) If q is installed at `C:\q`, then `QHOME` is `C:\q`. @@ -101,11 +99,11 @@ The kdb VS Code extension allows you to connect VS Code to a q process; this can **Step 2**: Within the kdb VS Code extension, click _connect to kdb server_, or *Add new connection\*\* from the *CONNECTIONS\* context menu. -![connecttoakdbserver](https://code.kx.com/img/vscode/connecttoakdbserver.png) +![connecttoakdbserver](https://github.com/KxSystems/kx-vscode/blob/main/img/connecttoakdbserver.png?raw=true) **Step 3**: When prompted to select the kdb type, choose **Enter a kdb endpoint**. -![setendpoint](https://code.kx.com/img/vscode/step1connecttoakdbserver.jpg) +![setendpoint](https://github.com/KxSystems/kx-vscode/blob/main/img/step1connecttoakdbserver.jpg?raw=true) **Step 4**: Assign a _server name / alias_. The server name selected **cannot be `local` or `insights`**, as these are reserved for use by [managed q sessions](#managed-q-session) and [kdb Insights Enterprise connections](#kdb-insights-enterprise); e.g. _dev_ @@ -117,11 +115,11 @@ The kdb VS Code extension allows you to connect VS Code to a q process; this can Upon completion, the localhost connection appears under _KX:CONNECTIONS_ in the left hand panel. -![localkdbconnection](https://code.kx.com/img/vscode/localkdbconnection.jpg) +![localkdbconnection](https://github.com/KxSystems/kx-vscode/blob/main/img/localkdbconnection.jpg?raw=true) **Step 7**: Right-click the connection to _connect kdb server_. Ensure the q process is running. -![localkdbconnection](https://code.kx.com/img/vscode/connectserver.jpg) +![localkdbconnection](https://github.com/KxSystems/kx-vscode/blob/main/img/connectserver.jpg?raw=true) If authentication is required to access the connection, from the connection dropdown menu, add the required _username_ and the _password_, clicking Enter to move between the two. @@ -135,11 +133,11 @@ This runs a q session using the existing kdb installed as part of the kdb VS Cod **Step 1**: Click _connect to kdb server_ or _Add new connection_ from the _CONNECTIONS_ context menu. -![connecttoakdbserver](https://code.kx.com/img/vscode/connecttoakdbserver.png) +![connecttoakdbserver](https://github.com/KxSystems/kx-vscode/blob/main/img/connecttoakdbserver.png?raw=true) **Step 2**: When prompted to select the kdb type, choose **Enter a kdb endpoint**. -![setendpoint](https://code.kx.com/img/vscode/step1connecttoakdbserver.jpg) +![setendpoint](https://github.com/KxSystems/kx-vscode/blob/main/img/step1connecttoakdbserver.jpg?raw=true) **Step 3**: Set the _server name / alias_ to `local`. @@ -151,7 +149,7 @@ This runs a q session using the existing kdb installed as part of the kdb VS Cod **Step 6**: Right-click the managed q process listed under _KX:CONNECTIONS_, and click _Start q process_. -![setendpoint](https://code.kx.com/img/vscode/managedqprocess.jpg) +![setendpoint](https://github.com/KxSystems/kx-vscode/blob/main/img/managedqprocess.jpg?raw=true) **Step 7**: From the same right-click menu, click _Connect kdb server_. This connects to the child q process running inside the kdb VS Code extension. @@ -163,11 +161,11 @@ For kdb Insights Enterprise, the kdb VS Code extension is using a shared kdb pro **Step 1**: Click _connect to kdb server_. -![connecttoakdbserver](https://code.kx.com/img/vscode/connecttoakdbserver.png) +![connecttoakdbserver](https://github.com/KxSystems/kx-vscode/blob/main/img/connecttoakdbserver.png?raw=true) **Step 2**: When prompted to select a kdb type, choose _Connect to kdb insights_ -![connecttoinsights](https://code.kx.com/img/vscode/connecttoinsights.jpg) +![connecttoinsights](https://github.com/KxSystems/kx-vscode/blob/main/img/connecttoinsights.jpg?raw=true) **Step 3**: Create a _server name / alias_; this can be any name, aside from `local`, which is used by the [managed q session](#managed-q-session). @@ -175,15 +173,15 @@ For kdb Insights Enterprise, the kdb VS Code extension is using a shared kdb pro **Step 5**: The kdb Insights Enterprise connection is listed under _KX:Connections_, with its own icon. Right-click the connection and _Connect to Insights_ -![connecttoinsights](https://code.kx.com/img/vscode/kdbinsightsconnection.jpg) +![connecttoinsights](https://github.com/KxSystems/kx-vscode/blob/main/img/kdbinsightsconnection.jpg?raw=true) **Step 6**: The kdb VS Code extension runs an authentication step with the remote kdb Insights Enterprise process; sign-in to kdb Insights Enterprise. -![authenticateinsights](https://code.kx.com/img/vscode/insightsauthenticate.jpg) +![authenticateinsights](https://github.com/KxSystems/kx-vscode/blob/main/img/insightsauthenticate.jpg?raw=true) After a successful connection to a kdb Insights Enterprise process, a new _DATA SOURCES_ panel will become available in the kdb VS Code extension. -![insightsdatasources](https://code.kx.com/img/vscode/datasources.jpg) +![insightsdatasources](https://github.com/KxSystems/kx-vscode/blob/main/img/datasources.jpg?raw=true) Once connected to a q process, go to [execute code](#execute-code). @@ -201,9 +199,9 @@ A kdb language server is bundled with the kdb VS Code extension. It offers vario The extension provides keyword syntax highlighting, comments and linting help. -![Syntax Highlighting](https://code.kx.com/img/vscode/syntax-highlighting.png) +![Syntax Highlighting](https://github.com/KxSystems/kx-vscode/blob/main/img/syntax-highlighting.png?raw=true) -![Linting](https://code.kx.com/img/vscode/linting.png) +![Linting](https://github.com/KxSystems/kx-vscode/blob/main/img/linting.png?raw=true) ### Code navigation @@ -217,15 +215,15 @@ While developing q scripts, the kdb VS Code extension supports: View references of a function both on the side view and inline with the editor - ![Find all references](https://code.kx.com/img/vscode/find-all-references.png) + ![Find all references](https://github.com/KxSystems/kx-vscode/blob/main/img/find-all-references.png?raw=true) - ![Go to References](https://code.kx.com/img/vscode/go-to-references.png) + ![Go to References](https://github.com/KxSystems/kx-vscode/blob/main/img/go-to-references.png?raw=true) ### Code Completion - Keyword auto complete for the q language - ![Autocomplete](https://code.kx.com/img/vscode/autocomplete.png) + ![Autocomplete](https://github.com/KxSystems/kx-vscode/blob/main/img/autocomplete.png?raw=true) - Autocomplete for local and remotely connected q processes @@ -265,7 +263,7 @@ To create a data source: 1. Click on the created data source where the name, API and parameterization can be applied. 1. Click Save to persist the data source to the VS Code workspace. -![data Source](https://code.kx.com/img/vscode/data-source.png) +![data Source](https://github.com/KxSystems/kx-vscode/blob/main/img/data-source.png?raw=true) To run a data source, click 'Run' and the results populate the output and kdb results windows. @@ -283,7 +281,7 @@ To do this: 1. Return to VS Code and execute q code against the data in your scratchpad. -![Populate Scratchpad](https://code.kx.com/img/vscode/populate-scratchpad.png) +![Populate Scratchpad](https://github.com/KxSystems/kx-vscode/blob/main/img/populate-scratchpad.png?raw=true) ## View results @@ -293,21 +291,21 @@ All query executions happen remotely from the kdb VS Code extension either again The output view displays results as they are received by the kdb VS Code extension. It includes the query executed, a timestamp and the results. - ![Output view](https://code.kx.com/img/vscode/output-results.png) + ![Output view](https://github.com/KxSystems/kx-vscode/blob/main/img/output-results.png?raw=true) **Note:** You can enable/disable auto-scrolling in the VS Code settings. This setting determines whether the output view scrolls to the latest results. - ![Output autoscrolling](https://code.kx.com/img/vscode/auto-scrolling.png) + ![Output autoscrolling](https://github.com/KxSystems/kx-vscode/blob/main/img/auto-scrolling.png?raw=true) **Note** You can hide or show the full details in the console output. Go to settings of the vscode, search for kdb, check the option "Hide Detailed Console Query Output" (this option is checked by default) - ![Hide Detailed Console Query Output](https://code.kx.com/img/vscode/hide-detailed-console-query.png) + ![Hide Detailed Console Query Output](https://github.com/KxSystems/kx-vscode/blob/main/img/hide-detailed-console-query.png?raw=true) - A kdb results view Results are displayed under the kdb results view, which shows the returned data in a table. - ![kdb results view](https://code.kx.com/img/vscode/kdbview-results.png) + ![kdb results view](https://github.com/KxSystems/kx-vscode/blob/main/img/kdbview-results.png?raw=true) ## Settings From b9e2cd676996465739dab360b008b86ec2d9584b Mon Sep 17 00:00:00 2001 From: Niall Farrell Date: Wed, 1 Nov 2023 11:49:15 +0000 Subject: [PATCH 3/3] Update package.json --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index ab2edb26..f80fe180 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,10 @@ "vscode": "^1.66.0" }, "icon": "resources/images/kx-logo-vs.png", + "repository": { + "type": "git", + "url": "https://github.com/KxSystems/kx-vscode.git" + }, "aiKey": "93119af7-5d98-45d0-abf8-5074976a1472", "capabilities": { "untrustedWorkspaces": {