Skip to content

Drop Py3.9, add Py3.14, remove npm dev deps#379

Merged
t1m0thyj merged 7 commits into
mainfrom
dev/remove-npm-deps
Nov 17, 2025
Merged

Drop Py3.9, add Py3.14, remove npm dev deps#379
t1m0thyj merged 7 commits into
mainfrom
dev/remove-npm-deps

Conversation

@t1m0thyj

@t1m0thyj t1m0thyj commented Nov 14, 2025

Copy link
Copy Markdown
Member

What It Does

Removes npm deps so that npm is used purely as a task runner and there are no node_modules needed 😋

Also drops support for Python 3.9 which reached EoL and adds Python 3.14 to the build matrix.

How to Test

Test the npm scripts doc:open, env:active, env:delete

Review Checklist
I certify that I have:

Additional Comments

Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
@codecov

codecov Bot commented Nov 14, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.86%. Comparing base (822d5b1) to head (510c2b4).
⚠️ Report is 59 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #379   +/-   ##
=======================================
  Coverage   81.86%   81.86%           
=======================================
  Files          48       48           
  Lines        2768     2768           
=======================================
  Hits         2266     2266           
  Misses        502      502           
Flag Coverage Δ
unittests 81.86% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes npm development dependencies (opener, rimraf, run-script-os) from the project and replaces them with a Python script, allowing npm to be used purely as a task runner without requiring node_modules.

Key Changes:

  • Created a new Python script (scripts/tasks.py) to handle documentation opening and virtual environment management tasks
  • Updated npm scripts in package.json to call the Python script instead of npm packages
  • Removed all npm dev dependencies and the package-lock.json file

Reviewed Changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
scripts/tasks.py New Python script providing doc-open, env-active, and env-delete functionality previously handled by npm packages
package.json Updated npm scripts to invoke Python tasks and removed devDependencies section
package-lock.json Removed entirely as there are no longer any npm dependencies to track
docs/README.md Updated build instructions to remove the npm install step
.npmrc Removed configuration file as it's no longer needed without dependencies

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/tasks.py
Comment on lines +9 to +12
path = "docs/build/html/index.html"
print(f"Opening {path} in web browser...")
abs_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), path)
webbrowser.open("file://" + abs_path.replace("\\", "/"))

Copilot AI Nov 14, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The path construction using os.path.dirname(os.path.dirname(os.path.abspath(__file__))) assumes the script is always in scripts/ directory. Consider using a more robust approach with os.getcwd() or checking if the file exists before opening.

Suggested change
path = "docs/build/html/index.html"
print(f"Opening {path} in web browser...")
abs_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), path)
webbrowser.open("file://" + abs_path.replace("\\", "/"))
path = os.path.join(os.getcwd(), "docs", "build", "html", "index.html")
if not os.path.exists(path):
print(f"Error: Documentation file not found at {path}")
return
print(f"Opening {path} in web browser...")
webbrowser.open("file://" + path.replace("\\", "/"))

Copilot uses AI. Check for mistakes.
Comment thread scripts/tasks.py
Comment thread scripts/tasks.py Outdated
Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
@t1m0thyj t1m0thyj marked this pull request as draft November 14, 2025 14:24
@zowe-robot zowe-robot moved this from Review/QA to In Progress in Zowe CLI Squad Nov 14, 2025
Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
@t1m0thyj t1m0thyj force-pushed the dev/remove-npm-deps branch from f849178 to e86899c Compare November 14, 2025 14:33
Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
@t1m0thyj t1m0thyj changed the title Remove npm dev dependencies Drop Py3.9, add Py3.14, remove npm dev deps Nov 14, 2025

@zFernand0 zFernand0 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 😋

I like where this is going! 🙏
Do we need to update any user-facing (zowe docs) content to state that we are dropping support for Python 3.9?

@github-project-automation github-project-automation Bot moved this from In Progress to Review/QA in Zowe CLI Squad Nov 14, 2025
@t1m0thyj t1m0thyj force-pushed the dev/remove-npm-deps branch 4 times, most recently from d7a995e to 62734cc Compare November 14, 2025 15:22
Signed-off-by: Timothy Johnson <timothy.johnson@broadcom.com>
@t1m0thyj t1m0thyj marked this pull request as ready for review November 14, 2025 15:37
@t1m0thyj

Copy link
Copy Markdown
Member Author

LGTM! 😋

I like where this is going! 🙏 Do we need to update any user-facing (zowe docs) content to state that we are dropping support for Python 3.9?

@zFernand0 I believe we are good because Zowe docs link to the Python SDK docs which have been updated in this PR: https://zowe-client-python-sdk--379.org.readthedocs.build/en/379/usage/requirements.html

@traeok traeok left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this Timothy, had a quick question about the comment in secrets-sdk workflow

Comment thread .github/workflows/secrets-sdk.yml
@t1m0thyj t1m0thyj merged commit 93d5ca3 into main Nov 17, 2025
35 checks passed
@t1m0thyj t1m0thyj deleted the dev/remove-npm-deps branch November 17, 2025 21:00
@github-project-automation github-project-automation Bot moved this from Review/QA to Closed in Zowe CLI Squad Nov 17, 2025
@github-actions

github-actions Bot commented Dec 5, 2025

Copy link
Copy Markdown

Release succeeded for the main branch. 🎉

The following packages have been published:

  • pypi: zowe_core_for_zowe_sdk-1.0.0.dev24
  • pypi: zowe_python_sdk_bundle-1.0.0.dev24
  • pypi: zowe_workflows_for_zowe_sdk-1.0.0.dev24
  • pypi: zowe_zos_console_for_zowe_sdk-1.0.0.dev24
  • pypi: zowe_zos_files_for_zowe_sdk-1.0.0.dev24
  • pypi: zowe_zos_jobs_for_zowe_sdk-1.0.0.dev24
  • pypi: zowe_zos_tso_for_zowe_sdk-1.0.0.dev24
  • pypi: zowe_zosmf_for_zowe_sdk-1.0.0.dev24

Powered by Octorelease 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Closed

Development

Successfully merging this pull request may close these issues.

5 participants