<feed xmlns='http://www.w3.org/2005/Atom'>
<title>DropOut/.gitignore, branch main</title>
<subtitle>This is a new Minecraft launcher that is currently in development. It is designed to be a modern, fast and efficient launcher. It is written in Rust. Aims to be a Reproducible Minecraft Workspace Manager.</subtitle>
<id>https://git.hydroroll.team/DropOut/atom?h=main</id>
<link rel='self' href='https://git.hydroroll.team/DropOut/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/'/>
<updated>2026-03-18T03:57:17Z</updated>
<entry>
<title>fix(modpack): 将 CurseForge API Key 改为编译期可选常量 (#118)</title>
<updated>2026-03-18T03:57:17Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-03-18T03:57:17Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=8c913f2685383bcfa154c947a43571a8d33679ae'/>
<id>urn:sha1:8c913f2685383bcfa154c947a43571a8d33679ae</id>
<content type='text'>
# fix(modpack): 将 CurseForge API Key 改为编译期可选常量

修复 `env!()` 宏在开发者本地无 `CURSEFORGE_API_KEY` 时导致编译失败的问题，改用 `option_env!()`
+ build.rs 中的 `dotenvy` 读取 .env 文件，实现编译期嵌入、缺失时优雅降级。

## 更改类型

- [x] Bug 修复（修复问题的非破坏性更改）
- [ ] 新功能（添加功能的非破坏性更改）
- [ ] 破坏性更改（会导致现有功能无法正常工作的修复或功能）
- [ ] 文档更新
- [ ] UI/UX 改进
- [ ] 性能优化
- [ ] 代码重构（无功能性更改）
- [x] 配置更改
- [ ] 测试添加或更新

## LLM 生成代码声明

- [x] 此 PR 不包含 LLM 生成的代码，我**提供**质量担保

## 相关 Issue

相关 #110 #117

## 更改内容

### 后端 (Rust)

- modpack.rs：将 `env!("CURSEFORGE_API_KEY")` 替换为 `const
CURSEFORGE_API_KEY: Option&lt;&amp;str&gt; =
option_env!("CURSEFORGE_API_KEY")`，key 不存在时编译为 `None`，调用 CurseForge
功能时返回友好错误而非 panic
- build.rs：添加 `dotenvy::dotenv()` 调用，允许通过 .env 文件在编译期注入 key，并注册
`cargo:rerun-if-changed` / `cargo:rerun-if-env-changed` 确保增量构建正确

### 前端 (Svelte)

- 无

### 配置

- Cargo.toml：在 `[build-dependencies]` 中添加 `dotenvy = { version = "0.15",
default-features = false }`
- .gitignore：添加 .env / `.env.local` 忽略规则，防止 key 被意外提交
- .env.example：新增示例文件，说明可选配置项及获取方式

## 测试

### 测试环境

- **操作系统**：Fedora Linux 6.19.6-300.fc44.x86_64 x86_64
- **DropOut 版本**：0.2.0-alpha.5
- **测试的 Minecraft 版本**：N/A
- **Mod 加载器**：N/A

### 测试用例

- [ ] 已在 Windows 上测试
- [ ] 已在 macOS 上测试
- [x] 已在 Linux 上测试
- [ ] 已测试原版 Minecraft
- [ ] 已测试 Fabric
- [ ] 已测试 Forge
- [ ] 已测试游戏启动
- [ ] 已测试登录流程
- [ ] 已测试 Java 检测/下载

### 测试步骤

1. 不设置 `CURSEFORGE_API_KEY`，不创建 .env 文件，直接执行 `cargo check` → 应编译通过（无报错）
2. 创建 .env 文件并写入 `CURSEFORGE_API_KEY=test_key`，执行 `cargo check` →
应编译通过，key 被嵌入二进制
3. 不含 key 的构建中触发 CurseForge modpack 导入 → 应返回友好错误提示而非 panic

## 检查清单

### 代码质量

- [x] 我的代码遵循项目的代码风格指南
- [x] 我已对自己的代码进行了自审
- [ ] 我已对难以理解的区域添加了注释
- [x] 我的更改没有产生新的警告或错误

### 测试验证

- [x] 我已在本地测试了我的更改
- [ ] 我已添加测试来证明我的修复有效或功能正常工作
- [x] 新的和现有的单元测试在本地通过
- [x] 我至少在一个目标平台上进行了测试

### 文档更新

- [ ] 我已相应地更新了文档
- [ ] 如有需要，我已更新 README
- [ ] 我已在必要处添加/更新代码注释

### 依赖项

- [x] 我已检查没有添加不必要的依赖项
- [x] 所有新依赖项都已正确记录
- [x] Cargo.lock 已更新

## 附加说明

`dotenvy` 仅作为 **build-dependency**，不会进入最终二进制。官方发布构建通过 CI 环境变量注入
key，普通开发者无需任何操作即可正常编译和运行。

Co-authored-by: 简律纯 &lt;i@jyunko.cn&gt;</content>
</entry>
<entry>
<title>chore: update .gitignore to include Vscode directory</title>
<updated>2026-03-09T12:54:14Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-03-09T12:54:14Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=de31e0e220ae63ee1c2897526c5502d22c6612cd'/>
<id>urn:sha1:de31e0e220ae63ee1c2897526c5502d22c6612cd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restructure docs into manual/development and add implementation docs (#94)</title>
<updated>2026-02-27T09:18:25Z</updated>
<author>
<name>Natsuu</name>
<email>natsukawa247@outlook.com</email>
</author>
<published>2026-02-27T09:18:25Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=81a62402ef6f8900ff092366121a9b7a4263ba52'/>
<id>urn:sha1:81a62402ef6f8900ff092366121a9b7a4263ba52</id>
<content type='text'>
## Summary by Sourcery

Restructure documentation into separate manual and development sections,
introduce detailed internal implementation docs for auth/Java/mod
loaders, and update site navigation, landing page links, and MDX tooling
(Mermaid, card styling) to match the new structure and tech stack.

Enhancements:
- Enable Mermaid rendering support in the docs app and add a reusable
Mermaid React component.
- Refine Docs page rendering by customizing Card styling and removing
redundant in-page titles/descriptions rendered by the layout.
- Align docs source configuration and routing comments with the new
manual-based default paths.

Documentation:
- Split user-facing docs under a new manual section and move contributor
content into a dedicated development section for both English and
Chinese.
- Add comprehensive internal implementation documentation covering
authentication, Java management, mod loader/version merging, event bus,
and architecture patterns in both English and Chinese.
- Update existing feature docs (mod loaders, Java, authentication) and
getting-started/troubleshooting pages to be more conceptual, pointing to
implementation docs for technical details.
- Refresh architecture docs to reflect the React/Zustand frontend stack
and add Mermaid-based architecture diagrams.
- Adjust navigation labels, home-page CTAs, and doc links to target the
new manual/development structure and routes.

---------

Co-authored-by: 简律纯 &lt;i@jyunko.cn&gt;</content>
</entry>
<entry>
<title>chore(ci): release to aur</title>
<updated>2026-02-24T18:04:39Z</updated>
<author>
<name>苏向夜</name>
<email>fu050409@163.com</email>
</author>
<published>2026-02-24T18:04:39Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=8ff3af6cb908fd824b512379dd21ed4f595ab6bb'/>
<id>urn:sha1:8ff3af6cb908fd824b512379dd21ed4f595ab6bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(git): ignore artifact files</title>
<updated>2026-01-19T03:15:50Z</updated>
<author>
<name>苏向夜</name>
<email>fu050409@163.com</email>
</author>
<published>2026-01-19T03:15:50Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=887e415314014c3da7db3048fa0e724f3078c5cb'/>
<id>urn:sha1:887e415314014c3da7db3048fa0e724f3078c5cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: apply prek auto-fixes [skip ci]</title>
<updated>2026-01-16T07:48:54Z</updated>
<author>
<name>HsiangNianian</name>
<email>44714368+HsiangNianian@users.noreply.github.com</email>
</author>
<published>2026-01-16T07:48:54Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=e78e4e4f54b60bfc98dcf80ad5f3387b28999287'/>
<id>urn:sha1:e78e4e4f54b60bfc98dcf80ad5f3387b28999287</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: update .gitignore to include additional files and directories</title>
<updated>2026-01-16T02:19:11Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-16T02:19:11Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=f83ed85b510f3ab18c51e9c161a4afb23482b9de'/>
<id>urn:sha1:f83ed85b510f3ab18c51e9c161a4afb23482b9de</id>
<content type='text'>
Added entries for Python version, Ruff cache, ESLint cache, Svelte build files, Node.js modules, and Python build artifacts to the .gitignore file to improve project cleanliness and prevent unnecessary files from being tracked.
</content>
</entry>
<entry>
<title>chore: Remove default capability configuration files from the Tauri project</title>
<updated>2026-01-14T02:40:54Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-14T02:40:54Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=6d8c2ae0f21a3fe74b8f359b668b6a5cd1b06bae'/>
<id>urn:sha1:6d8c2ae0f21a3fe74b8f359b668b6a5cd1b06bae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: 更新 .gitignore 文件以包含 Cargo.lock</title>
<updated>2025-01-16T14:28:03Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2025-01-16T14:28:03Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=e6342cd4435983d426b3b1b88d5a9aa89ff175b8'/>
<id>urn:sha1:e6342cd4435983d426b3b1b88d5a9aa89ff175b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>first commit</title>
<updated>2025-01-15T17:26:49Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2025-01-15T17:26:49Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=ee71943e7433059d9326867d5dd62385ab76ab58'/>
<id>urn:sha1:ee71943e7433059d9326867d5dd62385ab76ab58</id>
<content type='text'>
</content>
</entry>
</feed>
