sagiegurari / cargo-make

Rust task runner and build tool.
https://sagiegurari.github.io/cargo-make/
Apache License 2.0
2.6k stars 127 forks source link

Debian Packaging #341

Open mmstick opened 4 years ago

mmstick commented 4 years ago

Would you be interested in having debian packaging in the repository?

Currently maintaining this in a fork for Pop!_OS.

sagiegurari commented 4 years ago

would love to have it. so i can install it via apt-get? and how is it getting updated in case of a new cargo-make release? (I got zero knowledge on how to publish to linux package manager repository)

mmstick commented 4 years ago

You can on Pop!_OS, at least, since that's where it's now being packaged. It would allow anyone to build debian packages from the source repo, too. ie: dpkg-buildpackage -b

Any repository in the Pop!_OS GitHub repository that contains a debian directory is automatically packaged by our CI.

sagiegurari commented 4 years ago

cool. maybe you can document it in the installation section?

John15321 commented 2 years ago

@mmstick @sagiegurari Could we use cargo-deb for that? https://crates.io/crates/cargo-deb "This is a Cargo helper command which automatically creates binary Debian packages (.deb) from Cargo projects."

sagiegurari commented 2 years ago

ya probably but I'm not familiar with the entire publishing process to debian. need to learn a bit on it.

but a good start would be to create a deb file and have it part of the binary release artifacts

John15321 commented 2 years ago

ya probably but I'm not familiar with the entire publishing process to debian. need to learn a bit on it.

but a good start would be to create a deb file and have it part of the binary release artifacts

I would really like to contribute to your package because I really like it so If you would like I can take of it 😄

sagiegurari commented 2 years ago

that would be great. if you could create a task in the makefile to create the deb and have it run in the release build and upload it would be awesome

John15321 commented 2 years ago

that would be great. if you could create a task in the makefile to create the deb and have it run in the release build and upload it would be awesome

Sure 😄 I will start tomorrow and ask you if I don't know something

John15321 commented 2 years ago

@sagiegurari

Hey Im trying to build it locally (on an ubuntu vm, its on arm)

And Im getting this compilation error (I set my rustc version to 1.56.0):

[cargo-make] INFO - cargo make 0.35.13
[cargo-make] INFO - Project: cargo-make
[cargo-make] INFO - Build File: Makefile.toml
[cargo-make] INFO - Task: ci-flow
[cargo-make] INFO - Profile: development
[cargo-make] INFO - Running Task: legacy-migration
[cargo-make] INFO - Running Task: print-cargo-make-env
************************************* 
Cargo Make: 
    Task: ci-flow 
    Task Arguments:  
    Command: cargo make 
    Working Directory: /home/john/Documents/cargo-make 
    Profile: development 
    Additional Profiles: all-default-tasks;multi-phase-tests;ci-coverage-tasks;ci-static-code-analysis-tasks;ci-all-build-tasks;publish-pre-cleanup 
************************************* 
[cargo-make] INFO - Running Task: print-project-env
************************************* 
Project: 
    Name: cargo-make 
    Version: 0.35.12 
    Version Member:  
************************************* 
[cargo-make] INFO - Running Task: print-ci-env
************************************* 
CI: 
    CI: false 
    PR: false 
    Branch Name:  
    CI Vendor:  
************************************* 
[cargo-make] INFO - Running Task: print-git-env
************************************* 
Git: 
    Branch: 341-debian-packaging 
    User:  
    Email:  
    Commit Hash: 084eae90502e3ae42dab65a3276112ef3fcc674e 
    Commit Hash Prefix: 084eae90 
************************************* 
[cargo-make] INFO - Running Task: print-rust-env
************************************* 
Rust: 
    Version: 1.56.0 
    Channel: stable 
    Target Arch: aarch64 
    Target Env: gnu 
    Target OS: linux 
    Pointer Width: 64 
    Target Vendor: unknown 
    Target Triple: aarch64-unknown-linux-gnu 
************************************* 
[cargo-make] INFO - Running Task: print-cargo-env
************************************* 
Cargo: 
    Home: /home/john/.cargo 
    Profile: dev 
************************************* 
[cargo-make] INFO - Running Task: print-crate-env
************************************* 
Crate: 
    Name: cargo-make 
    Version: 0.35.12 
    Description: Rust task runner and build tool. 
    License: Apache-2.0 
    Documentation: https://sagiegurari.github.io/cargo-make 
    Homepage: https://sagiegurari.github.io/cargo-make 
    Repository: https://github.com/sagiegurari/cargo-make.git 
    Workspace: false 
    Workspace Working Directory: /home/john/Documents/cargo-make 
    Workspace Members:  
    Has Dependencies: true 
