Replies: 9 comments 4 replies
-
|
Thank you for providing the link and discussion content. Based on your suggestion, our goal is to split the issues for processing, but we do not recommend introducing other additional languages like Python to handle them, as this may increase the complexity of the project and lead to more unpredictable problems. We aim to maintain the simplicity and maintainability of the project, ensuring that all functionalities can run stably within the Rust language environment. Therefore, we will continue to explore the possibility of solving these issues within the Rust language itself. Thank you again for your valuable opinions and contributions! We look forward to the active participation and feedback from community members. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you @houseme There is no other languages involved , its pure Make syntax and including small files from Provided link is just an example for how its gonna be like after doing this suggestion. -include $(addsuffix /*.mak, $(shell find .config/make -type d))See Makefile |
Beta Was this translation helpful? Give feedback.
-
|
Hey @cod3mas0n , Thanks for the clarification. We can accept this proposal as long as it does not introduce any Python or other language features. Modularizing the Makefile using pure Make syntax sounds like a great way to improve maintainability. Please feel free to submit a PR. Looking forward to it! |
Beta Was this translation helpful? Give feedback.
-
|
Dears @houseme @loverustfs @overtrue @majinghe The PR #1288 is ready now. Any recommendations? |
Beta Was this translation helpful? Give feedback.
-
screenshots
|
Beta Was this translation helpful? Give feedback.
-
Results in Terminal
How to use me:
# To get help for each target
make help
# To run and execute a target
make <target>
💡 For more help use 'make help', 'make help-build' or 'make help-docker'
🦀 RustFS Makefile Help:
📋 Main Command Categories:
make help-build # Show build-related help
make help-docker # Show Docker-related help
🔧 Code Quality:
make fmt # Format code
make clippy # Run clippy checks
make test # Run tests
make pre-commit # Run all pre-commit checks
🚀 Quick Start:
make build # Build RustFS binary
make docker-dev-local # Build development Docker image (local)
make dev-env-start # Start development environment
## —— Development/Source builds using direct buildx commands ---------------------------------------
docker-dev Build dev multi-arch image (cannot load locally)
docker-dev-local Build dev single-arch image (local load)
docker-dev-push Build and push multi-arch development image e.g (make docker-dev-push REGISTRY=xxx)
dev-env-start Start development container environment
dev-env-stop Stop development container environment
dev-env-restart Restart development container environment
## —— Production builds using docker buildx (for CI/CD and production) -----------------------------
docker-buildx Build production multi-arch image (no push)
docker-buildx-push Build and push production multi-arch image
docker-buildx-version Build and version production multi-arch image e.g (make docker-buildx-version VERSION=v1.0.0)
docker-buildx-push-version Build and version and push production multi-arch image e.g (make docker-buildx-push-version VERSION=v1.0.0)
docker-buildx-production-local Build production single-arch image locally
## —— Docker-based build (alternative approach) ----------------------------------------------------
build-docker Build using Docker container e.g (make build-docker BUILD_OS=ubuntu22.04)
docker-inspect-multiarch Check image architecture support
## —— Single Architecture Docker Builds (Traditional) ----------------------------------------------
docker-build-production Build single-arch production image
docker-build-source Build single-arch source image
## —— Local Native Build using build-rustfs.sh script (Recommended) --------------------------------
build Build RustFS binary (includes console by default)
build-dev Build RustFS in Development mode
build-musl Build x86_64 musl version
build-gnu Build x86_64 GNU version
build-musl-arm64 Build aarch64 musl version
build-gnu-arm64 Build aarch64 GNU version
build-cross-all Build binaries for all architectures
build-all-architectures Build All architectures
## —— Check and Inform Dependencies ----------------------------------------------------------------
core-deps Check core cependencies
fmt-deps Check lint and formatting dependencies
test-deps Check tests dependencies
deploy-dev Deploy to dev server
## —— Help, Help Build and Help Docker -------------------------------------------------------------
help Shows This Help Menu
help-build Shows RustFS build help
help-docker Shows docker environment and suggestion help
## —— Code quality and Formatting ------------------------------------------------------------------
fmt Format code
fmt-check Check code formatting
clippy-check Run clippy checks
compilation-check Run compilation check
## —— Pre Commit Checks ----------------------------------------------------------------------------
setup-hooks Set up git hooks
pre-commit Run pre-commit checks
## —— Tests and e2e test ---------------------------------------------------------------------------
test Run all tests
e2e-server Run e2e-server tests
probe-e2e Probe e2e tests
💡 build-rustfs.sh script provides more options, smart detection and binary verification
🔧 Direct usage of build-rustfs.sh script:
./build-rustfs.sh --help # View script help
./build-rustfs.sh --no-console # Build without console resources
./build-rustfs.sh --force-console-update # Force update console resources
./build-rustfs.sh --dev # Development mode build
./build-rustfs.sh --sign # Sign binary files
./build-rustfs.sh --platform x86_64-unknown-linux-gnu # Specify target platform
./build-rustfs.sh --skip-verification # Skip binary verification
💡 build-rustfs.sh script provides more options, smart detection and binary verification
🔧 Direct usage of build-rustfs.sh script:
./build-rustfs.sh --help # View script help
./build-rustfs.sh --no-console # Build without console resources
./build-rustfs.sh --force-console-update # Force update console resources
./build-rustfs.sh --dev # Development mode build
./build-rustfs.sh --sign # Sign binary files
./build-rustfs.sh --platform x86_64-unknown-linux-gnu # Specify target platform
./build-rustfs.sh --skip-verification # Skip binary verification |
Beta Was this translation helpful? Give feedback.
-
|
and if you can help me to bypass this false error in CI? https://github.com/rustfs/rustfs/actions/runs/20552888226/job/59033040366?pr=1288 https://github.com/rustfs/rustfs/actions/runs/20552888226/job/59033040366?pr=1288#step:5:53 |
Beta Was this translation helpful? Give feedback.
-
|
All is done, and the Related PR #1288 has been merged. I'm closing this discussion. |
Beta Was this translation helpful? Give feedback.
-
|
Ok, thank you very much. |
Beta Was this translation helpful? Give feedback.





Uh oh!
There was an error while loading. Please reload this page.
-
Hi Dears @houseme @loverustfs @majinghe
I’d like to propose something small but high-impact: splitting current big Makefile into several smaller, focused
.mkfiles.Why?
Makefile is already growing, and every new feature/target/debug trick will make it harder to:
What we get if we do this (simple version):
Makefile(~50–100 lines) that just says what to do and includes the real logicvars.mk→ all paths/flags/versionsbuild.mk→ cargo build + release artifactstest.mk→ unit/integration/fuzz targetsci.mk→ lint/format/checks used in CIclean.mk/help.mk/ platform-specific stuffI would like to work on, What do you think? Yay / maybe later?
See setup-fedora
Beta Was this translation helpful? Give feedback.
All reactions