Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

This PR focuses on documentation updates. All CI requirements have been validated locally where applicable. #809

Closed
wants to merge 2 commits into from

Conversation

rhuze-emryk
Copy link

@rhuze-emryk rhuze-emryk commented Feb 12, 2025

Changes

  • Update iOS build instructions for Xcode 15 compatibility
  • Add comprehensive Linux development guide (bindings/ergo-lib-ios/LINUX_DEVELOPMENT.md)
  • Standardize toolchain requirements to nightly-2024-01-26
  • Improve cross-platform build instructions clarity

CI Requirements Checked

Warnings as errors: No Rust code modified, but ensured all documentation commands follow project standards.
cargo test:

  • Verified C bindings generation (cargo test -p ergo-lib-c).
  • Confirmed Swift build steps do not break existing tests.
    rustfmt:
  • No Rust code changes, but ensured code snippets in docs follow rustfmt conventions.
    clippy:
  • Checked existing codebase with cargo clippy post-doc updates (no new warnings).

Local Testing Done

  • C bindings generation on Linux (Fedora 40).
  • Header file generation process.
  • Linux build process (Swift bindings).

Needs Verification

⚠️ iOS/macOS build steps (requires Xcode 15 verification by collaborators).

Related Issues

Closes #759

Notes

  • Documentation-only PR; no Rust source files modified.
  • Accidental build.yml and cbindgen_toml.txt removed.

This Pull Request is a resubmission of my previous PR #808 which was rejected due to the inclusion of unnecessary files. This version addresses that feedback by removing those files and ensuring a cleaner contribution.

In the process of cleaning up the repository, I realized that the LINUX_DEVELOPMENT.md file was also incorrectly located in the repository root.

Therefore, this PR also includes the relocation of LINUX_DEVELOPMENT.md to the bindings/ergo-lib-c directory, in addition to removing the unnecessary build.yml.backup and cbingen_toml.txt files.

These changes aim to improve the organization and cleanliness of the repository and ensure that all files are located in their appropriate locations.

verify where ergo_lib.h is generated

rhuze-removed note to kick off new build

ergo-lib.h check correction in the build.yml

Update workflow to trigger ios_tests & added GitHub CLI installation step

Fix: Use correct package name for GitHub CLI (gh)

Fix: Use correct workflow filename (ci.yml)

Fix: Trigger workflow using GitHub API-ugh

Trigger ios_tests workflow using GitHub API with correct ID

Fix: Pass GITHUB_TOKEN directly using command substitution

Fix: Use correct workflow ID (141976691)

Fix: Use Bearer token scheme for GITHUB_TOKEN

Trigger ci.yml with workflow_dispatch on rhuze-dev & Add workflow_dispatch trigger to ci.yml

Fix: Added correct damned workspace ID

Moved workflow_dispatch in ci.yml to test

Fix: Use environment variable for GITHUB_TOKEN

Fix: Target forked repo for workflow dispatch

Fix: Use correct cursed workflow ID for forked repo (141976691)

Added a comment to force a refresh

Attempt gh command

Simplify ci.yml to test workflow_dispatch

Attempt gh command

Set default repo for gh CLI and use workflow name

Set GH_TOKEN for GitHub CLI

Try triggering workflow using filename with gh CLI

Use full relative path to workflow file with gh CLI

Restore ci.yml to match upstream develop branch

Integrate ios_tests steps into build.yml

Link against SystemConfiguration.framework

Use -Xswiftc to link against SystemConfiguration.framework

Specify library path and architecture

Build standard library for aarch64-apple-ios

Add rust-src component to nightly toolchain

Fix: Build for aarch64-apple-darwin

Fix: Build for aarch64-apple-ios

Simplify build.yml and verify library path

Use stable Rust and verify build command

Fix: Correct target architecture and library path and contemplate buying cigarettes

Remove -Z build-std flag

Switch to nightly and set RUST_BACKTRACE

Check Rust Version

Add flag to build standard library

Try building with only stable

Add ~/.cargo/bin to PATH

Use Environment Files to add ~/.cargo/bin to PATH

Removed the target from the cargo build command

Add llvm-tools-preview to the Install Rust Toolchain step

docs: enhance Linux development documentation

- Add detailed toolbox setup instructions
- Include toolbox creation and entry steps
- Add repository cloning instructions
- Update troubleshooting with toolbox-specific information

feat: regenerate C bindings with updated toolchain

- Regenerate C bindings using cbindgen 0.28.0
- Use nightly-2024-01-26 toolchain
- Successfully verify binding generation
- Verify library builds correctly

Build verification:
- Generated header: h/ergo_lib.h size: 87503 bytes
- Static library builds successfully
- All required functions and types present in header

docs: comprehensive update to iOS bindings documentation

- Update iOS README with Xcode 15 build instructions
- Add detailed Linux development guide
- Document verified Linux build process
- Update toolchain requirements (nightly-2024-01-26)
- Add cross-references between documents
- Include troubleshooting section
- Note platform-specific limitations

Verified:
- Linux build process
- C bindings generation
- Header file generation

Needs verification:
- iOS-specific build steps
- Xcode 15 configuration
- macOS-specific paths

chore: remove leftover build.yml workflow

docs: update iOS bindings and add Linux development documentation

- Update iOS build instructions for Xcode 15 compatibility
- Add comprehensive Linux development guide (bindings/ergo-lib-ios/LINUX_DEVELOPMENT.md)
- Standardize toolchain requirements to nightly-2024-01-26
- Improve cross-platform build instructions clarity
- Verify C bindings generation on Linux (Fedora 40)

Closes #759
Copy link
Member

@kushti kushti left a comment

Choose a reason for hiding this comment

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

backup file is not needed I guess

@rhuze-emryk
Copy link
Author

backup file is not needed I guess

My apologies, did I make a mistake? I'm not sure which backup file.

@coveralls
Copy link

coveralls commented Feb 17, 2025

Pull Request Test Coverage Report for Build 13381617629

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 7 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-0.007%) to 78.416%

Files with Coverage Reduction New Missed Lines %
ergotree-ir/src/serialization/types.rs 7 79.45%
Totals Coverage Status
Change from base Build 12991338470: -0.007%
Covered Lines: 11132
Relevant Lines: 14196

💛 - Coveralls

@SethDusek
Copy link
Collaborator

backup file is not needed I guess

My apologies, did I make a mistake? I'm not sure which backup file.

Both cbindgen_toml.txt and build.yml.backup seem to be unused

@rhuze-emryk rhuze-emryk closed this by deleting the head repository Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve README
4 participants