tailcallhq / tailcall

High Performance GraphQL Runtime
https://tailcall.run
Apache License 2.0
1.28k stars 244 forks source link

not yet implemented: Enum #1407

Closed hazyone closed 6 months ago

hazyone commented 6 months ago

Prerequisites

Describe the bug

A clear and concise description of what the bug is.

Steps to reproduce

  1. Build complex proto with enum
  2. Build tailcall config
  3. Start tailcall

Expected behavior

Service started

Actual behavior

thread 'tokio-runtime-worker' panicked at src/json/json_schema.rs:190:17:
not yet implemented: Enum

Environment information:

I've tried to use release version to check how tailcall works, but I've got this error. I'm not really sure what kind of enum (definition or body) tailcall doesn't like.

tusharmath commented 6 months ago

@hazyone can you provide the configuration that you tried using?

hazyone commented 6 months ago

Yes. Here it is. Unfortunately, I can't provide proto files.

schema
  @server(port: 8000, graphiql: true)
  @upstream(baseURL: "https://service.net", httpCache: true, batch: {delay: 10})
  @link(src: "./proto/service.proto", type: Protobuf) {
  query: Query
}

type Query {
  list(db: String): JSON @grpc(
  headers: [
        {key: "X-CUSTOM-HEADER", value: "custom-value"}
      ]
  method: "package.Service.Method.List" 
  body: "{  \"targets\": [{ \"type\": 0, \"value\": \"site.com\"}], \"database\": \"{{args.db}}\",  ... }")
}

And also, backtrace:

stack backtrace:
   0:        0x102fc4934 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h298c9ab285ff3934
   1:        0x102a6a634 - core::fmt::write::h4e276abdb6d0c2a1
   2:        0x102fbfafc - std::io::Write::write_fmt::hd421848f5f0bf9d0
   3:        0x102fc4734 - std::sys_common::backtrace::print::hd8bd9ecab1f94b94
   4:        0x102fc5ac0 - std::panicking::default_hook::{{closure}}::h520eeb743fc98fb4
   5:        0x102fc57bc - std::panicking::default_hook::ha6550ffe49b63df1
   6:        0x102fc60a4 - std::panicking::rust_panic_with_hook::hddb0e884a202de7c
   7:        0x102fc5e68 - std::panicking::begin_panic_handler::{{closure}}::hd2798398a2fd9077
   8:        0x102fc4db4 - std::sys_common::backtrace::__rust_end_short_backtrace::h9201cc364dbb8a23
   9:        0x102fc5c34 - _rust_begin_unwind
  10:        0x10454b184 - core::panicking::panic_fmt::h4d5168028d4c43c7
  11:        0x1031a4328 - <tailcall::json::json_schema::JsonSchema as core::convert::TryFrom<&prost_reflect::descriptor::FieldDescriptor>>::try_from::hcd1cd2b8fb8e4c85
  12:        0x1031a3e60 - <tailcall::json::json_schema::JsonSchema as core::convert::TryFrom<&prost_reflect::descriptor::MessageDescriptor>>::try_from::hdd1bf0bcd150f529
  13:        0x1031a4200 - <tailcall::json::json_schema::JsonSchema as core::convert::TryFrom<&prost_reflect::descriptor::FieldDescriptor>>::try_from::hcd1cd2b8fb8e4c85
  14:        0x1031a3e60 - <tailcall::json::json_schema::JsonSchema as core::convert::TryFrom<&prost_reflect::descriptor::MessageDescriptor>>::try_from::hdd1bf0bcd150f529
  15:        0x10314e2d4 - tailcall::blueprint::operators::grpc::compile_grpc::h2a489719e464d750
  16:        0x10314f5f0 - tailcall::blueprint::operators::grpc::update_grpc::{{closure}}::h2f14f1b80aa53228
  17:        0x1031c9230 - tailcall::try_fold::TryFold<I,O,E>::trace::{{closure}}::hd50409ec7f8e126e
  18:        0x1031c6c2c - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  19:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  20:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  21:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  22:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  23:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  24:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  25:        0x1031c6b04 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h86ce707dd4164094
  26:        0x103138a8c - tailcall::blueprint::definitions::to_fields::{{closure}}::h0e317d7399efbd43
  27:        0x103139b08 - tailcall::blueprint::definitions::to_definitions::{{closure}}::h4e253cac19a021a7
  28:        0x1031c8c74 - tailcall::try_fold::TryFold<I,O,E>::transform_valid::{{closure}}::h9c8cb005c1c39ac4
  29:        0x1031c6a2c - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h2d7e934190540002
  30:        0x1031c6908 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h2d7e934190540002
  31:        0x1031c6908 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h2d7e934190540002
  32:        0x1031c6908 - tailcall::try_fold::TryFold<I,O,E>::and::{{closure}}::h2d7e934190540002
  33:        0x1031c6d98 - tailcall::try_fold::TryFold<I,O,E>::transform_valid::{{closure}}::h785fdd1218b0f00f
  34:        0x1031c6f74 - tailcall::try_fold::TryFold<I,O,E>::transform_valid::{{closure}}::h861aedcbfc2303b8
  35:        0x10313e848 - tailcall::blueprint::from_config::<impl core::convert::TryFrom<&tailcall::config::config_module::ConfigModule> for tailcall::blueprint::blueprint::Blueprint>::try_from::h80e56342c517b7d0
  36:        0x1032ad4b4 - tailcall::cli::server::server::Server::start::{{closure}}::h29070a7ea7e954fd
  37:        0x10328f704 - tokio::runtime::task::raw::poll::h2af7121a66ddb252
  38:        0x1032d635c - tokio::runtime::scheduler::multi_thread::worker::Context::run_task::h2940515d5221b14f
  39:        0x1032d5230 - tokio::runtime::scheduler::multi_thread::worker::run::h2a6c783c5be2efa8
  40:        0x1032da880 - tokio::runtime::task::raw::poll::h00db61f8266c70ce
  41:        0x1032c98e8 - std::sys_common::backtrace::__rust_begin_short_backtrace::h1a1627a7808be58b
  42:        0x1032cc4cc - core::ops::function::FnOnce::call_once{{vtable.shim}}::h747af272b4e6ff97
  43:        0x102fc8da4 - std::sys::unix::thread::Thread::new::thread_start::h9b6324e2391e6ebb
  44:        0x188e19034 - __pthread_joiner_wake