************************************* 
[cargo-make] INFO - Running Task: print-duckscript-env
************************************* 
Duckscript: 
    Runtime: 0.7.2 
    SDK: 0.8.12 
************************************* 
[cargo-make] INFO - Running Task: post-print-env
************************************* 
Extended Info: 
    Unstable Environment Key: linux-stable-false 
    Unstable Test Environment: false 
    Unstable Format Environment: false 
************************************* 
[cargo-make] INFO - Execute Command: "cargo" "fmt" "--" "--check"
[cargo-make] INFO - Execute Command: "cargo" "build" "--all-features"
   Compiling libc v0.2.126
   Compiling proc-macro2 v1.0.39
   Compiling cfg-if v1.0.0
   Compiling unicode-ident v1.0.0
   Compiling syn v1.0.96
   Compiling autocfg v1.1.0
   Compiling serde_derive v1.0.137
   Compiling serde v1.0.137
   Compiling cc v1.0.73
   Compiling memchr v2.5.0
   Compiling once_cell v1.12.0
   Compiling typenum v1.15.0
   Compiling ppv-lite86 v0.2.16
   Compiling winapi-build v0.1.1
   Compiling version_check v0.9.4
   Compiling log v0.4.17
   Compiling encoding_index_tests v0.1.4
   Compiling untrusted v0.7.1
   Compiling spin v0.5.2
   Compiling semver v1.0.10
   Compiling winapi v0.2.8
   Compiling tinyvec_macros v0.1.0
   Compiling fnv v1.0.7
   Compiling regex-syntax v0.6.26
   Compiling crc32fast v1.3.2
   Compiling matches v0.1.9
   Compiling itoa v1.0.2
   Compiling lazy_static v1.4.0
   Compiling crossbeam-utils v0.8.8
   Compiling hashbrown v0.11.2
   Compiling unicode-bidi v0.3.8
   Compiling adler v1.0.2
   Compiling percent-encoding v2.1.0
   Compiling rustls v0.20.6
   Compiling serde_json v1.0.81
   Compiling utf8-ranges v0.1.3
   Compiling camino v1.0.9
   Compiling bytes v1.1.0
   Compiling ryu v1.0.10
   Compiling same-file v1.0.6
   Compiling regex-syntax v0.3.9
   Compiling os_str_bytes v6.1.0
   Compiling wildmatch v2.1.0
   Compiling nom v1.2.4
   Compiling either v1.6.1
   Compiling lazy_static v0.1.16
   Compiling home v0.5.3
   Compiling textwrap v0.15.0
   Compiling termcolor v1.1.3
   Compiling strsim v0.10.0
   Compiling heck v0.4.0
   Compiling base64 v0.13.0
   Compiling bitflags v1.3.2
   Compiling whoami v1.2.1
   Compiling glob v0.3.0
   Compiling fs_extra v1.2.0
   Compiling git_info v0.1.2
   Compiling rust_info v0.3.2
   Compiling num-traits v0.2.15
   Compiling num-integer v0.1.45
   Compiling num-iter v0.1.43
   Compiling indexmap v1.8.2
   Compiling thread_local v1.1.4
   Compiling encoding-index-korean v1.20141219.5
   Compiling encoding-index-singlebyte v1.20141219.5
   Compiling encoding-index-japanese v1.20141219.5
   Compiling encoding-index-simpchinese v1.20141219.5
   Compiling encoding-index-tradchinese v1.20141219.5
   Compiling kernel32-sys v0.2.2
   Compiling tinyvec v1.6.0
   Compiling generic-array v0.14.5
   Compiling miniz_oxide v0.5.3
   Compiling form_urlencoded v1.0.1
   Compiling ring v0.16.20
   Compiling walkdir v2.3.2
   Compiling http v0.2.8
   Compiling clap_lex v0.2.2
   Compiling meval v0.2.0
   Compiling encoding v0.2.33
   Compiling unicode-normalization v0.1.19
   Compiling aho-corasick v0.7.18
   Compiling bstr v0.2.17
   Compiling quote v1.0.18
   Compiling getrandom v0.2.6
   Compiling memchr v0.1.11
   Compiling time v0.1.43
   Compiling atty v0.2.14
   Compiling cpufeatures v0.2.2
   Compiling which v4.2.5
   Compiling num_cpus v1.13.1
   Compiling dirs-sys-next v0.1.2
   Compiling uname v0.1.1
   Compiling fern v0.6.1
   Compiling flate2 v1.0.24
   Compiling rand_core v0.6.3
   Compiling aho-corasick v0.5.3
   Compiling regex v1.5.6
   Compiling colored v2.0.0
   Compiling dirs-next v2.0.0
   Compiling idna v0.2.3
   Compiling thread-id v2.0.0
   Compiling rand_chacha v0.3.1
   Compiling crypto-common v0.1.3
   Compiling block-buffer v0.10.2
   Compiling thread_local v0.2.7
   Compiling digest v0.10.3
   Compiling rand v0.8.5
   Compiling url v2.2.2
   Compiling regex v0.1.80
   Compiling globset v0.4.9
   Compiling java-properties v1.4.1
   Compiling shell2batch v0.4.4
   Compiling sha2 v0.10.2
   Compiling webpki v0.22.0
   Compiling sct v0.7.0
   Compiling fsio v0.3.1
   Compiling ignore v0.4.18
   Compiling num v0.1.42
   Compiling webpki-roots v0.22.3
   Compiling duckscript v0.7.2
   Compiling run_script v0.9.0
   Compiling chrono v0.2.25
   Compiling ftp v3.0.1
   Compiling attohttpc v0.19.1
   Compiling cargo-platform v0.1.2
   Compiling serde_ignored v0.1.3
   Compiling toml v0.5.9
   Compiling lenient_semver_version_builder v0.4.2
   Compiling envmnt v0.10.0
   Compiling clap v3.2.1
   Compiling lenient_semver_parser v0.4.2
   Compiling ci_info v0.14.5
   Compiling lenient_semver v0.4.2
   Compiling cargo_metadata v0.14.2
   Compiling duckscriptsdk v0.8.12
   Compiling cargo-make v0.35.12 (/home/john/Documents/cargo-make)
