JupyterLite 项目开发环境搭建与贡献指南

JupyterLite 项目开发环境搭建与贡献指南

jupyterlite Wasm powered Jupyter running in the browser 💡 jupyterlite 项目地址: https://gitcode.com/gh_mirrors/ju/jupyterlite

前言

JupyterLite 是一个基于 WebAssembly 的轻量级 Jupyter 环境,可以在浏览器中直接运行,无需服务器后端。本文将详细介绍如何搭建 JupyterLite 的开发环境,以及项目中的核心开发流程。

开发环境准备

基础环境要求

在开始 JupyterLite 开发前,需要确保系统满足以下基本要求:

  • Git 版本控制系统
  • Node.js 20.x 版本(但不包括 21.x)
  • JupyterLab 4.5.0a1 或更高版本(但低于 4.6)
  • Python 3.12.x 版本

推荐安装方式

对于跨平台开发,推荐使用 Mambaforge 作为环境管理工具:

  1. 安装 Mambaforge
  2. 使用项目中的环境配置文件创建开发环境:
    mamba env update --file .binder/environment.yml
    mamba activate jupyterlite-dev
    
  3. (仅限 Linux)如需完整归档可重现性测试,还需安装:
    mamba install -c conda-forge diffoscope
    

代码获取

使用 Git 克隆项目仓库:

git clone https://github.com/jupyterlite/jupyterlite

开发工具链

核心工具 doit

JupyterLite 使用 doit 作为构建工具,它管理着从 JavaScript 构建到文档生成的整个软件生命周期。doit 能够理解不同任务之间的依赖关系,通常以磁盘上文件的变更作为触发条件。

常用 doit 命令
  1. 初始化开发环境:

    doit dev
    
  2. 查看所有可用任务:

    doit list --all --status
    
  3. 默认构建任务(等同于直接运行 doit):

    doit build docs:app:build
    

开发服务器

JupyterLite 提供了多种开发服务器选项:

  1. 核心资产服务器(端口 5000):

    • JavaScript 版本:doit serve:core:js
    • Python 版本:doit serve:core:py
  2. 示例文档站点(端口 8000):

    doit serve:docs:app
    

    可通过 LITE_ARGS 环境变量传递 CLI 参数

  3. JupyterLab 服务器(端口 8888):

    doit serve:lab
    

    可通过 LAB_ARGS 环境变量传递 CLI 参数

JavaScript 开发工作流

快速开始

一键初始化 JavaScript 开发环境:

jlpm bootstrap

核心构建流程

  1. 安装依赖:

    jlpm
    
  2. 开发构建:

    jlpm build
    
  3. 生产构建:

    jlpm build:prod
    
  4. 启动开发服务器:

    • Node.js 版本:jlpm serve
    • Python 版本:jlpm serve:py
  5. 文件监视模式:

    jlpm watch
    

代码质量工具

  1. 代码格式化与检查:

    jlpm lint
    
  2. 单元测试:

    jlpm build:test
    jlpm test
    

Python 开发工作流

内核扩展

默认只包含 JavaScript 内核,如需添加其他内核:

  1. Pyodide 内核:

    pip install jupyterlite-pyodide-kernel
    
  2. Xeus Python 内核: 需要参考 Xeus 项目的安装文档

测试配置

可以通过环境变量传递额外的 pytest 参数:

PYTEST_ARGS='["-s", "-x", "--ff"]' doit test:py:jupyterlite-core

UI 测试框架

JupyterLite 使用基于 Playwright 的 Galata 框架进行端到端和视觉回归测试。

测试流程

  1. 安装依赖:

    cd ui-tests
    jlpm install
    
  2. 构建测试环境:

    jlpm build
    
  3. 运行测试:

    jlpm test
    

视觉回归测试

  1. 生成参考快照:

    jlpm test:update
    
  2. 更新快照流程:

    • 提交代码变更
    • 等待 CI 完成
    • 下载更新后的快照文件
    • 替换本地快照目录
    • 提交更新

问题排查

测试失败时,可以:

  1. 下载 Playwright 报告
  2. 启动本地服务器查看报告
  3. 检查失败测试的 Trace 部分

文档系统

JupyterLite 文档使用 Sphinx 构建,部分内容使用可执行的 Jupyter Notebook 编写。

文档构建

  1. 完整构建:

    doit docs
    
  2. 开发监视模式:

    doit watch:docs
    
  3. 严格模式构建(用于 CI):

    SPHINX_ARGS='["-W"]' doit docs
    

结语

本文详细介绍了 JupyterLite 项目的开发环境搭建和核心开发流程。通过合理利用项目提供的工具链,开发者可以高效地参与项目贡献。建议新贡献者从简单的文档改进或问题修复开始,逐步熟悉项目的复杂构建系统。

jupyterlite Wasm powered Jupyter running in the browser 💡 jupyterlite 项目地址: https://gitcode.com/gh_mirrors/ju/jupyterlite

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛易曙Linda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值