Fix "Although the value stored to 'pos' is used in the enclosing expression, the value is never actually read from 'pos'"

Xcode analyser warning.

Nice find, thanks !


PD: DRY out Hot Reload junk in configureStore

overview
Duplication of reducer creation in PD's configureStore.js
current behavior
All reducers are duplicated 2x, and using require when they don't need to.
expected behavior
Instead, just use getRootReducer in configureStore and ditch the requires
Make sure hot reloading still works when reducer code is changed.

fixed in https://github.com/Opentrons/opentrons/commit/11f582b87a0aefdc953b79392887368b441ec1bc#diff-524b2c9d3d7c48bf65da28c5b555a420


[fix] [client] auto release useless connections

Motivation
Currently, the Pulsar client keeps the connection even if no producers or consumers use this connection.
If a client produces messages to topic A and we have 3 brokers 1, 2, 3. Due to the bundle unloading(loadmanager)
topic ownership will change from A to B and finally to C. For now, the client side will keep 3 connections to all 3 brokers.
We can optimize this part to reduce the broker side connections, the client should close the unused connections.
Modifications
Add a scheduled task to check for and release unwanted connections
Verifying this change

ConnectionPool

Add filed : maxIdleSeconds
After constructor, add A scheduled task at startup

PulsarClientImpl

Provides a function to verify that the connection is still in use

Specific task execution process:

If connection is not still in use, mark it is idle.
If A is already marked as idle, release if the free time exceeds maxIdleSeconds
If A is already marked as idle, the flag will be cleared when it is used again

Documentation

[ ] doc-required

[ ] no-need-doc

[ ] doc

[x] doc-added

/pulsarbot rerun-failure-checks

Thanks for your contribution. I am missing some discussion on the dev@ list about this interesting feature. Did you send some messages ? If not please discuss about this proposal on the ML

OK. I'd like to make a proposal.

Thanks for your contribution.
I am missing some discussion on the dev@ list about this interesting feature.
Did you send some messages ?
If not please discuss about this proposal on the ML

+1
@poorbarcode Please check the Pulsar proxy side, because the Pulsar proxy is using the connection directly without create producers or consumers.

@codelipenghui @eolivelli
I have send mail [DISCUSS] [PIP-165] Auto release client useless connections. PIP-Issue:   https://github.com/apache/pulsar/issues/15516


FixedSizeBinaryArray::try_from_sparse_iter failed when given all Nones