warning: unknown lint: `deprecated_cfg_attr_crate_type_name`
  --> src/lib/mod.rs:21:5
   |
21 |     deprecated_cfg_attr_crate_type_name,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unknown_lints)]` on by default

warning: unknown lint: `deref_into_dyn_supertrait`
  --> src/lib/mod.rs:23:5
   |
23 |     deref_into_dyn_supertrait,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unknown lint: `duplicate_macro_attributes`
  --> src/lib/mod.rs:26:5
   |
26 |     duplicate_macro_attributes,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unknown lint: `enum_intrinsics_non_enums`
  --> src/lib/mod.rs:29:5
   |
29 |     enum_intrinsics_non_enums,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unknown lint: `text_direction_codepoint_in_comment`
  --> src/lib/mod.rs:91:5
   |
91 |     text_direction_codepoint_in_comment,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unknown lint: `text_direction_codepoint_in_literal`
  --> src/lib/mod.rs:92:5
   |
92 |     text_direction_codepoint_in_literal,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::values_of_lossy`: Replaced with `ArgMatches::get_many()`
   --> src/lib/cli.rs:196:32
    |
196 |     cli_args.env = cmd_matches.values_of_lossy("env");
    |                                ^^^^^^^^^^^^^^^
    |
note: the lint level is defined here
   --> src/lib/mod.rs:20:5
    |
20  |     deprecated,
    |     ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::occurrences_of`: Replaced with either `ArgAction::Count` or `ArgMatches::get_many(...).len()`
   --> src/lib/cli.rs:198:42
    |
198 |     cli_args.build_file = if cmd_matches.occurrences_of("makefile") == 0 {
    |                                          ^^^^^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:202:14
    |
202 |             .value_of("makefile")
    |              ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:208:38
    |
208 |     cli_args.cwd = match cmd_matches.value_of("cwd") {
    |                                      ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:217:41
    |
217 |     cli_args.log_level = if cmd_matches.is_present("v") {
    |                                         ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:221:14
    |
221 |             .value_of("loglevel")
    |              ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:230:42
    |
230 |     cli_args.disable_color = cmd_matches.is_present("no-color")
    |                                          ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:235:21
    |
235 |         cmd_matches.is_present("time-summary") || envmnt::is("CARGO_MAKE_PRINT_TIME_SUMMARY");
    |                     ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:237:43
    |
237 |     cli_args.env_file = match cmd_matches.value_of("envfile") {
    |                                           ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:243:10
    |
243 |         .value_of("output-format")
    |          ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:247:54
    |
247 |     cli_args.list_category_steps = match cmd_matches.value_of("list-category-steps") {
    |                                                      ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:252:46
    |
252 |     cli_args.output_file = match cmd_matches.value_of("output_file") {
    |                                              ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:258:10
    |
258 |         .value_of("profile".to_string())
    |          ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:262:54
    |
262 |     cli_args.disable_check_for_updates = cmd_matches.is_present("disable-check-for-updates");
    |                                                      ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:263:41
    |
263 |     cli_args.experimental = cmd_matches.is_present("experimental");
    |                                         ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:264:39
    |
264 |     cli_args.print_only = cmd_matches.is_present("print-steps");
    |                                       ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:265:46
    |
265 |     cli_args.disable_workspace = cmd_matches.is_present("no-workspace");
    |                                              ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:266:45
    |
266 |     cli_args.disable_on_error = cmd_matches.is_present("no-on-error");
    |                                             ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:267:42
    |
267 |     cli_args.allow_private = cmd_matches.is_present("allow-private");
    |                                          ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:268:48
    |
268 |     cli_args.skip_init_end_tasks = cmd_matches.is_present("skip-init-end-tasks");
    |                                                ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:269:43
    |
269 |     cli_args.list_all_steps = cmd_matches.is_present("list-steps");
    |                                           ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::is_present`: Replaced with either `ArgAction::SetTrue` or `ArgMatches::contains_id(...)`
   --> src/lib/cli.rs:270:48
    |
