diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml
index a0f69ecd..361940ad 100644
--- a/.github/workflows/Release.yml
+++ b/.github/workflows/Release.yml
@@ -26,7 +26,7 @@ jobs:
uses: softprops/action-gh-release@v1
with:
tag_name: ${{steps.tag.outputs.tag}}
- name: Release ${{steps.tag.outputs.tag}}
+ name: ${{steps.tag.outputs.tag}}
body_path: ./Release.md
draft: false
prerelease: false
@@ -50,12 +50,16 @@ jobs:
node-version: 16.13.0
- name: Install dependencies
run: npm install
- - name: Build Workbench & create archive for ${{ matrix.os }}
+ - name: Create release assets directory
+ run: mkdir -p dist
+ - name: Build Workbench & create release archive for ${{ matrix.os }}
run: npm run publish
- - name: Verify Generated archive in dist/
+ - name: Create source code archive (including node_modules)
+ run: npm run srcarchive
+ - name: Verify Generated archives in dist/
run: ls ./dist
- name: Upload release assets
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.ref_name }}
- files: dist/*
\ No newline at end of file
+ files: dist/*
diff --git a/AUTHORS.rst b/AUTHORS.rst
new file mode 100644
index 00000000..9e4c2c63
--- /dev/null
+++ b/AUTHORS.rst
@@ -0,0 +1,20 @@
+The following organizations or individuals have contributed to ScanCode Workbench:
+
+- @Aayush-hub => Aayush Garg
+- @AyanSinhaMahapatra => Ayan Sinha Mahapatra
+- @camillem => camillem
+- @chinyeungli => Chin Yeung
+- @dependabot[bot] => null
+- @dotarjun => Arjun
+- @jdaguil => Jillian Daguil
+- @johnmhoran => John M. Horan
+- @kopal960 => Kopal Rustagi
+- @lakshay-angrish => null
+- @OmkarPh => Omkar Phansopkar
+- @pombredanne => Philippe Ombredanne
+- @pranav1698 => Pranav Kulshrestha
+- @Pushpit07 => Pushpit
+- @RituRajSingh878 => Ritu Raj Singh
+- @steven-esser => Steven Esser
+- @Vishal-raj-1 => Vishal Rajput
+- @vsvipul => Vipul
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index f8cf1a7b..d29b3f61 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
The format is based on `Keep a
Changelog `__
+[Unreleased (v4.0.1)]
+--------------------------
+
+**This ScanCode-Workbench release contains schema changes: scans will have to be re-imported**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+--------------------
+New Features
+~~~~~~~~~~~~
+
+- Support for To-do items by @OmkarPh in #593
+- Track & filter reviewed licenses by @OmkarPh in #571
+
+Bug Fixes
+~~~~~~~~~
+
+- Fixed Irregular auto-scroll to target path by @OmkarPh in #610
+- Fixed all vulnerabilities & updated packages by @OmkarPh in #611
+- Restore old app name by @dotarjun in #615
+- Fixed compund SPDX expression resolution in detection & clue matches by @OmkarPh in #619
+- Reduce release build size by removing redundant `node_modules` dependencies by @OmkarPh in #623
+
+
[v4.0.0] - 2023-10-26
--------------------------
@@ -52,7 +75,6 @@ New Features
- Working indicator for queries
- Diff modal for Matched text & Rule text in Matches table
-
Bug Fixes
~~~~~~~~~
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
new file mode 100644
index 00000000..ff7acfd9
--- /dev/null
+++ b/CONTRIBUTING.rst
@@ -0,0 +1,91 @@
+============
+Contributing
+============
+
+Contributions are welcome and appreciated!
+Every little bit helps, and a credit will always be given.
+
+.. _issues : https://github.com/nexB/scancode-workbench/issues
+__ issues_
+
+If you are new to ScanCode Workbench and want to find easy tickets to work on,
+check `easy issues `_
+
+When contributing to ScanCode Workbench (such as code, bugs, documentation, etc.) you
+agree to the Developer `Certificate of Origin `_
+and the ScanCode license (see the `NOTICE `_ file).
+The same approach is used by Linux Kernel developers and several other projects.
+
+For commits, it is best to simply add a line like this to your commit message,
+with your name and email::
+
+ Signed-off-by: Jane Doe
+
+Please try to write a good commit message, see `good commit message wiki
+`_ for
+details. In particular use the imperative for your commit subject: think that
+you are giving an order to the codebase to update itself.
+
+
+Feature requests and feedback
+=============================
+
+To send feedback or ask a question, `file an issue `_
+
+If you are proposing a feature:
+
+* Explain how it would work.
+* Keep the scope as simple as possible to make it easier to implement.
+* Remember that your contributions are welcomed to implement this feature!
+
+
+Chat with other developers
+==========================
+
+For other questions, discussions, and chats, we have official Matrix rooms:
+
+- `discuss room `_ (for all projects)
+- `scancode-workbench room `_
+
+
+Bug reports
+===========
+
+When `reporting a bug`__ please include:
+
+* Your operating system name, version, and architecture.
+* Your ScanCode Workbench version.
+* Any additional details about your local setup that might be helpful to
+ diagnose this bug.
+* Detailed steps to reproduce the bug, such as the scan file you imported, filters you applied, etc.
+* The error messages or failure trace if any.
+* If helpful, you can add a screenshot as an issue attachment when relevant or
+ some extra file as a link to a `Gist `_.
+
+
+Documentation improvements
+==========================
+
+Documentation can come in the form of new documentation pages/sections, tutorials/how-to documents,
+any other general upgrades, etc. Even a minor typo fix is welcomed.
+
+If something is missing in the documentation or if you found some part confusing,
+please file an issue with your suggestions for improvement. Your help and contribution make ScanCode Workbench docs better, we love hearing from you!
+
+The ScanCode Workbench documentation is hosted at `scancode-workbench.readthedocs.io `_.
+
+If you want to contribute to Scancode Workbench Documentation, you'll find `this guide here `_ helpful.
+
+
+Pull Request Guidelines
+-----------------------
+
+If you need a code review or feedback while you are developing the code just
+create a pull request. You can add new commits to your branch as needed.
+
+For merging, your request would need to:
+
+1. Include unit tests that are passing (run ``npm test``).
+2. Update documentation as needed for new UI screen, functionality, etc.
+3. Add a note to ``CHANGELOG.rst`` about the changes.
+4. Add your name to ``AUTHORS.rst``.
diff --git a/README.md b/README.md
index 4d44592b..42e30762 100644
--- a/README.md
+++ b/README.md
@@ -72,9 +72,7 @@ Note: Due to usage of native modules, a build must be done on target platform on
$ npm run publish
```
-After building is done, you can find `ScanCode-Workbench` under
-`dist/ScanCode-Workbench--x64-`. Archives (tar.gz and .zip) are
-also built.
+You can find the executible `ScanCode-Workbench-` inside `out/ScanCode-Workbench---` and distributable archive (.tar.gz or .zip) in `dist/`
## Testing
diff --git a/Release.md b/Release.md
index f0d90daf..2fd1303d 100644
--- a/Release.md
+++ b/Release.md
@@ -1,27 +1,7 @@
## Major changes
-- Ported to React + Typescript variant !!
- Under GSoC by @OmkarPh
-- Support for scancode-toolkit v32.x output format v3.0.0
-- Updated Tableview library & columns
-- New sections: License Detections explorer, Packages explorer, ScanInfo, About
-- Support for multiple windows
-- Maintain history of imports
-- Updated dependencies
-- Created UI to support top level packages-deps obtained in latest scans
-- Support for Drag & drop JSON/SQLite files
-- Github actions to create automated releases
- Exception: macos arm64 is not yet support by Github actions yet, needs manual build & upload
-- Retain column order & states https://github.com/nexB/scancode-workbench/pull/568
-- License clues section in Licenses explorer https://github.com/nexB/scancode-workbench/pull/570
-- Go to specific file from licenses & packages explorer https://github.com/nexB/scancode-workbench/pull/572
-- Diff modal for Matched text & Rule text in Matches table https://github.com/nexB/scancode-workbench/pull/577
-- Working indicator for queries https://github.com/nexB/scancode-workbench/pull/583
-- Dashboard updates https://github.com/nexB/scancode-workbench/pull/585
-- Close file & cleanup https://github.com/nexB/scancode-workbench/pull/600
-- Unit tests https://github.com/nexB/scancode-workbench/pull/591
-- Dependency Info dashboard updates https://github.com/nexB/scancode-workbench/pull/594
-- Updated documentation https://github.com/nexB/scancode-workbench/pull/602
+- Support for To-do items by @OmkarPh in #593
+- Track & filter reviewed licenses by @OmkarPh in #571
## ScanCode Toolkit Compatibility
@@ -29,15 +9,17 @@ This v4.0.0 of ScanCode Workbench is compatible with scans from any [ScanCode To
## Bug fixes
-- Prevent crashes on unsupported scans
-- Provision for header-less scans (Test scans)
-- Table column fixes
-- Fixed UI anomalies
-- Invalid path query fix (Data for files with similar prefix were colliding)
-- window title update & occasional sqlite error for packages https://github.com/nexB/scancode-workbench/pull/560
-- license detection parser issues, trimmed filter options, hide empty 'other dependencies' https://github.com/nexB/scancode-workbench/pull/569
-- Refined UX including consistent scrollbars, tooltips, Search in licenses, filters for dependencies https://github.com/nexB/scancode-workbench/pull/587
-- Updated piechart tooltip https://github.com/nexB/scancode-workbench/pull/582
-- Automatic height for tables https://github.com/nexB/scancode-workbench/pull/606
-- Fixed Empty directory being shown with file icon https://github.com/nexB/scancode-workbench/pull/604
-- Fix irregular scroll behavior for files in deeply nested FileTree https://github.com/nexB/scancode-workbench/pull/599
+- Fixed Irregular auto-scroll to target path by @OmkarPh in #610
+- Fixed all vulnerabilities & updated packages by @OmkarPh in #611
+- Restore old app name by @dotarjun in #615
+- Fixed compund SPDX expression resolution in detection & clue matches by @OmkarPh in #619
+- Reduce release build size by removing redundant `node_modules` dependencies by @OmkarPh in #623
+
+## Framework
+
+- Electorn [v28.1.0](https://releases.electronjs.org/release/v28.1.0)
+- Chromium [v120.0.6099.109](https://source.chromium.org/chromium/chromium/src/+/refs/tags/120.0.6099.109:)
+
+# New Contributors
+
+- @dotarjun made his first contribution in #615
\ No newline at end of file
diff --git a/SCANCODE_WORKBENCH_VERSION b/SCANCODE_WORKBENCH_VERSION
new file mode 100644
index 00000000..cc868b62
--- /dev/null
+++ b/SCANCODE_WORKBENCH_VERSION
@@ -0,0 +1 @@
+4.0.1
\ No newline at end of file
diff --git a/archive_builder.py b/archive_builder.py
deleted file mode 100755
index f43dc952..00000000
--- a/archive_builder.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) nexB Inc. and others. All rights reserved.
-
-"""
-Run this script to build ScanCode Workbench. The script detects which OS
-it is running on and produces a build archive only for this platform.
-It is meant to run primarily on Github actions
-"""
-
-import os
-import sys
-import json
-import platform
-
-# Expected output file name: ScanCode-Workbench-{platform}-{arch}-{version}.tar.gz
-# Example: ScanCode-Workbench-linux-x64-4.0.0.tar.gz
-
-# Archive properties
-APP_NAME = 'ScanCode-Workbench'
-APP_BUNDLE_ID = 'com.nexb.scancode-workbench'
-ARCHIVE_DIR = 'dist'
-PACKAGE_DIR = 'out' # @NOTE - PACKAGE_DIR must be same as 'out' property in packager.js
-
-# Get scancode workbench version from package.json
-with open('package.json') as json_file:
- package_json_object = json.load(json_file)
- APP_VERSION = package_json_object['version']
-
-# platform-specific properties
-ARCH = str(platform.machine())
-SYSTEM_PLATFORM = str(sys.platform).lower()
-on_linux = on_windows = on_mac = False
-
-if 'linux' in SYSTEM_PLATFORM:
- PLATFORM_NAME = 'linux'
- PLATFORM = 'linux'
- on_linux = True
-
-elif 'win32' in SYSTEM_PLATFORM:
- PLATFORM_NAME = 'windows'
- PLATFORM = 'win32'
- on_windows = True
-
-elif 'darwin' in SYSTEM_PLATFORM:
- PLATFORM_NAME = 'macos'
- PLATFORM = 'darwin'
- on_mac = True
-
-else:
- raise Exception('Unsupported OS/platform %r' % SYSTEM_PLATFORM)
-
-# Prepare file name for archive using platform, architecture & app version
-archive_file_name = '-'.join([APP_NAME, PLATFORM_NAME, ARCH, APP_VERSION])
-print(f"Composed Archive file name: '{archive_file_name}'")
-
-# Ensure archive directory dist/ is created, before attempting to store archive inside it
-ensure_archive_directory = f"mkdir -p {ARCHIVE_DIR}"
-print("Executing mkdir command:", ensure_archive_directory)
-os.system(ensure_archive_directory)
-
-# Prepare .zip file for windows
-if on_windows:
- zip_command = f"powershell Compress-Archive {PACKAGE_DIR}/* {ARCHIVE_DIR}/{archive_file_name}.zip"
- print("Executing zip command on powershell:", zip_command)
- os.system(zip_command)
- print(f"Zip file ready: {ARCHIVE_DIR}/{archive_file_name}.zip")
-
-# Prepare .tar.gz file for mac & linux
-else:
- tar_command = f"tar -czf {ARCHIVE_DIR}/{archive_file_name}.tar.gz -C {PACKAGE_DIR} ."
- print("Executing tar command:", tar_command)
- os.system(tar_command)
- print(f"Tar file ready: {ARCHIVE_DIR}/{archive_file_name}.tar.gz")
-
-print("Build succeeded !!!")
diff --git a/attribution.html b/attribution.html
index 52984f64..9220827b 100644
--- a/attribution.html
+++ b/attribution.html
@@ -97,11 +97,6 @@ About ScanCode Workbench 4.0.0:
-
- ScanCode Workbench contains the following image assets:
- Import file illustration -
- Work illustrations by Storyset
-