Describe the bug
try_from_sparse_iter expects at least one item to have Some to determine the size. This is a bad assumption as it may recieve all Nones.
InvalidArgumentError("column types must match schema types, expected FixedSizeBinary(32) but found FixedSizeBinary(0) at column index 0"

To Reproduce
        let none_option: Option<[u8; 32]> = None;
        let item = arrow::array::FixedSizeBinaryArray::try_from_sparse_iter(
            vec![none_option, none_option, none_option].into_iter(),
        )
        .unwrap();
       let rb = arrow::record_batch::RecordBatch::try_new(
            arrow_schema.clone(),
            vec![std::sync::Arc::new(item)],
        )
        .unwrap();

Expected behavior
A record batch with a colum of all nulls.
Additional context
I would suggest fixing it by changing the behaviour of defaulting in array_binary.rs:560
let size = size.unwrap_or(0);

or changing the schema validation to handle a 0 size if the array is empty.

Thank you for the report

Has it already been fixed?
fn test_fixed_size_binary_array_from_sparse_iter() {
    let none_option: Option<[u8; 32]> = None;
    let input_arg = vec![none_option, none_option, none_option, none_option];
    let arr =
        FixedSizeBinaryArray::try_from_sparse_iter(input_arg.into_iter()).unwrap();
    assert_eq!(0, arr.value_length());
    assert_eq!(4, arr.len())
}

I create and run this unit test, and it is ok.

@jackwener one thing I noticed that that function isn't marked with #[test] (not sure if you did that locally or not).
#[test]
fn test_fixed_size_binary_array_from_sparse_iter() {
...
}

Is there any chance you can put up a PR with the test? That way we can close this ticket -- as 'already fixed' if it passes

Has it already been fixed?
fn test_fixed_size_binary_array_from_sparse_iter() {
    let none_option: Option<[u8; 32]> = None;
    let input_arg = vec![none_option, none_option, none_option, none_option];
    let arr =
        FixedSizeBinaryArray::try_from_sparse_iter(input_arg.into_iter()).unwrap();
    assert_eq!(0, arr.value_length());
    assert_eq!(4, arr.len())
}

I create and run this unit test, and it is ok.

The issue is not this. The error occurs when using the schema.

I reproduce it successfully.
    #[test]
    fn test() {
        let schema =
            Schema::new(vec![Field::new("a", DataType::FixedSizeBinary(32), false)]);
        let none_option: Option<[u8; 32]> = None;
        let item = FixedSizeBinaryArray::try_from_sparse_iter(
            vec![none_option, none_option, none_option].into_iter(),
        )
        .unwrap();
        let rb = RecordBatch::try_new(Arc::new(schema), vec![Arc::new(item)]).unwrap();
    }

The essence of the problem is that we can't get the the type None. We need Some() to determine None type.

The essence of the problem is that we can't get the the type None. We need Some() to determine None type.

Or the schema doesn't validate size for all none array

Please reopen this issue. The pr does not fix the problem. See Jack's comment above for a test reproducing the issue

Sorry @jamescorbett  -- Github got overly excited and automatically closed the PR

Here is a PR to add the test: https://github.com/apache/arrow-rs/pull/1551


Improving Front-end

I want to improve the user experience by adding some front-end styles. I also found an issue in about section where footer in way above where it should be. I can fix it too.
Can you please assign me this issue. Thank you!

Hey @Susmita-Dey I am hoping to get a reply on this issue. I want to work on this.

@Susmita-Dey It this repo invalidated?


Connection drops when zooming window

SQL Operations Studio Version:

Version 0.23.6
Commit 8a3011756318a2ded1e6e84332230a2b2bf9c544
Date 2017-11-06T21:51:43.232Z
Shell 1.7.9
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64
Steps to Reproduce:

Open a new query window
Connect to a database
Zoom window in or out Ctrl + or -
Run query

Error - new connection window opens
Expected - Run query against existing connection

I can reproduce this - it disconnects when zoom is used. Will take a look at this is a nasty one.

I have a fix for this in review. We will have this resolved in the next release. While testing I discovered a few related issues

rename in the file viewlet does't update any SQL files that are open, causing us to leave "deleted" files behind
After saving an untitled SQL file that has results pane visible, the results pane disappears.

These issues won't be in the initial fix but I hope we'll get them resolved too as they're important.


Capture and raise with stderr on minimal_ext_cmd failure.

Updates qiskit.version._minimal_ext_cmd to capture stderr and include it in the raised error when the subprocess fails.

@mtreinish 's changes in 12ffa03 look good to me.


Use sequential variable in extra_config

Is there any way that I could use sequential variables in extra_config?
like this:
          "extra_config": {
                "github.com/devopsfaith/krakend-martian": {
                    "header.Modifier": {
                      "scope": ["request", "response"],
                      "name": "Account_uuid",
                      "value": "{resp0_acnt_uuid}"
                    }
                }
            }

It currentyl just prints "{resp0_acnt_uuid}" instead of the value of "acnt_id".
If I put it in url_pattern, it works. But I want to put it in header.

Can anyone tell me how can I do this myself?
Which approach should i take?
(Lua, CEL, Router Plugin, Proxy Plugin or a custom midlleware?)

no, you can't use url params extracted from the endpoint pattern in the extra config.
with lua, cel and a custom mw you could access these params using the defined structs and/or helpers


No error is thrown when using a non existent service over sockets

Here is a gist that illustrates accessing an existing and a non-existing service over REST and WS: https://gist.github.com/juodumas/8ac8702a0279168cf92f8ff966c5643b
When accessing the non-existing service, feathers-rest throws a Not Found error while feathers-socketio and feathers-primus stay silent.

You need to add an error handler for errors to be reported properly. You can use the feathers-errors one as is used in a generated app or you can use your own express style middleware. What's happening is you are getting a 404 but because you don't have an error handler in place it's just spitting out the default Express one, which won't get sent over sockets.

We'll have to investigate some more what it does if you try to connect to a non-existent service via Socket.io. I'm actually not sure.

Both, socket.io and primus are silent: nothing is logged on the server and nothing is sent back to the client when accessing non-existent services. An error handler doesn't help here.

That's what I thought. Unfortunately there does not seem to be a way for the socket libraries to know if you are emitting an unknown event except for maybe overriding the emitter with a catch all or having a meta service in core that returns information about all registered services so we can throw an error when you are trying to get a non-existent service.

One thing we could easily add as a patch release is a timeout for Socket method calls. That way we'd at least get an error if it never returns (for whatever reason).

The way I see it, currently feathers-socketio, feathers-primus are only usable for incoming real-time events and unusable as the main communications channel. Take a look at this (admittedly contrived) example:
index.js
// npm init --yes
// npm i feathers feathers-socketio feathers-rest
const feathers = require('feathers')
const socketio = require('feathers-socketio')
const rest = require('feathers-rest')

const app = feathers()
        .configure(rest())
        .configure(socketio())
        .use(feathers.static(__dirname))

app.use('test', {
  find(params, cb) {
    process.exit()
  }
})

app.listen(3031)

index.html
<script src="socket.io/socket.io.js"></script>
<script src="//cdn.rawgit.com/feathersjs/feathers-client/v1.1.0/dist/feathers.js"></script>
<script>
  function feathersTransportTest(transport) {
    var app = feathers()

    if (transport == 'rest') app.configure(feathers.rest().fetch(window.fetch.bind(window)))
    else app.configure(feathers.socketio(io()))

    app.service('test').find().then(
      function(r) { console.log(`${transport}:ok`, r) },
      function(r) { console.log(`${transport}:error`, r) }
    )
  }

  feathersTransportTest('rest')
  // feathersTransportTest('socketio')
</script>

When calling app.service('test').find() using feathers-rest, the promise will be rejected via window.fetch with a TypeError: Failed to fetch(…). When calling it with feathers-socketio, there will be no response. So the problem is not only with non-existent services, but the lack of a request-response pattern in general. Since feathers makes it so easy to use WebSockets instead of REST with feathers-client, I feel that you need to take a stance: either state that sockets are only usable for events, or guarantee that the promise returned by a service call is always resolved.
As @daffl points out, adding support for timeouts could be the easiest way to ensure that. But what would be the global default? It would be nice to support timeouts for REST as well as sockets with a global default of e.g. 10 seconds, overridable for each service call, but I am not so sure how it would work with the current signature (http://docs.feathersjs.com/services/readme.html#service-methods). Moreover there would probably be problems with promises, as ES6 promises do not support cancellation and timed out socket/rest calls could still return.
Re. non existent events, there is https://github.com/hden/socketio-wildcard for socket.io and an open bug report: https://github.com/socketio/socket.io/issues/434. Don't know about Primus.

The way I see it, currently feathers-socketio, feathers-primus are only usable for incoming real-time events and unusable as the main communications channel.
So the problem is not only with non-existent services, but the lack of a request-response pattern in general.

I'm not sure I'm following correctly.  I thought this was a problem with non-existent services.  Don't you get a response from a service that does exist?

@juodumas basically what you are looking for is an "ack" timeout. That's cool and definitely a very valid feature request. 😄
I might reading too much into this but calling it "unusable" is a bit harsh imho. Many message based protocols don't even give you this ability (socket.io, redis, etc.). If you publish stuff to the wrong channel then you made a mistake or you have to implement the ack timeout yourself.
So, I do, and I think I speak for the team when I say, we very much appreciate  all the effort you put into this and this is very valid but we have used Feathers socket.io in production quite successfully for a couple years already without the need for this feature so it's definitely not unusable. It definitely could just be improved.

@ekryski, yes, I am very sorry for phrasing this too harshly. What you as a team are doing with feathers is fantastic. The simple concepts of services, the ease to use multiple transports and backends in feathers is outstanding. And I have just noticed that feathers has been around for a couple of years :+1:
Re. sockets, are you actually using them in your apps as the main transport or maybe even without feathers-rest?

@juodumas for some things, yes we are only using socket.io as the primary transport, especially between services running remotely.

Socket client timeouts are now implemented in the latest provider versions and set to 5000ms by default. They can be configured with app.configure(socketio(socket, { timeout: 2000 })


QueryError: relation edgedbpub.... doesn't exists

EdgeDB Version: 1.0b2+ga7130d5c7.cv202104290000
OS Version: macOS Big Sur / MacBook Air (M1, 2020) /  Memory: 8 GB

Steps to Reproduce:
Simplified Schema;
using extension graphql;

module default {
    type User {
        required property email -> str {
            constraint exclusive;
        }
        multi link entries := .<author[IS Entry];
    }

    type Entry {
        link author -> User;
        link topic := .<entries[IS Topic];
    }

    type Topic {
        multi link entries -> Entry;
    }
};

GraphQL Query;
User {
      email
      entries {
        topic {
          id
        }
      }
}

When trying to use this query I am getting "QueryError: relation "edgedbpub.718fcee6-e765-11eb-9572-8bb96a65cb68_t" does not exist" error
With the following schema change it's working well. I think this is a name collision issue. I wonder if this is a bug or am I doing something wrong?
using extension graphql;

module default {
    type User {
        required property email -> str {
            constraint exclusive;
        }
        multi link entries := .<author[IS Entry];
    }

    type Entry {
        link author -> User;
        link topic := .<topic_entries[IS Topic];
    }

    type Topic {
        multi link topic_entries -> Entry;
    }
};

It is definitely a bug that you get that error!
Whether it should be accepted is a more complicated question, but I think the answer is "probably yes"? The tricky thing here is that we don't allow backlinks of computable links. (If you ask for .<entries in the second schema, you'll get an error). So then the questions are:

What should we do about .<entries if one of the links named entries is computable?
Should we do something different when there's a type intersection after, like .<author[IS Topic]?

@msullivan Will you add a bug tag to this issue? Otherwise this restriction should be documented.

@msullivan Sully, has this one been fixed?

I know you are very busy with too many issues and I really appreciate your efforts. Just wondering, is this issue will be fixed in short term? I've just started a pet project and this issue blocking me. Good luck!

@kafein yeah, this will either be fixed or made to produce an error (though I think probably fixed). It shouldn't be blocking you though, since you can work around it with a name change?

@msullivan Thanks for information. Yes I can do it, but generally I don't like workarounds much :) Just want to check to see if you have a plan to fix this.
Great project, great team. Good luck!

It looks like we do now produce a proper error:
cannot follow backlink 'entries' because link 'entries' of object type 'default::User' is computed

@msullivan Great job! Thanks


POM-100 added modified date

Added automatically modified column with date.

Changed:

modifiedDate stored as Instant
don't return the date to the front-end
improve tests (this date won't come from the front-end call, we have to set it on back-end side)


Type generation should support from file

orgs will probably want to explicitly choose the types that are used, rather than have them generated ad-hoc per user.

I assume you mean directly from a CRD (or set of CRDs)?

To expand on the feature request:
We should make type generation from user-supplied cluster optional. If the user just wants to use
core types, we can have pre-generated types for one or more api versions.

Ok, so if I understand correctly, the two modes are:

Generate all core types from built-in swagger definitions
Generate from swagger obtained from a cluster

#1 is one implementation option. Alternatively, we can also just package up pre-generated *.ts files (as part of the SDK or CLI NPM packages) and avoid a call to typgen all toghether.

Where the pregenerated artifacts live is also up for discussion. It could be part of the NPM package or dynamically downloaded (e.g. from a GCS bucket). We take this approach with the typgen Go binary itself to avoid bloating the NPM package.


Support for version 8.2

Is there a timeline for for supporting Facebook SDK version 8.2?

Fixed by PR #198.


Cloudfuse added

When mounting the cloud bucket,  are all the other files within the bucket visible?
In order for this to work, mergeSTR needs to localise the associated index .tbi file for each sample. This is not an input parameter for the function. The tbi file just has to be in the same directory as the vcf.gz file which does get inputted as a parameter.
Without cloudfuse, I had to use b.read input group and explicitly read in both the tbi and vcf.gz files for the script to work. Just want to check if the case is the same when using cloudfuse?

linting keeps failing due to black reformatting, but I've already run and committed the changes made by black?

is there any way to make it run faster, or do we expect that using cloudfuse should already help to speed up the process? As far as I know, multi-threading is not supported by mergeSTR.


Improve Warios jump-mechanism so it resembles more the one of the original

Wario currently jumps to high and to slow compared to the orignal. The bug #6 probably has to be fixed first dough.

This will have to be re-opened later, but for now, it's ok.


error while pulling docker pull bigdatauniversity/spark

Getting same error.

Are you behind a proxy that would be modifying the TLS process?
There are common fixes for setup behind proxy:
https://github.com/docker/kitematic/wiki/Common-Proxy-Issues-&-Fixes

I am not behind proxy

Could you provide details of your setup and Kitematic version (Kitematic -> About)
I'm not having any TLS handshake issues on my end

Closing this due to lack of activity in more than 15 days.


Cannot execute blocks on sender in exclusive mode

Gemfile:
source :rubygems
gem 'celluloid', '~> 0.15.0'
gem 'celluloid-io', '~> 0.15.0'
gem 'reel', :git => "https://github.com/celluloid/reel.git"

1.rb
require 'bundler/setup'
require 'reel'
require 'celluloid'

class A
  include Celluloid

  exclusive :start_server

  def run
    start_server
  end

  def start_server
    @server = Reel::Server.supervise('<IP_ADDRESS>', 12345) do |connection|
      while request = connection.request
        connection.respond(Reel::Response.new(:ok, "Hello world"))
      end
    end
  end
end

a = A.new
a.start_server

ruby 1.rb
D, [2013-09-06T21:54:28.265339 #2289] DEBUG -- : Terminating 5 actors...
E, [2013-09-06T21:54:28.266123 #2289] ERROR -- : A crashed!
RuntimeError: Cannot execute blocks on sender in exclusive mode
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:11:in `initialize'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:58:in `initialize'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/sync_proxy.rb:31:in `new'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/sync_proxy.rb:31:in `method_missing'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/actor_proxy.rb:20:in `_send_'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid.rb:185:in `new'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/supervisor.rb:10:in `supervise'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid.rb:204:in `supervise'
	1.rb:15:in `start_server'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:25:in `public_send'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:25:in `dispatch'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:67:in `dispatch'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/actor.rb:322:in `block in handle_message'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/actor.rb:414:in `block (2 levels) in task'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/tasks.rb:109:in `exclusive'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid.rb:427:in `exclusive'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/actor.rb:414:in `block in task'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/tasks.rb:55:in `block in initialize'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
	(celluloid):0:in `remote procedure call'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:92:in `value'
	/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
	1.rb:24:in `<main>'
/home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:11:in `initialize': Cannot execute blocks on sender in exclusive mode (RuntimeError)
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:58:in `initialize'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/sync_proxy.rb:31:in `new'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/sync_proxy.rb:31:in `method_missing'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/actor_proxy.rb:20:in `_send_'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid.rb:185:in `new'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/supervisor.rb:10:in `supervise'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid.rb:204:in `supervise'
	from 1.rb:15:in `start_server'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:25:in `public_send'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:25:in `dispatch'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:67:in `dispatch'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/actor.rb:322:in `block in handle_message'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/actor.rb:414:in `block (2 levels) in task'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/tasks.rb:109:in `exclusive'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid.rb:427:in `exclusive'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/actor.rb:414:in `block in task'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/tasks.rb:55:in `block in initialize'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/tasks/task_fiber.rb:13:in `block in create'
	from (celluloid):0:in `remote procedure call'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/calls.rb:92:in `value'
	from /home/kostya/.rvm/gems/ruby-2.0.0-p0/gems/celluloid-0.15.1/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
	from 1.rb:24:in `<main>'

Is this still relevant? It has become very old.

If this is not resolved in #511 please reopen.


!in operator parser is too greedy, breaks existing scripts

The parser for !in seems overly greedy. If you have a boolean variable starting with in such as include, and then you type !include, the parser throws an error.
This broke an existing script that I had which worked fine before 1.12. I just changed the code to do the same thing with different syntax so it's not a big deal, but it would be nice if the parser was less greedy in checking for this token.
Example
let include = false;
if !include { // Parser error
   print("Hello world!");
}

Thanks for picking this up. I'll fix it.

Would you need it urgently?  Or can you wait till the next version?
If there is an urgent need, I can put out a 1.12.1.

No, this isn't urgent at all for me. I changed my script to not trip over this bug, so it's not blocking me from anything. Thanks for the quick response!


A few Fixes and improvements. (Temp file, Header setting/output, JSON encodeing)

This pull contains a number of improvements:

An anonymous function to handle writing to php://memory to mitigate (https://bugs.php.net/bug.php?id=43468).
Support for PECL-style Header output (multi-dimensional associative arrays).
Support for setting a group of headers.
Support for setting Headers in the PECL-style (multi-dimensional associative arrays).
Support for automatic JSON encoding of the POST contents if the 'Content-Type' is application/json.
Supports URLs with place-holders (Restful URLs).
Added methods:
setRequestType() - Sets the CURLOPT_CUSTOMREQUEST to Uppercase Request Type, and sets CURLOPT_HTTPGET, CURLOPT_POST, CURLOPT_NOBODY depending on the type.
setURL() - Sets the base_url to the provided URL with optional place-holder substitution, sets url to the base_url with optional GET request appended, sets CURLOPT_URL to the resulting url.
buildBaseURL() - Performs place-holder substitution on a provided URL with the provided $url_subs.
normalizeContentType() - Filters a set of Headers and resolves a Lower Case normalized representation of the Content Type (xml/json at this time).
more.

Obsolete. No longer using php://memory nor php://temp

Changes Unknown when pulling eaf942ca14d4d2c85b0689d4d5002fa481241b4d on thebeline:master into ** on php-curl-class:master**.


feat: add ShuttingDown error

This will make it easier to catch the shutdown message and cleanly exit e.g. a worker thread or Tokio task that's in receive_blocking, without needing to match the string exactly and without ignoring other types of errors.

Thanks! This is much better.


Fetch the url of the uploaded file.

how to get the url of the uploaded file in the code ?

You can get access to the url of the file from the onUploadComplete method:
import { createUploadthing, type FileRouter } from "uploadthing/server";
const f = createUploadthing();

const auth = (req: Request) => ({ id: "fakeId" }); // Fake auth function

// FileRouter for your app, can contain multiple FileRoutes
export const ourFileRouter = {
  // Define as many FileRoutes as you like, each with a unique routeSlug
  imageUploader: f
    // Set permissions and file types for this FileRoute
    .fileTypes(["image", "video"])
    .maxSize("1GB")
    .middleware(async (req) => {
      // This code runs on your server before upload
      const user = await auth(req);

      // If you throw, the user will not be able to upload
      if (!user) throw new Error("Unauthorized");

      // Whatever is returned here is accessible in onUploadComplete as `metadata`
      return { userId: user.id };
    })
    .onUploadComplete(async ({ metadata, file }) => {
      // This code RUNS ON YOUR SERVER after upload
      console.log("Upload complete for userId:", metadata.userId);

      console.log("file url", file.url);
    }),
} satisfies FileRouter;

export type OurFileRouter = typeof ourFileRouter;

You can get access to the url of the file from the onUploadComplete method:
import { createUploadthing, type FileRouter } from "uploadthing/server";
const f = createUploadthing();

const auth = (req: Request) => ({ id: "fakeId" }); // Fake auth function

// FileRouter for your app, can contain multiple FileRoutes
export const ourFileRouter = {
  // Define as many FileRoutes as you like, each with a unique routeSlug
  imageUploader: f
    // Set permissions and file types for this FileRoute
    .fileTypes(["image", "video"])
    .maxSize("1GB")
    .middleware(async (req) => {
      // This code runs on your server before upload
      const user = await auth(req);

      // If you throw, the user will not be able to upload
      if (!user) throw new Error("Unauthorized");

      // Whatever is returned here is accessible in onUploadComplete as `metadata`
      return { userId: user.id };
    })
    .onUploadComplete(async ({ metadata, file }) => {
      // This code RUNS ON YOUR SERVER after upload
      console.log("Upload complete for userId:", metadata.userId);

      console.log("file url", file.url);
    }),
} satisfies FileRouter;

export type OurFileRouter = typeof ourFileRouter;

How would you get access to the URL client side?

We're adding this soon! Here's a canary if you want to try it out:
pnpm add<EMAIL_ADDRESS><EMAIL_ADDRESS>See #51 for more details on how to use it!

Added, will be in next release!


Its showing skeleton even i am not using app bridge

Hi,
i am using osiset 17.1. i set appbridge_enabled as false but its showing me loading screen. its looks like app is getting stuck on authntication\token for non embeded Apps.
Note: when i convert it to embeded app then it works fine
Expected Behavior
its should show the basic laravel view.
Current Behavior
its showing me loader view
Failure Information
Please help provide information about the failure if this is a bug.
Context
Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

Package Version: 17.1
Laravel Version: 7
PHP Version: 7.3
Using a toolset (Docker, Laradock, Vagrant, etc.): vagrant

Failure Logs

Non-app-bridge is not currently supported in v17 as referenced in issue #929


Implement components for common information

We need something for loading:

[ ] Plan names
[ ] Datacenters
[ ] Backups
[ ] Sources
[ ] Warning button /!\

We definitely don't want to call a plan Linode 1024 in one place and Linode 1GB in another.

@caker we need a call on the distinction between "Linode 1024" and "Linode 1G" (or 2G I guess :wink:)

My vote is for 1G. It makes it much easier for all plans - big and small.


testTitleDoc1

Link to swimms:
:link: doc: testTitleDoc1.

Have any questions? Check out Swimm docs and join our Slack Community.

tes1


cjxl lossless (-d 0) is not identical.

Describe the bug
-d 0 is producing an ouput which is not visually identical to the original png file.
To Reproduce
Steps to reproduce the behavior:

cjxl FILE0_0_copy.png FILE0_0_copy.jxl --distance=0 --effort=9

Expected behavior
jxl image is visually identical to the png image.
Screenshots

Environment

OS: macOS 14.4.1
Compiler version: ?
CPU type: Apple M1
cjxl/djxl version string: cjxl v0.10.2

Additional context
cjxl installed using homebrew.
Original png file:

How did you generate the original PNG file? The resulted JPEG XL file contains a colour profile "QuickTime 'nclc' Video (1,2,2)", and using djxl to it will become a PNG file containing a colour profile "RGB_D65_SRG_Rel_g0.45455". I tested on macOS 14.4.1 too.

The png is converted from a tiff file on macOS, then I cropped it.
Visually, on the Mac, original tiff, png and cropped png look identical (in the cropped region).
The original png contains personal information, hence I can only distribute a crop.
But how could a colour profile cause some orange pixels to become blue? I'm really not an expert on this.

Which viewer are you using?
There could be an issue with your viewer.
The original PNG file does not have an ICC profile but it does have cHRM and gAMA chunks that define the color primaries to be those of sRGB and the transfer curve being a gamma curve; however many viewers ignore that information and either assume it is in sRGB space (that is, with the sRGB transfer curve and not a simple gamma curve) or in display space.
When viewing both the PNG and the lossless JXL in Thorium, they look identical. This is correct behavior. The sample values are identical, and the colorspace of the JXL file is equal to the colorspace defined in the PNG file: RGB, D65, sRGB primaries, gamma(0.454550) transfer function.
When I view them in Safari, the JXL looks identical to what I see in Thorium, but the PNG looks a bit darker — presumably Safari is rendering the PNG as if it uses the sRGB transfer curve. This is common behavior: ImageMagick makes the same assumption that while the PNG according to the PNG spec is not in sRGB space, it should still be treated as if it is, for some reason.
When I view the PNG in Preview, it looks the same as in Safari: slightly too dark. The inspector window says the colorspace of the image is sRGB (which is wrong).
When I view the JXL in Preview, it looks like in your screenshot: more noticeable orange/blue colors, and the inspector window claiming the color profile is named "QuickTime 'nclc' Video (1,2,2)" (which is wrong).
So both the PNG and the JXL are rendered wrong in Preview; in Safari the PNG is rendered incorrectly but the JXL is rendered correctly.
Unless I am mistaken, this is not a bug in libjxl or in cjxl, but in viewer applications that handle the colorspace incorrectly (for both PNG and JXL).

You are correct, I apologise, it is Apple's preview which is buggy, I do not have this issue in other viewers such as safari or pixelmator. I should have tested this, I didn't think the colours could be that much off because of a incorrectly interpreted color space...

I opened an issue using Apple's Feedback Assistant, but I guess it wouldn't hurt if others affected by this bug also report it so it gets prioritized correctly.


[Request] Add android-studio-canary and/or android-studio-beta

android-studio is already in this bucket
See: https://developer.android.com/studio/preview
Also: https://developer.android.com/studio/archive

https://github.com/Scoopinstaller/versions


Add tournaments brackets feature

We have implemented the brackets feature mentioned in issue #163 . Currently, when a tournament is created, players in the tournament will be automatically randomly assigned to different matches (brackets). When one round of matches is done, a function is provided in tournaments_function.py to randomly assign winners of the last round to brackets for the next round. Note that the concept of a "round" is not implemented right now since games have not been implemented and hence the result of a match cannot be determined. We may add this "round" later in other pull requests. Also note that currently, the brackets are created as soon as the tournament is created. This is for testing purposes. However, after the concept of "registration deadline" is added, the brackets should be created after the registration deadline has passed so that users have time to sign up for and quit a tournament.

Hi Rafael, it seems that currently there is no way to remove a player from the match through the update view provided by Django. Therefore, we may try to use a different approach if we want to remove a player later.

Thank you for your feedback! I will put this in my close comment as well.

Hi Elizabeth,
The bracket functionality is currently built in a way such that it allows matches that have more than 2 players. The number of players that is assigned to each bracket (match) is determined by the maximum player of the game that the tournament uses. If you set the max_player field of the game to 2, then you will be able to have 1 vs 1 brackets. Hope this answers your question!

The functions in tournaments_function.py have now been moved into the tournament model in models.py

Hi Elizabeth, the comments have been removed now

In this pull request, @MikeChen012345  and @MuyanXie worked on writing the code and testing the functionalities, and @Riyush focused on coming up with potential ways of improvement in displaying the brackets.
@rqueiroz20 helped a lot in finding issues related to the pull request and discussing if the issues could be resolved. Thank you!

Issue Score: Excellent
Comments:
Nice set of functions to provide added functionality for creating matches.


Couldn't find any nodes satisfying the request.

Couldn't find any nodes satisfying the request.

Hi,
If possible, please use the Pterodactyl Discord for configuration issues (#whmcs channel)


Improve visibility of gun bolts

About the PR

Lets the player know if the gun is bolted by showing a red circle with a line through it on their cursor
Makes the text that shows up when you try to fire an unbolted gun show up on the cursor
Why / Balance

Because it's hard to notice that your gun's bolt is open if there are no visual indicators aside from a small bit of the sprite looking different. Also because people are usually looking at their cursor when trying to fire a gun.
Technical details

Adds a new texture for the reticle around the cursor
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

https://github.com/space-wizards/space-station-14/assets/45953835/78b99a52-334d-4aa4-858e-bef56e149376
Breaking changes

Changelog

:cl:

tweak: The reticle around your cursor will change depending on if the gun you're holding is bolted or not.
tweak: The "Gun not bolted" text that shows up whenever you try to fire a gun with an open bolt now shows up on your cursor instead of your character.

The text is repeating!

The text is repeating!

visibility :trollface:

@notquitehadouken popup still needs fixing please.

@notquitehadouken popup still needs fixing please.

will do when i figure out how


Rc/7.11.2

Release severity: Normal
Release notes:
Fix price display for transaction history
Fix titles and descriptions display for governance


Auto-init DVCLive to enable save_dvc_exp=True

In order to use DVCLive and been able to save DVC Experiments, we require:

Initialized, non-empty Git repository
Initialized DVC repository

With DVCLive having DVC Python API as a required dependency, it might be worth trying to do the operations required to fulfill those requirements.
We could discuss trying to cover all of the requirements or start with the easiest one: calling dvc init under the hood when needed)

Thoughts @dberenbaum @shcheklein ?

I think it makes sense. I don't see a good reason for not creating .dvc. I guess it is needed even if we produce dvc.yaml in the dvclive directory?

I worry a little about adding too much magic to dvclive logic, but I think calling dvc init at the root of the repo seems like a reasonable default. I guess if not inside a repo, we would just skip it?

Calling this done with #539 . Don't think we should get into git init + git commit for now


I broke version checking again

Also this error is not presenting the way it should.
------------------------------ START ------------------------------

2024-10-18T21:06:16.913-04:00 - [    INFO] - Connecting to database... (SQLite <IP_ADDRESS>)
2024-10-18T21:06:16.917-04:00 - [    INFO] - Initializing database...
2024-10-18T21:06:16.920-04:00 - [    INFO] - Running PRAGMA optimize...
2024-10-18T21:06:17.272-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:06:17.612-04:00 - [    INFO] - Starting API Watcher...
2024-10-18T21:06:17.612-04:00 - [    INFO] - Starting API Server...
2024-10-18T21:06:17.724-04:00 - [    INFO] - Starting API Server v1...
2024-10-18T21:06:17.724-04:00 - [    INFO] - Catching up...
2024-10-18T21:06:17.819-04:00 - [    INFO] - Catch up complete.
2024-10-18T21:06:17.819-04:00 - [    INFO] - Watching for new blocks...
2024-10-18T21:07:29.798-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.802-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.806-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.810-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.952-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.064-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.178-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.330-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.446-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.546-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.660-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.821-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.930-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:31.068-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:31.177-04:00 - [ WARNING] - Unable to check Counterparty version.

------------------------------ START ------------------------------

2024-10-18T21:06:16.913-04:00 - [    INFO] - Connecting to database... (SQLite <IP_ADDRESS>)
2024-10-18T21:06:16.917-04:00 - [    INFO] - Initializing database...
2024-10-18T21:06:16.920-04:00 - [    INFO] - Running PRAGMA optimize...
2024-10-18T21:06:17.272-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:06:17.612-04:00 - [    INFO] - Starting API Watcher...
2024-10-18T21:06:17.612-04:00 - [    INFO] - Starting API Server...
2024-10-18T21:06:17.724-04:00 - [    INFO] - Starting API Server v1...
2024-10-18T21:06:17.724-04:00 - [    INFO] - Catching up...
2024-10-18T21:06:17.819-04:00 - [    INFO] - Catch up complete.
2024-10-18T21:06:17.819-04:00 - [    INFO] - Watching for new blocks...
2024-10-18T21:07:29.798-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.802-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.806-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.810-04:00 - [    INFO] - Mempool -<PHONE_NUMBER>00 MINTS minted for 0 XCP by 1XEgHAwGnfxZBJQcXKh1fZ4aNwzUpDS8v
2024-10-18T21:07:29.952-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.064-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.178-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.330-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.446-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.546-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.660-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.821-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:30.930-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:31.068-04:00 - [ WARNING] - Unable to check Counterparty version.
Traceback (most recent call last):
  File "/Users/adam/Documents/work/Counterparty/CounterpartyXCP/counterparty-core/counterparty-core/counterpartycore/lib/check.py", line 974, in software_version
    versions = json.loads(response.text)
  File<EMAIL_ADDRESS>line 346, in loads
    return _default_decoder.decode(s)
  File<EMAIL_ADDRESS>line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File<EMAIL_ADDRESS>line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2024-10-18T21:07:31.177-04:00 - [ WARNING] - Unable to check Counterparty version.

fixed!


Version 0.2.1 not available on NPM

As the title says, version 0.2.1 of the package is not available via npm
P.S Also wanted to thank you for a nice piece of code! Very useful and straightforward.

😳 what the h...!! 😆 I think something went wrong when I was releasing.
Thanks a lot for pointing this out! I'll see to this ASAP!

Hey @Bartosz-L I just published version 0.2.1 to npm now. Thanks again!


repair compiler warnings with AppleClang

Turns out that CMake thinks Clang and AppleClang are different things.
This PR makes both CMake and AppleClang disable the same compiler warnings.

Turns out that CMake thinks Clang and AppleClang are different things.


adds objection-password plugin to docs

👏

The documentation html is generated from the markdown in the docs folder. You need to editthis file https://github.com/Vincit/objection.js/blob/master/doc/index.md

@koskimas my bad. I'll open a new PR


Screenshots

Hi there,
Is there any screenshots of how this looks for Android and on iOS? That's the first thing I look for before deciding to dig furhter.

android-demo
ios-demo

Oh wow this is exactly what I need, thank you very much!


ENGR drawings for platform frame manufacture

Produce quality engineering drawings for manufacturing of frame assembly
Pay attention to detail and make drawings accurate as possible
Will be submitted to facilities for manufacturing

Updates have been made, will download pdfs and send to manufacturers for quotes


How can we use these configs in .eslint.json

I was trying to use add these configs in .eslint.json file but i wasn't successful.
I tried to extend them but i got a lot of errors witch i don't.

I'm sorry. This ESLint config supports only new flat config type eslint.config.js:
https://eslint.org/blog/2022/08/new-config-system-part-1/
Also if you are using VSCode, you must enable this setting:


Method not found: 'Int32 Microsoft.SemanticKernel.AI.TextCompletion.CompleteRequestSettings.get_MaxTokens()'.

This is my configuration
var kernel = Kernel.Builder                 .WithOpenAITextCompletionService("text-davinci-003", openKey)                 .WithLogger(logger)                 .Build();
And when I try:
var planner = new SequentialPlanner(kernel);         var goal = command.Problem;         var plan = await planner.CreatePlanAsync(goal);
    Im getting the error:

    Method not found: 'Int32 Microsoft.SemanticKernel.AI.TextCompletion.CompleteRequestSettings.get_MaxTokens()'.

What I'm missing ?

did you use lastest nuget packages?
MaxTokens had been changed to int?  type
https://github.com/microsoft/semantic-kernel/commit/450f1d3a11eb95d6975da33f581d3997bed42906


1.10.3 breaks "sls invoke local"

Upgraded to 1.10.3 to fix #117 which now works with serverless >= 2.36.0. However, it appears to have broken invoke local. I get a "cannot find module" error and it appears to be looking in src/... rather than .esbuild/.build/src/...:
Error: Cannot find module '/Users/schmidtt/w/video-tracking/src/list'
Require stack:
- /Users/schmidtt/w/video-tracking/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js
- /Users/schmidtt/w/video-tracking/node_modules/serverless/lib/plugins/index.js
- /Users/schmidtt/w/video-tracking/node_modules/serverless/lib/classes/PluginManager.js
- /Users/schmidtt/w/video-tracking/node_modules/serverless/lib/Serverless.js
- /Users/schmidtt/w/video-tracking/node_modules/serverless/scripts/serverless.js
- /Users/schmidtt/w/video-tracking/node_modules/serverless/bin/serverless.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at AwsInvokeLocal.invokeLocalNodeJs (/Users/schmidtt/w/video-tracking/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:743:33)
    at AwsInvokeLocal.invokeLocal (/Users/schmidtt/w/video-tracking/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:222:19)
    at Object.invoke:local:invoke [as hook] (/Users/schmidtt/w/video-tracking/node_modules/serverless/lib/plugins/aws/invokeLocal/index.js:49:47)
    at PluginManager.invoke (/Users/schmidtt/w/video-tracking/node_modules/serverless/lib/classes/PluginManager.js:551:20)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

This could be an issue with core serverless >= 2.36.0. I encountered the same error in a different project that doesn't even use esbuild (webpack).

hi @taschmidt, thank you for the issue, we've merged the fix. If you have a chance could you please check if it works for you?

Yep, looks like it's fixed. Thanks!!


Menu edit redirect to blog edit page

Menu edit redirect to blog edit page in latest repo.
Solution
I have replace MenuController in backend folder with previous one then it is working fine

@umair321 Can you provide more details on this issue.

I cloned repo and checked menu was not working well so I replaced MenuController with previous downloaded repo which I downloaded 2 months ago for laravel 5.5

@umair321 We are look into this. and let you know once fix.

@umair321 I am going to close this issue, as this can not happen, I have checked the master branch's code and we have below code to show edit button and delete button:
public function getActionButtonsAttribute()
    {
        return '<div class="btn-group action-btn">
                    '.$this->getEditButtonAttribute('edit-menu', 'admin.menus.edit').'
                    '.$this->getDeleteButtonAttribute('delete-menu', 'admin.menus.destroy').'
                </div>';
    }

please look at the file at this location : App\Models\Menu\Traits\Attribute\MenuAttribute.php and tell us what's wrong, because I can not find a problem their.
You can always reopen this issue, if it persists.


verifyJws returns boolean rather than decrypted text or error

The docs say that the following code:
const jws = await ION.verifyJws({
  jws: 'eyJhbGciOiJFUzI1NksifQ.ImhlbGxvIHdvcmxkIg.NK3f...',
  publicJwk: { ... }
});

should return the following result:
// RESULT
// success: returns 'hello world' to await/then(response)
// fail: throws verification error in try/catch(error)

But I'm just getting a boolean. Amy I doing something wrong here or is this the correct result. Happy to fix docs if boolean is correct.

@charliehur this is returning a boolean, and looks like a docs nit - should I just change the doc to say boolean, or do you want that plus a method/way to get the payload in the return?


[Bug]: Azure integration does not work

What happened?
I followed this guide to setup azure openai with helicone and it keeps erroring out:
{ code: '404', message: 'Resource not found' }

it even shows up in my dashboard:

my setup:
export const openai = new OpenAI({
  baseURL: `https://oai.helicone.ai/openai/deployments/${env.AZURE_OPENAI_DEPLOYMENT_NAME}`,
  defaultHeaders: {
    "Helicone-Auth": `Bearer ${env.HELICONE_API_KEY}`,
    "Helicone-OpenAI-API-Base": `https://${env.AZURE_OPENAI_RESOURCE_NAME}.openai.azure.com/`,
    "api-key": env.AZURE_OPENAI_KEY,
  },
  defaultQuery: { "api-version": "2024-05-13" },
});

const response = await openai.chat.completions.create({
  // ...
});  // ❌ does not work

However, when using azure's sdk, it works just fine, even with the same environment variables:
const azureOpenai = new AzureOpenAI.OpenAIClient(
  `https://${env.AZURE_OPENAI_RESOURCE_NAME}.openai.azure.com/`,
  new AzureOpenAI.AzureKeyCredential(env.AZURE_OPENAI_KEY),
);

const response = await azureOpenai.getChatCompletions(
  env.AZURE_OPENAI_DEPLOYMENT_NAME,
  // ...
); // ✅ works just fine!

I even tried the HeliconeAsyncLogger and it doesn't work too!
Relevant log output
No response
Twitter / LinkedIn details
No response

Thank you @ahmedriad1 for raising this issue. Glad you were able to find a solution that works for you.
We will update the docs to reflect your findings, are there any other issues here?

Any news on this? I cannot use Azure with Helicone??

Hi @ahmedriad1 and @adaryabegi, I just tested and it worked for me just fine:
`import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://oai.hconeai.com/openai/deployments/{DEPLOYMENT_NAME}",
defaultHeaders: {
"Helicone-Auth": Bearer ${process.env.HELICONE_API_KEY},
"Helicone-OpenAI-API-Base": process.env.AZURE_OPENAI_BASE_URL,
"api-key": process.env.AZURE_OPENAI_API_KEY,
},
defaultQuery: { "api-version": "{API_VERSION}" },
});
const data = await openai.chat.completions.create({
model: "gpt-4",
messages: [{ role: "user", content: "Say Hi" }],
stream: false,
});
console.log(data);
`

Are you still experiencing issues?

Hi @chitalian and @colegottdank,
I was finally able to figure it out! I was using llamaindex's TS SDK and this was how I solved it:
import { OpenAI } from 'llamaindex';

return new OpenAI({
  additionalSessionOptions: {
    baseURL: `https://oai.helicone.ai/openai/deployments/${process.env.AZURE_DEPLOYMENT_NAME}`,
    defaultHeaders: {
      'Helicone-Auth': `Bearer ${process.env.HELICONE_API_KEY}`,
      'Helicone-OpenAI-Api-Base': `https://${process.env.AZURE_RESOURCE_NAME}.openai.azure.com`,
      'api-key': process.env.AZURE_SECRET_KEY,
    },
    defaultQuery: {
      'api-version': '2024-08-01-preview',
    },
  },
});

Would be great if you can update your docs to include it since llamaindex is not intuitive at all and passing config under the azure param doesn't work. Thanks!


Editing numbers of cut

Is there any possibility to change the numbers of cuts used by Concorde to solve TSP? I mean, I think it is currently working con 16 cuts, can I change to 25 for example?

Hmm, not sure. I'd have to look into that...

What I've figured out, so far, is a function called "usage" in concorde.c . In this function is basically explained the same thing you can find running concorde by command windows, if you put "-C 24" it will run the program adding 24 local cuts. However I could find a way to invoke it in the code.

@aleraguz That's a good find, thanks! It shouldn't be too difficult to expose that option on the Python side.

To be honest I was finding this information because I got some non-exact solution using Concorde and at the beginning I thought it was because of the numbers of local cutting planes. Actually, this problem arises if you set coordinates with many decimal numbers cause of Concorde's huge approximation errors. Thus, basically, just multiply all the distances by 100 or 1000.

@aleraguz Thanks for the find, and sorry it took me so long to get back to this.
I wanted to point out that the 0.2.0 API will run concorde in a subprocess, which will make it much easier to pass arbitrary options to the solver.

@aleraguz Thanks for the find, and sorry it took me so long to get back to this.
I wanted to point out that the 0.2.0 API will run concorde in a subprocess, which will make it much easier to pass arbitrary options to the solver.


[BUG] Wrong request path computed in AliasGetReq when no indices are specified

What is the bug?
OpenSearch supports two kind of routes to get an alias: GET /_alias/alias1 and GET /alias1. To interact with these routes, the opensearchapi package provides the AliasGetReq request. The problem arises when no indices are specified: in this case, the GetRequest() function computes a request path that is equal to //_alias/alias1. When passed to http.NewRequest(), the double slash at the beginning makes _alias be set as host and alias1 as path, and when the host is replaced in setReqURL(), the ending request URL is http://localhost:9200/alias1 instead of the expected http://localhost:9200/_alias/alias1. While the response for the success case is coincidentally compatible, the behavior is different if more than one alias is specified and some do not exist. In that case, the first endpoint returns a structured error while the second returns the information about the existing aliases along with an error message and a status field. This makes it difficult to handle errors as you expect to receive them in a certain format when in reality this is not the case.
curl --location 'localhost:9200/test-index/_alias/alias1,alias2'
{"error":"alias [alias2] missing","status":404,"test-index":{"aliases":{"alias1":{}}}}

curl --location 'localhost:9200/alias1,alias2'
{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [alias2]","index":"alias2","resource.id":"alias2","resource.type":"index_or_alias","index_uuid":"_na_"}],"type":"index_not_found_exception","reason":"no such index [alias2]","index":"alias2","resource.id":"alias2","resource.type":"index_or_alias","index_uuid":"_na_"},"status":404}

How can one reproduce the bug?
It it enough to write this code:
if _, err := client.Indices.Alias.Get(context.Background(), opensearchapi.AliasGetReq{Alias: []string{"alias1", "alias2"}}); err != nil {
	var opensearchErr *opensearch.StructError
	if errors.As(err, &opensearchErr) {
		// this works as long as the http://localhost:9200/alias1,alias2 endpoint is called,
		// but the expectation is that localhost:9200/_alias/alias1,alias2 gets called instead,
		// which would return the error in a different format
	}
}

What is the expected behavior?
The request returned by AliasGetReq.GetRequest() should have /_alias/alias1 set as path when no indices are specified.
Do you have any additional context?
It used to work fine before version 3.0. The commit that introduced the bugged code is 9d56cba2f56a4c8d7b8591e011fe4b76e1197194. I'm open to submit a PR to fix the issue once it's triaged.

[Catch All Triage - 1, 2,  3,  4]


More showing, more doing, less telling and less meta (at least at first).

If you want to hook you students, you should get to code much sooner in the tutorial discussion.
I also think that a basic description of the navigation and features of HH should be described progressively along the way.
The current upfront reading is IMO boring. I think that you want to explain too many things at once, at a moment that's not appropriate...
The After the first lesson, they should have an idea of what programming and of what using HH feels like.
I'd name the first lesson "Let's get started", and I would take a hands down approach, much like TryRuby. For example, I think that the first page of the first lesson should invite the student to write a hello world.
lesson "Let's get started!"
page "First things first:" do
    para "This will be your first program:"
    embed_code 'alert "Hi everyone"'
    para "Launch the editor (click the [=] icon ",
         "at the very left) and type it exactly.",
         "Don't forget the quotes around the message, or it won't work."
    para "Now click the [run] button at the bottom of the page."
    # lock the interface so that the only possible actions will be
    # opening the editor and clicking the "run" button.
    # monkey_patch alert method to redirect to the next page.
end

page "Excellent" do
    # Remove the hook, unlock (some of) the interface
    # Debriefing about hello world,
    # Explain what a programming language is and
    # introduce Ruby. Two sentences.
    para "Click the arrow to continue. "
    icon_button :arrow_right, nil do
        goto next_page
    end
end

page "Interaction"
    # The "name = ask..." example, with little to no explanation.
    # State that the details will be explained in the next lessons.
    para "Continue: "
    icon_button :arrow_right, nil do
        goto next_page
    end
    para "\nYou can also use the arrows at the bottom ",
           "of the window to turn the pages."
end

page "Saving your code"
    # Enable saving when running for the first time.
    # Explain the "Save" and "Copy" buttons, and the Home page.

page "Conclusion"
    # Enable the Lessons button, and invite the user
    # to click it.
    # Invite the student to take lesson 2.

Lesson 2 => Logo, show the code first, then explain.
Lesson 3 => Try to integrate the Ruby trivia in the code examples.
Lesson 4 => At the end, introduce the web account, and the possibility to upload stuff on the web. Put an account login (and creation? hacketyhack/hacketyhack#81 ) form in the tutorial. At last introduice the Help button (see hacketyhack/hacketyhack#80 ).
The current tutorials are of course useful, but I think that they should come after the ones I suggested, as a way to revisit and expand known topics.
At last, the "Lessons lesson" is of no interest to students, and would be better as a separate lesson, explicitly directed at teachers (but anyone can be a teacher :-).

I'm closing this, not because I don't care, but because I've put this together with a bunch of other notes that I'm using when writing new curriculum. With 1.2, I want to do all brand-new lessons, and this'll be a big part of that.


limit number of particiants

you can define max number of particiants for a course

It is defined in product.


Example doesn't work

I am getting the following error:
error[E0277]: the trait bound `futures::future::FutureResult<thruster::BasicContext, _>: futures::future::Future` is not satisfied
  --> src/main.rs:21:3
   |
21 |   Box::new(future::ok(context))
   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `futures::future::Future` is not implemented for `futures::future::FutureResult<thruster::BasicContext, _>`
   |
   = note: required for the cast to the object type `futures::future::Future<Item=thruster::BasicContext, Error=std::io::Error> + std::marker::Send`

Also, it seems that there is no need to list serde, serde_json, and tokio explicitly in the example project.
Rust version: 1.27 and Nightly (2018-06-19).
P.S. I had to comment #![feature(test)] in the lib.rs to get it compiling to this state on stable Rust.

ah yes, great catch! Haven't updated the example in the readme (or the "most_basic" example,) will push an update to fix this shortly.

Well, the actual fix for the compilation error was to pin Futures to 0.1.x :)

Ah, sure, that makes sense! There's a hard bottom on the futures because of the tokio runtime dependency. Thanks for circling back on this!


Releasing 0.32.0

This is a tracking issue for the 0.32.0 release.
The milestone can be found here: https://github.com/rusoto/rusoto/milestone/3. In order to finally get the release out of the door, I think it'd be good to start "freezing" the milestone, i.e. agree on a fixed scope until we cut the release.
@matthewkmayer would you mind going through the issues and PRs included in the milestone, and see if you'd like to include or exclude anything else?

Do we want to cut some bug fixes in favor of getting a new release out, or wait until they are fixed?
I prefer to get bugs fixed but if that pushes things out another couple weeks, it's getting too long since the last release. Anyone have strong opinions on the matter?

Given that the currently open bugs don‘t seem to be regressions since
0.31, but rather bugs that have been lurking for longer, I think I‘d be
fair to cut some of these from the scope.
Should we drop #907 and #955 based on this, and focus on getting #980,
#982 and #984 merged this week so we can cut the release on the weekend?
On Tue, Feb 27, 2018, at 1:49 PM, Matthew Mayer wrote:

Do we want to cut some bug fixes in favor of getting a new
release out,> or wait until they are fixed?
I prefer to get bugs fixed but if that pushes things out
another couple> weeks, it's getting too long since the last release. Anyone
have strong> opinions on the matter?
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/rusoto/rusoto/issues/988#issuecomment-368728689

That's the best approach, I think.
Drop from 0.32:

https://github.com/rusoto/rusoto/issues/907
https://github.com/rusoto/rusoto/issues/955

Merge:

https://github.com/rusoto/rusoto/pull/980
https://github.com/rusoto/rusoto/pull/982 (already merged ✅ )
https://github.com/rusoto/rusoto/pull/984

Once we fix the issues removed from 0.32 we could fix them and release 0.32.1 if needed.
I'll update the milestone to reflect these changes. 👍

We're down to the last two PRs! (#980 and #992)

@matthewkmayer all PRs are merged. Anything I can prepare for the release?

Okay, so I followed the steps in RELEASING.md and opened #994

Last step is to publish all the crates.

Starting the service publish script now...

🍾

@matthewkmayer the publish script finished, however some crates failed to publish due to lack of permissions. I checked some of them on crates.io, and it appears while the github:rusoto:owners group is authorized to publish, github:rusoto:rusoto is not.
The crates that failed to publish are:

rusoto_apigateway
rusoto_application_autoscaling
rusoto_athena
rusoto_batch
rusoto_budgets
rusoto_clouddirectory
rusoto_cloudhsmv2
rusoto_cloudsearchdomain
rusoto_codestar
rusoto_cognito_sync
rusoto_dax
rusoto_discovery
rusoto_efs
rusoto_glacier
rusoto_glue
rusoto_greengrass
rusoto_lex_models
rusoto_lex_runtime
rusoto_marketplace_entitlement
rusoto_mgh
rusoto_mturk
rusoto_polly
rusoto_resourcegroupstaggingapi
rusoto_shield
rusoto_workdocs
rusoto_xray

Published:

rusoto_apigateway
rusoto_application_autoscaling
rusoto_athena
rusoto_batch
rusoto_budgets
rusoto_clouddirectory
rusoto_cloudhsmv2
rusoto_cloudsearchdomain
rusoto_codestar
rusoto_cognito_sync
rusoto_dax
rusoto_discovery
rusoto_efs
rusoto_glacier
rusoto_glue
rusoto_greengrass
rusoto_lex_models
rusoto_lex_runtime
rusoto_marketplace_entitlement
rusoto_mgh
rusoto_mturk
rusoto_polly
rusoto_resourcegroupstaggingapi
rusoto_shield
rusoto_workdocs
rusoto_xray

Ran cargo owner --add github:rusoto:rusoto for all service crates. 👍

Great, I think we‘re done here! :tada:

@srijs any chance you can do the git tags per https://github.com/rusoto/rusoto/blob/master/RELEASING.md#git-tags ? Thanks! 😄

Oh, totally forgot — of course!
On Thu, Mar 8, 2018, at 9:47 AM, Matthew Mayer wrote:

@srijs any chance you can do the git tags per
https://github.com/rusoto/rusoto/blob/master/RELEASING.md#git-tags ?
Thanks! 😄
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/rusoto/rusoto/issues/988#issuecomment-371312624

@matthewkmayer created these two releases:

https://github.com/rusoto/rusoto/releases/tag/credentials-v0.11.0
https://github.com/rusoto/rusoto/releases/tag/rusoto-v0.32.0

💯
Looks all good now!


3.1 Schedule not working

I set up MothBox02 the past two nights and the scheduling was not what it should have been. I was expecting three photos (for HDR) every two minutes, for one hour starting at 7:30, 10:30, 1:30, and 4:30.
First off, 3 photos were taken every minute.
I started it manually at 6:25pm on the 4th of April, and it took photos every minute during the following time blocks, according to the file names (the file names are different from the photo metadata times, which I think are in UTC, another issue):
18:25 - 19:23
19:31 - 21:27     ----- this is strange, ran for two hours. A bunch of the photos are red because it was taking them while in my backpack between deployment sites.
22:31 - 23:29
[now the 5th]
1:31 - 2:29
4:31 - 5:29
19:31 - 20:29
22:31 - 23:29
[Now the 6th]
1:31 - 2:29
4:31 - 5:28
Seems alright, except when I picked up the MothBox at around 11:30 it was still running. You can see that the last photos taken on the 6th are black (in my backpack), and before that it's daylight.
Something went wrong with the clock between the morning and evening of the 5th, while it was deployed in the forest?
I would also be useful to automatically generate a CSV listing the file name, time, and folder of all the photos produced, and a summary of the time blocks those photos represent. There can be a script to update the csv based on the photos in the nightly saved folder, at the end of every night.

this is odd, let's look at it some more and see

schedules should work fine and tested in pi4 or pi5


Apex invoke throws Cannot find module '/var/task/index'

Operating system: Amazon Linux
Apex Version: 0.13.0

apex deploy asg --log-level debug
• couldn't read role from infrastructure: chdir infrastructure: no such file or directory
• loading functions in functions
• open                      env= function=asg
• loaded config             config=function.json env= function=asg
• deploying 1 functions
• deploying                 env= function=asg
• creating build            env= function=asg
• add file to zip           env= file=.function.json.swp function=asg
• add file to zip           env= file=main.go function=asg
• created build (3.6 kB)    env= function=asg
• fetching config           env= function=asg
• config unchanged          env= function=asg
• code unchanged            env= function=asg
• cleaning 1 functions
• conditional flush         above_duration=24h0m0s above_size=500 age=2h3m10.51732342s size=53
• close
apex invoke asg < event.json
⨯ Error: function response: Cannot find module '/var/task/index'
apex invoke asg --log-level debug < event.json
• couldn't read role from infrastructure: chdir infrastructure: no such file or directory
• loading functions in functions
• open                      env= function=asg
• loaded config             config=function.json env= function=asg
⨯ Error: function response: Cannot find module '/var/task/index'
and when I invoke the deployed lambda function  I see the following error in cloudwatch logs.
START RequestId: afcb6446-0589-11e7-9d7a-fd7ebb470fdd Version: 5
Unable to import module 'index': Error at Module.require (module.js:353:17) at require (internal/module.js:12:17)
END RequestId: afcb6446-0589-11e7-9d7a-fd7ebb470fdd
REPORT RequestId: afcb6446-0589-11e7-9d7a-fd7ebb470fdd	Duration: 0.54 ms	Billed Duration: 100 ms Memory Size: 128 MB	Max Memory Used: 16 MB
START RequestId: c709f186-058b-11e7-bdff-4de5a10a11bc Version: 5
Unable to import module 'index': Error at require (internal/module.js:12:17)
END RequestId: c709f186-058b-11e7-bdff-4de5a10a11bc

hmm very weird, it might be worth trying apex build asg > /tmp/test.zip and making sure that index.js is being added there

ah you should see https://github.com/apex/apex/blob/master/plugins/shim/shim.go#L21, are you maybe setting the runtime to something else? I need some better logging in there

apex build asg --log-level debug > out.zip
   • couldn't read role from infrastructure: exec: "sh": executable file not found in %PATH%
   • loading functions in functions
   • open                      env= function=asg
   • loaded config             config=function.json env= function=asg
   • creating build            env= function=asg
   • add file to zip           env= file=main.go function=asg
   • conditional flush         above_duration=24h0m0s above_size=500 age=10h36m34.7334832s size=16
   • close

The out.zip does not contain a index.js file.
The folder structure of source code is as below
cloudformation
event.json
project.json
functions
asg
main.go
function.json

Any luck figuring out the issue?

I just had the same problem but with python. Turned out that the default environment in my project is in nodejs but I'm creating a python module. So aws lambda was looking for js files and not the python files.
Should we put a check before uploading that if the directory doesn't include the the correct extensions for selected environment we throw a clear error while uploading? This would save some unnecessary headakes for ppl just starting to use apex, or them thinking that the module itself doesn't work correctly.

Hmm I think Lambda should error at the api level, it would be looking for index.handle if it were defaulted to node. Seems odd if it lets you upload a missing handler, I swear it used to error nicely.

Got something very similar on mac after a deploy.
{
  "errorMessage": "Cannot find module '/var/task/lib'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:276:25)",
    "Module.require (module.js:353:17)",
    "require (internal/module.js:12:17)"
  ]
}

Looks like apex create a zip in a way that will hide the real errors.
In my case, after creating the zip and uploading the zip myself, I was able to see the real error:
{
  "errorMessage": "Twit config must include `consumer_key` when using user auth.",
  "errorType": "Error",
  "stackTrace": [
    "/var/task/lib/index.js:57800:13",
    "Array.forEach (native)",
    "Twitter.module.exports.Twitter._validateConfigOrThrow (/var/task/lib/index.js:57797:17)",
    "new Twitter (/var/task/lib/index.js:57371:8)",
    "new NPMTwit (/var/task/lib/index.js:49388:17)",
    "getCacheObject.then.cacheObject (/var/task/lib/index.js:18738:21)",
    "process._tickDomainCallback (internal/process/next_tick.js:135:7)"
  ]
}

Any reason why we cannot see the real error when deploying with apex?

wtf, weirddd I have not run into that. If the AWS SDK checks for >= 400 the error should be bubbling in apex(1)


Support for more italic style & TypeScript .ts / .tsx

Fixes #4

Please share some before and after screenshots for .ts/.tsx file support.

I've removed the italic style on the punctuation. Was kinda annoying for me
Before

After

I will close this PR and create a new one, because I've reworked my fork quite a bit.


Seeds format of Hooks and Filters page

Thanks! every bit is super helpful 😄

Cheers! I hope to add more very soon.


Problems with code that outputs unicode

Firstly, this is a really useful tool, and a timely discovery for me.  Thanks.
For a function that outputs the unicode symbol for degrees an error is raised
 File ".../opt/miniconda3/envs/dev/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2146, in run_directive
   result = directive_instance.run()
 File ".../opt/miniconda3/envs/dev/lib/python3.8/site-packages/sphinx_autorun/__init__.py", line 73, in run
   out = stdout.decode(output_encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 186: ordinal not in range(128)

I hacked the offending line, changing 'ascii' to 'UTF-8' and that works fine.
Looking at doing this nicely in conf.py I would have thought that adding
autorun_languages['pycon_output_encoding'] = 'UTF-8'

would do the trick, but I get
NameError: name 'autorun_languages' is not defined

It looks like setup() makes this available, so now I'm confused.  All other sphinx extensions and their configuration are working just fine.
It would be good to document this encoding option.

Solved!
autorun_languages = {}
autorun_languages['pycon_output_encoding'] = 'UTF-8'

does the trick.  I thought the dict was already created, just need to initialise it.


fix: simplify the type

The CSV functions correctly for up to 100 columns. However, when the number of columns exceeds that, the following error is encountered.
Type instantiation is excessively deep and possibly infinite.ts(2589)

In that case, it is necessary to specify as follows.
const csv = 'many,columns,here';
parse<string>(csv);

import type { CSV } from "./web-csv-toolbox.ts";

const csv: CSV = 'many,columns,here';
parse(csv);

The main changes are as follows.

Type Split
This type is designed to split a string based on a specified delimiter. It incorporates complex logic to handle delimiters that appear within quoted segments (i.e., escaped segments).
Specifically, it has the following functionalities:

CSVSource: The string to be processed.
Delimiter: The delimiter character (default is a comma).
Quotation: The quotation character (default is a double quote).
Escaping: A boolean indicating whether the current context is within quotes. Delimiters within quotes are ignored.
Current: The character currently being processed.
Result: An array of fields that have been processed so far.

This type sequentially scans the input CSV string and adds fields to an array each time a delimiter appears. If a delimiter appears inside a quoted segment, it is treated as part of the field, and if a delimiter appears outside of quotes, it is added to the array as a new field.
Type CSVBody
This type recursively parses CSV format text while processing quotes and newlines, with the goal of extracting the body of the CSV.
Specifically, it has the following functionalities:

CSVSource: The string to be processed.
Quotation: The quotation character (default is a double quote).
Escaping: A boolean indicating whether the current context is within quotes.

This type scans the string one character at a time, switching the escape state upon encountering a quotation mark. While in the escaped state, it ignores newline characters (which signify a new line) and treats characters as part of the normal string until the quote is closed. When encountering the first newline outside of quotes, it returns the following string as the body of the CSV.

LGTM!


[Bug] Wrong response content-type getting the micro-lc-base.js file

Hi guys,
we noticed that the route /configuration/micro-lc-base.js returns correctly the javascript file, but with the wrong content-type:
$ curl localhost:3000/v1/microlc/configuration/micro-lc-base.js -v
*   Trying <IP_ADDRESS>:3000...
* Connected to localhost (<IP_ADDRESS>) port 3000 (#0)
> GET /v1/microlc/configuration/micro-lc-base.js HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.84.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< content-type: text/plain; charset=utf-8
< content-length: 135
< Date: Tue, 22 Nov 2022 10:58:19 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
<
...
...
...

As you can see, the content-type is set to text/plain instead of application/javascript.
For this reason, micro-lc doesn't work with some api-gateway.
Can you fix it?

Fixed in version 1.0.1


Add basic bzr support in the avit theme

I love oh-my-zsh, thanks for your awesome work!
I use avit theme (with some different colors) and I use often bzr, so I added a very basic support to vcs_info in the avit theme, trying to stick the avit style.
It does only two things:

print repo name and number of commit
report if there are local changes

I plan to investigate further to see if it's possible to add more things, but at the moment it's the best I can do, so I propose to merge this.
Thanks,
R.

This is a substantial change, since it's now using zsh's vcs_info support. Probably should be tested first.
local does not work in this context, since it's not inside a function call. If you really want them to be local, wrap that section in an anonymous function.
CC @avit; you're the theme's author. Comments?

You can extend the theme copying it as a custom theme. See Customization.


Cannot install DBeaver 22.3.0 from Eclipse Marketplace

Description
I am using eclipse 2022-12
I get these errors when trying to install DBeaver from Eclipse Marketplace
Cannot complete the install because one or more required items could not be found.
  Software being installed: DBeaver IDE <IP_ADDRESS>212070729 (org.jkiss.dbeaver.ide.feature.feature.group <IP_ADDRESS>212070729)
  Missing requirement: Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs 1.70.0.v20220105-1522 (org.bouncycastle.bcpkix 1.70.0.v20220105-1522) requires 'java.package; org.bouncycastle.asn1 [1.70.0,1.71.0)' but it could not be found
  Cannot satisfy dependency:
    From: DBeaver IDE <IP_ADDRESS>212070729 (org.jkiss.dbeaver.ide.feature.feature.group <IP_ADDRESS>212070729)
    To: org.eclipse.equinox.p2.iu; org.jkiss.dbeaver.runtime.feature.feature.group [<IP_ADDRESS>212070729,<IP_ADDRESS>212070729]
  Cannot satisfy dependency:
    From: DBeaver Runtime <IP_ADDRESS>212070729 (org.jkiss.dbeaver.runtime.feature.feature.group <IP_ADDRESS>212070729)
    To: org.eclipse.equinox.p2.iu; org.bouncycastle.bcpkix [1.70.0.v20220105-1522,1.70.0.v20220105-1522]

DBeaver Version
22.3.0
Operating System
Linux
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

Thank you for bug report.
It's a duplicate of #18475


Update README.md advising use of jquery-rails

Users running Rails 5.1+ are required to also add jquery-rails to their Gemfile otherwise missing jquery dependency occurs. The other Bootstrap 4 version already includes this instruction in its readme file here on line 47

👍 Thanks!


Show the cache file's path

Changes to the core

[x] Followed hacking.md.

When I install a cask , I hope the console can show the cache file's path, so  I can download the file by other download tool, and move it to the brew --cache directory after rename the filename as same as the cache file path.
My network is not good!!!

I disagree. Finding the cache and downloading stuff there via other means is not supported behaviour. It works, but it still not the recommended way to do it.
Clearly you found the workaround for this, and hence this brings no new actual value for you anymore. For other users, this has never been an issue.
If you want to find the cache, you run the well documented brew --cache command. Printing the cache’s path every single download is just noise for the vast majority of cases.

Thanks for your reply, but I think maybe you didn't understand what I meant. I will explain:

My focus point is the cached file's name(B in the image), not the brew cache path(brew --cache, C in the image). My need is  rename the file that I have downloaded by other tool to the cache path, use the right filename(B).
Why have I to do this? Because I have difficulty to  visit some foreign network directly, and most of the people in our country have the same problem.
OK, that's my explain, maybe it's not right.
Also thank you very much!

I see what you mean. Though I still disagree with this particular solution, I believe we may get an acceptable one. I’m reopening to gather feedback from other maintainers.
Outputting the path at every install is noisy information in most cases. However, what we could do instead is show the path if a download is interrupted. That way users can get that information when a download files (the case where it might be useful to know that) and you can get it when you ⌃C (which you’d have to do anyway).

Yeah! I agree with you. Thank you!

Yeah! I agree with you. Thank you!

In that case, care to update this PR to that?

Phrasing is awkward, maybe:
"\n Please retry the download or place the downloaded file at #{tarball_path}, and attempt the install again"

Since replacing the incomplete download and continuing the process is not something we want to encourage (again: “It works, but it still not the recommended way to do it”), we shouldn’t mention that possibility.
Something like: The incomplete download is cached at #{tarball_path}`.

LGTM

Thank you for the initial suggestion, the discussion, and making the changes, @l5oo00. Merged.

It is my pleasure.  Thank you very much!


if logging in with Google, we need the trip ID in order to render the dashboard.

If it's a brand new user, we need to make a new trip id. If it's a returning user we need to somehow get their trip id.


Dev stack

10h

Install Gitea Chart: https://artifacthub.io/packages/helm/gitea/gitea

Configure Admin user: https://gitea.com/gitea/helm-chart/#admin-user
Configure OIDC: https://gitea.com/gitea/helm-chart/#oauth2-settings
Configure metrics: https://gitea.com/gitea/helm-chart/#metrics-and-profiling

Install Coder: https://artifacthub.io/packages/helm/coder-v2/coder

Configure OIDC: https://coder.com/docs/v2/latest/admin/auth

Install Tekton via Kustomization referencing http downloads: https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md#remote-files

Pipelines: https://tekton.dev/docs/installation/pipelines/
Triggers: https://tekton.dev/docs/installation/triggers/
Dashboard: https://tekton.dev/docs/dashboard/install/
Buildpacks: https://buildpacks.io/docs/tools/tekton/#2-install-the-buildpacks-task

Define auto-build pipeline

Use this builder: https://github.com/paketo-buildpacks/builder-jammy-full

(Supports Poetry: https://paketo.io/docs/howto/python/#poetry)

Enable OpenTelemetry: https://paketo.io/docs/howto/app-monitor/#opentelemetry
Add global hook to Gitea via API: https://try.gitea.io/api/swagger#/admin/adminCreateHook
Configure pipeline to consume hook, clone repo, build & push to Gitea registry

Simplification:
Deploy act_runner alongside Gitea and enable Gitea Actions -> avoid Tekton for now.
⚠ This should only be used in the host cluster, as act_runner requires a privileged pod.


feat: add feature toggle for Care Services

Care Services are not supported on older models of Xiamoi Vacuum Robots and triggers errors in Homebridges console. This toggle allows users to disable the services.
Related issues: #475 and #366

@afharo can you help me with a review and a workflow check?

This is awesome! Thank you! Let me have a look at it today and I'll approve/merge and publish!

Published as version 0.21.0