270 |     cli_args.diff_execution_plan = cmd_matches.is_present("diff-steps");
    |                                                ^^^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:272:53
    |
272 |     cli_args.skip_tasks_pattern = match cmd_matches.value_of("skip-tasks-pattern") {
    |                                                     ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::value_of`: Replaced with `ArgMatches::get_one()`
   --> src/lib/cli.rs:281:28
    |
281 |     let task = cmd_matches.value_of("task").unwrap_or(default_task_name);
    |                            ^^^^^^^^

error: use of deprecated associated function `clap::ArgMatches::values_of`: Replaced with `ArgMatches::get_many()`
   --> src/lib/cli.rs:283:10
    |
283 |         .values_of("TASK_CMD")
    |          ^^^^^^^^^

error: use of deprecated associated function `clap::Arg::<'help>::multiple_occurrences`: Replaced with `Arg::action` (Issue #3772)
   --> src/lib/cli.rs:399:18
    |
399 |                 .multiple_occurrences(true)
    |                  ^^^^^^^^^^^^^^^^^^^^

error: use of deprecated associated function `clap::Arg::<'help>::allow_invalid_utf8`: Replaced with `Arg::value_parser(...)` with either `ValueParser::os_string()` or `ValueParser::path_buf()`
   --> src/lib/cli.rs:402:18
    |
402 |                 .allow_invalid_utf8(true)
    |                  ^^^^^^^^^^^^^^^^^^

error: use of deprecated associated function `clap::Arg::<'help>::possible_values`: Replaced with `Arg::value_parser(PossibleValuesParser::new(...)).takes_value(true)`
   --> src/lib/cli.rs:410:18
    |
410 |                 .possible_values(&["verbose", "info", "error"])
    |                  ^^^^^^^^^^^^^^^

error: use of deprecated associated function `clap::Arg::<'help>::possible_values`: Replaced with `Arg::value_parser(PossibleValuesParser::new(...)).takes_value(true)`
   --> src/lib/cli.rs:444:18
    |
444 | ...   .possible_values(&["default", "short-description", "markdown", "markdown-single-page", "markdown-sub-section", "autocomplete"])
    |        ^^^^^^^^^^^^^^^

error: use of deprecated associated function `clap::Arg::<'help>::multiple_occurrences`: Replaced with `Arg::action` (Issue #3772)
   --> src/lib/cli.rs:475:18
    |
475 |                 .multiple_occurrences(true)
    |                  ^^^^^^^^^^^^^^^^^^^^

warning: `cargo-make` (lib) generated 6 warnings
error: could not compile `cargo-make` due to 30 previous errors; 6 warnings emitted
[cargo-make] ERROR - Error while executing command, exit code: 101
[cargo-make] WARN - Build Failed.
John15321 commented 2 years ago

Do you guys have any build instructions? I cannot find any

sagiegurari commented 2 years ago

are you on master? make sure to upgrade your rustc as well.

github actions defined for this repo serve as best build instructions. you can see os, rust version, ...

sagiegurari commented 2 years ago

by the way I do:

cargo run --bin cargo-make -- make

(which is also the same in the github actions) as the command to build and test

sagiegurari commented 2 years ago

@John15321 ignore what i said. seems that clap broke something and are not backward compatible. they released 3.2 14 hours ago and its not compatible with 3.1 although minor version should be backward compatible.

EDIT

seems they are backward compatible but marked many functions as deprecated and i have a lint rule against that. i'll resolve that later today. I need to find a more stable alternative to clap. its been like that multiple times and painful each time.

John15321 commented 2 years ago

@John15321 ignore what i said. seems that clap broke something and are not backward compatible. they released 3.2 14 hours ago and its not compatible with 3.1 although minor version should be backward compatible.

EDIT

seems they are backward compatible but marked many functions as deprecated and i have a lint rule against that. i'll resolve that later today. I need to find a more stable alternative to clap. its been like that multiple times and painful each time.

@sagiegurari Checkout structopt https://crates.io/crates/structopt It's fully stable aka now it's only reciving bug fixes and i would say it's all that most programs would need It's actually what clap is based on

John15321 commented 2 years ago

@John15321 ignore what i said. seems that clap broke something and are not backward compatible. they released 3.2 14 hours ago and its not compatible with 3.1 although minor version should be backward compatible.

EDIT

seems they are backward compatible but marked many functions as deprecated and i have a lint rule against that. i'll resolve that later today. I need to find a more stable alternative to clap. its been like that multiple times and painful each time.

Yeah i noticed that clap isn't the best in the way it is maintained. For example because structopt was merged into it, it has quite a few of it's features but they are not documented at all. I managed to use those features thru trial and error and when confronted as to why not document them as they are very useful and basic (like changing the name of the parameter etc). They said that's it's fine that they are only in the unit tests or whatever, i can even link you the issue later

John15321 commented 2 years ago

@sagiegurari Also, I would suggest adding some sort of a nightly build for your project in the CI. Its made to catch things like this

sagiegurari commented 2 years ago

nightly build exists. you mean recurring build every day/week not due to code change?

John15321 commented 2 years ago

nightly build exists. you mean recurring build every day/week not due to code change?

Oh right, i forgot that it could also mean building it with the nightly edition of the rust compiler. But yes I mean running a build every day/night. Generally speaking the more CI jobs like this you have the easier it is to catch some regression as your frequency of measurement increases scientifically speaking

sagiegurari commented 2 years ago

thats a good idea. by the way, to unblock yourself until i fix the clap issue, you can remove the deprecated lint enforcement i have

John15321 commented 2 years ago

thats a good idea. by the way, to unblock yourself until i fix the clap issue, you can remove the deprecated lint enforcement i have

For now i just changed the package to bee 3.1.18, we can change that later in the PR

sagiegurari commented 2 years ago

@John15321 please work on top of branch 0.35.14 where i pushed fixes for clap

John15321 commented 2 years ago

@sagiegurari Im having a problem with cross-compilation due to that ring library.

image

That appears not on any cross-compilation. So given that we can have an amd64 ubuntu runner that's cool and we can have a deb package for amd64, but given that GitHub does not support arm runners for some reason we would either have to spin up a docker image inside our runner or just not have arm deb package. Also, what is your preferred way of delivering that .deb package? As part of the release? Sorry its been a while since I have done anything in GitHub Actions.

Also when it comes to the compilation of the ring lib its because of something called musl. I am failair with that but from what I understand its some alternative to glibc or something like that. https://github.com/emk/rust-musl-builder https://stackoverflow.com/questions/68149955/rust-sorry-unimplemented-64-bit-mode-not-compiled-in/70628855#70628855

John15321 commented 2 years ago

What do you think?

John15321 commented 2 years ago

Also I think that after I manage to get this one running properly I could take a look at making packages for other distros like arch, fedora etc. I have been in the Linux world for a long time and I would love to do that

sagiegurari commented 2 years ago

i prefer the deb to be uploaded to the release like other binaries. if we can't manage arm, lets skip it. i mean, the more options we can give the better but its not all or nothing. i work on arm by the way (rasp pi) so i am aware of the issues.

John15321 commented 2 years ago

i prefer the deb to be uploaded to the release like other binaries. if we can't manage arm, lets skip it. i mean, the more options we can give the better but its not all or nothing. i work on arm by the way (rasp pi) so i am aware of the issues.

Sure, makes sense. So I will do it for amd64 releases so that it goes to the release section. Also, I would recommend we make an issue about not being able to cross-compile because of musl. Just so that we have it in the backlog so the problem itself is somehow remembered/stored

John15321 commented 2 years ago

@sagiegurari I opened this PR with my changes. Please take a look at them. It's been a while since I have been playing with GitHub Actions and I want to be sure that my change to the CI doesn't affect other release artifacts being appended to the release itself.

https://github.com/sagiegurari/cargo-make/pull/665

Here is an example of the output of this workflow on my fork: https://github.com/John15321/cargo-make/releases/tag/v100.0.4

Additionally Im not sure to which branch Im supposed to be merging, master or 0.35.14 (I branched out of 0.35.14)?