tusharmath commented 6 months ago

Need to implement JsonSchema for the enum type, there is a Todo for it. Enum in JSON can be expressed as strings.

/bounty 250$

algora-pbc[bot] commented 6 months ago

💎 $250 bounty created by tailcallhq 🙋 If you start working on this, comment /attempt #1407 along with your implementation plan 👉 To claim this bounty, submit a pull request that includes the text /claim #1407 somewhere in its body

📝 Before proceeding, please make sure you can receive payouts in your country. 💵 Payment arrives in your account 2-5 days after the bounty is rewarded. 💯 You keep 100% of the bounty award. 👍 If you go above and beyond by cleaning up or enhancing aspects beyond the scope of the PR, a tip may be awarded as a token of appreciation. 🙏 Thank you for contributing to tailcallhq/tailcall!. 🙋‍♂️ Join our discord channel if you need help.

👉 Add a bountyShare on socials

Attempt Started (GMT+0) Solution
🟢 @ologbonowiwi Mar 13, 2024, 11:23:11 AM WIP
🟢 @ssddOnTop Mar 19, 2024, 2:16:27 PM #1537
ologbonowiwi commented 6 months ago

/attempt #1407

Algora profile Completed bounties Tech Active attempts Options
@ologbonowiwi    24 tailcallhq bounties
+ 19 bounties from 5 projects
Rust, TypeScript,
Shell & more
tailcallhq/tailcall#932
Cancel attempt
algora-pbc[bot] commented 6 months ago

@ologbonowiwi: The Tailcall Inc. team prefers to assign a single contributor to the issue rather than let anyone attempt it right away. We recommend waiting for a confirmation from a member before getting started.

tusharmath commented 6 months ago

@ologbonowiwi are u working on this?

ologbonowiwi commented 6 months ago

No @tusharmath, anyone else feel free to attempt

ssddOnTop commented 6 months ago

/attempt

Algora profile Completed bounties Tech Active attempts Options
@ssddOnTop 26 tailcallhq bounties
Rust, Java,
C & more
tailcallhq/tailcall#1482, tailcallhq/tailcall#1285
Cancel attempt
algora-pbc[bot] commented 6 months ago

💡 @ssddOnTop submitted a pull request that claims the bounty. You can visit your bounty board to reward.

algora-pbc[bot] commented 6 months ago

🎉🎈 @ssddOnTop has been awarded $250! 🎈🎊