Should we support Structs?

Right now, we support Maps, Lists and values in our data. What should happen if someone does:
table("people") |> insert(%Person{name: "Joe"}) |> run conn

Options are:

Treat it as a map. Downside: when we pull it back out of the database we won't be able to parse it into a map.
Mirror Poison's approach. Allow an as: Foo option to run that will parse the data into the correct struct.
Don't allow structs at all. You must convert it to a map before inserting.
Builder Pattern version of number 2 above. In the module where you define a struct, call use RethinkDB.StructSupport and it will define a Foo.parse that will set a flag in the %Query{} with the struct type that should be parsed.

I feel like 3 > 1 on grounds of explicit > implicit.
I feel like 4 requires 2 and is just a fancier syntax.
I think a combination of 2 and 4 should fit the pattern of everything else we're building. We provide the generic function and also provide a fancy macro solution to make things cleaner.

I like the #2 approach

Struct support would be very useful.

@clessg Could you give me a few examples of how you might use them?

Well, I'm new to Elixir, so I imagine having a User struct, for example.
But I suppose that structs are basically maps with a couple extra features, so there's no reason I can't just have a User module with functions that act on those maps. Would lose out on default attributes and pattern matching but it's probably not a big deal.
I'm happy with whatever is decided on!

So it sound like you would like to be able to insert a struct. That's easy
to do. You could either call Map.from_strict and then insert it or we can
make this library do that automatically.
How about reading from the db? What would you expect to do there? While
struct(User, data) works in theory, in practice keys in a rethinkDB
response are strings, not atoms, and would be filtered out. So something to
solve that would be handy.
On Thu, Sep 17, 2015, 4:54 PM Chris Gaudreau<EMAIL_ADDRESS>wrote:

Well, I'm new to Elixir, so I imagine having a User struct, for example.
But I suppose that structs are basically maps with a couple extra
features, so there's no reason I can't just have a User module with
functions that act on those maps. Would lose out on default attributes and
pattern matching but it's probably not a big deal.
I'm happy with whatever is decided on!
—
Reply to this email directly or view it on GitHub
https://github.com/hamiltop/rethinkdb-elixir/issues/45#issuecomment-141288138
.

Oh, yeah, you're right about that apparently. In that case, I think a way to serialize to and from a struct would be a good idea. I'm still new to Elixir so I don't really know what would be the most idiomatic way to do so, though!

How about a syntax like:
table("users") |> as_struct(User) |> run

What would it return?
Option 1:
%RethinkDB.Collection{data: [%User{id: ...}, %User{id: ...}])

Option 2:
[%User{id: ...}, %User{id: ...}]

Alternatively, the as_struct call could be moved to after run:
table("users") |> run |> as_struct(User)

That way, we don't need to change the semantics and return value of run.
Thoughts?

My understanding is that the stuff before run is typically part of a query sent to the database (?), so my initial inclination was to have the as_struct call after run.
But I'm not sure what would happen in the case of an error in the query. Also, it might be easier to perform optimizations with as_struct before run.

That's a good point. I could probably allow it anywhere in the query as
well as after run.
As far as inserting structs, any reason not to automatically call
Map.from_struct ?
On Fri, Sep 18, 2015, 6:31 AM Chris Gaudreau<EMAIL_ADDRESS>wrote:

My understanding is that the stuff before run is typically part of a
query sent to the database (?), so my initial inclination was to have the
as_struct call after run.
But I'm not sure what would happen in the case of an error in the query.
Also, it might be easier to perform optimizations with as_struct before
run.
—
Reply to this email directly or view it on GitHub
https://github.com/hamiltop/rethinkdb-elixir/issues/45#issuecomment-141452279
.

I see no reason not to have Map.from_struct called automatically, other than some potential initial confusion, but I doubt it's a big deal.

Another question around as_struct will be what to do when an unknown key is encountered. Should it error? or ignore it?

I think ignoring it makes the most sense. That's certainly what I'm used to in other languages, but Erlang/Elixir is definitely its own beast.

I think I'm convinced that Ecto query building doesn't make sense for this driver. However, I think validations and other aspects of Ecto will be useful. I think this issue ties in with that.
Perhaps a simple use RethinkDB.Model might be useful, which defines CRUD for the struct and auto parses it.

I think I'm going to add a protocol for RethinkDB.Encoder. It will include an encode and a decode function. It will also include a derive macro. This enables a few useful things:

cleans up internal code around handling arrays, functions, etc.
allows user to specify how to handle structs while providing sensible default via derive
an implementation for Changeset can be included in a rethinkdb_ecto.

Encode will be called by default, but decode will still need some user input about what to decode to. I'm still not sure about how to do a List of Structs. Maybe two functions, result_as and each result_as, where the latter expects the result to be a List and will decode each. A corner case that could be supported in result_as might be [TypeA, TypeB, TypeC] which would strictly mean expect a 3 element list and decode each element into corresponding types. It's a weird case, so probably not worth building. Alternatively we can just do result_as and if the return type is a collection we would apply decode to each element.
result_as can come before or after run in a query, but will execute after the result is returned.
Going to put this up in a branch.

As any though been given to create a project on top of this one to provide all the goodies so to speak that avoid some boilerplates ? In my opinion, the driver should try keep its focus rather narrow and its perimeter should be well defined.
Ideally, the project on top of the driver should provide:

Struct support (Schema definition with validation and constraints, similiar to Ecto.Schema & Ecto.Changeset)
Automatically create tables and indexes.
Associations (hasOne, belongsTo, hasMany and hasAndBelongsToMany)
Life-cycle callbacks
Query API must be composable and allow to tap into rethinkdb driver api seamlessly

When you look at the feature list, it's very similar to Ecto so I understand the desire to have an adapter for it. It seems however that a dedicated query DSL would be needed to properly leverage RethinkDB.

I'm currently exploring Ecto without Ecto.Query, will report on findings.
On Thu, Nov 5, 2015 at 1:23 PM Tlvenn<EMAIL_ADDRESS>wrote:

As any though been given to create a project on top of this one to provide
all the goodies so to speak that avoid some boilerplates ? In my opinion,
the driver should try keep its focus rather narrow and its perimeter should
be well defined.
Ideally, the project on top of the driver should provide:

Struct support (Schema definition with validation and constraints,
similiar to Ecto.Schema & Ecto.Changeset)
Automatically create tables and indexes.
Associations (hasOne, belongsTo, hasMany and hasAndBelongsToMany)
Life-cycle callbacks
Query API must be composable and allow to tap into rethinkdb driver
api seamlessly

When you look at the feature list, it's very similar to Ecto so I
understand the desire to have an adapter for it. It seems however that a
dedicated query DSL would be needed to properly leverage RethinkDB.
—
Reply to this email directly or view it on GitHub
https://github.com/hamiltop/rethinkdb-elixir/issues/45#issuecomment-154196828
.

Great to hear ! :+1:

@Tlvenn Can you take a bit of time and play with https://github.com/hamiltop/rethinkdb_ecto ? It's super minimal, but I think it accomplishes what we want. It should support all the callbacks and validation goodness you want.

Hi @hamiltop, sorry for the late feedback.
Thanks for exploring this and I will definitely play with it soon. Regarding the feature set, when I look at what is left there, I think there is still some value that totally apply to Rethinkdb.

Repo abstraction is interesting and useful concept.

Migration is very important, just because we use a schemaless DB does not mean we dont have to migrate our data when we decide to change the shape of our documents and we do have to create our tables and indexes.

Associations is very handy and can only be leveraged by a query DSL, using Reql to do that all the time is tedious especially when you have multiple joins going on.

The query API of Ecto is really nice to work with, the fact that it is composable is just awesome and so much to the core of Elixir and what FP is all about. I dont think Reql is so friendly in that regard and when you look at what the Ecto Query API, I bet it would address 90% of the use cases. The important part imho, is that for the remaining 10% you can tap into Reql specifically if you need to.

I started to use rethinkdb from node.js land, and neumino did a fantastic job creating a very performant driver for it and then on top of it, a light very useful ORM (https://thinky.io/) which gets the hassle and ceremony out of the way and yet when you need it, allow you to harness all the power of RethinkDB.
I believe Ecto could be a very valuable platform to do that for RethinkDB given that we find a way to elegantly still have access to Reql should we need it.
In any case, thanks again, will play with rethinkdb_ecto and I will report back.

Migrations are definitely necessary. That can be handled without Ecto.Query.
ReQL is pretty composable itself, though a little bit of capture/curry
magic is sometimes necessary.
Thinky looks like a great reference. I'm a little concerned they created a
while new ORM instead of hooking into an existing ORM. The analogous
approach in Elixir would be to not use Ecto and build something custom
tailored. I think I'll reach out to the Thinky creators and get their take,
as I'm sure they considered the possibility of using a more general ORM.
Joins/associations are an area of RethinkDB I'm lacking experience in. It's
also one of the areas I feel Ecto nailed (specifically forcing eager
loading). I'll have to play with it a bit.
Overall, I have some PTSD from ActiveRecord that keeps me from blindly
jumping into the Ecto boat. In Rails apps I've worked on, I've pretty much
converted anything significant over to raw sql for performance and
maintenance reasons. I'm probably biased by those experiences, so I greatly
appreciate my view being challenged.
On Thu, Nov 12, 2015, 02:49 Tlvenn<EMAIL_ADDRESS>wrote:

Hi @hamiltop https://github.com/hamiltop, sorry for the late feedback.
Thanks for exploring this and I will definitely play with it soon.
Regarding the feature set, when I look at what is left there, I think there
is still some value that totally apply to Rethinkdb.

Repo abstraction is interesting and useful concept.
Migration is very important, just because we use a schemaless DB does
not mean we dont have to migrate our data when we decide to change the
shape of our documents and we do have to create our tables and indexes.
Associations is very handy and can only be leveraged by a query DSL,
using Reql to do that all the time is tedious especially when you have
multiple joins going on.
The query API of Ecto is really nice to work with, the fact that it is
composable is just awesome and so much to the core of Elixir and what FP is
all about. I dont think Reql is so friendly in that regard and when you
look at what the Ecto Query API, I bet it would address 90% of the use
cases. The important part imho, is that for the remaining 10% you can tap
into Reql specifically if you need to.
I started to use rethinkdb from node.js land, and neumino did a fantastic
job creating a very performant driver for it and then on top of it, a light
very useful ORM (https://thinky.io/) which gets the hassle and ceremony
out of the way and yet when you need it, allow you to harness all the power
of RethinkDB.
I believe Ecto could be a very valuable platform to do that for RethinkDB
given that we find a way to elegantly still have access to Reql should we
need it.
In any case, thanks again, will play with rethinkdb_ecto and I will report
back.
—
Reply to this email directly or view it on GitHub
https://github.com/hamiltop/rethinkdb-elixir/issues/45#issuecomment-156070485
.

I explored migrations in Ecto and it looks like we have to support Ecto.Query for managing the schema_versions table. Everything else we can handle using the shim.
I reached out to the author of Thinky and he agrees that shoehorning ReQL into SQL is a waste and will cause confusion.
I think I'm close to satisfied with the idea of providing a RethinkDB.Ecto.Repo as a drop in replacement for Ecto.Repo. Just a few warts to sort out.
Anyone interested in becoming actively involved, this is a huge opportunity. I'd love a buddy on this.

Sounds good to me! I wish I had extra time to help, and also my Elxir is prob. not that good yet :smile:
I'd be more than happy to help out with testing. I'm using this in a slow moving greenfield app so i'm not too worried about the stability (worst case I could always fork it dev stops).
Changesets are the biggest feature for me! Such a great idea!

@hamiltop I'm very interested in becoming actively involved and being your 'wingman' on this. Based on your presentation, I think that we share a similar interest in helping make the integration between RethinkDB and Elixir/Phoenix as solid as possible. If you think it makes sense, I can start with some documentation, testing and examples? Then I'll aim to gradually get more actively involved from there.

@willykaram reach out to me via email. I'd love the help!


19,934 issues with unminified JavaScript and CSS files

this data is available in semrush to us now
if we want to investigate this further
it seems to be this file that's not minified, but it certainly looks minified, so i think im missing something
https://www.pulumi.com/js/bundle.eebd830139e39947cec80269c97947a7d710e4534c3f18b7c9189819c754bf54.js

there is now, 19,934 issues, but may have been that semrush wasn't reporting the rest until now
the file is def not minimized if you scroll a bit of the way down

gonna drop this from a milestone, we can revisit when time allows

@kimberleyamackenzie you mentioned you had an idea of how to fix this, I've asked the SEO agency to help out, could you post a comment with any info you have? thank you!!

moving to /docs since thats closer to where this prolly needs to be fixed; but may possible be an issue in pulumi-hugo


distinguish set and set! somehow

look at how ruote did it.

set local v.a: x, v.b: y, global, v.c: z
default would  be "local if it doesn't exist, at found level if it exists"

set v.a: 0, lv.b: 1, gv.c: 2


[RFE] Allow k3s/rke2 imported cluster management to be disabled

Is your feature request related to a problem? Please describe.
There are cases where a user may not want Rancher to deploy system-upgrade-controller (SUC) and the corresponding plans that upgrade K3s/RKE2 in an imported cluster. There is a workaround where setting the status.driver field on a clusters.management.cattle.io/v3 object before importing the cluster can short-circuit the logic that defines a corresponding k3sConfig or rke2Config, but this is not an ideal solution as it requires an intermediate step between creating the cluster and importing the cluster (because the cluster is created through a clusters.provisioning.cattle.io/v1 object in rancher, and the clusters.management.cattle.io/v3 object is created from this provisioning object.
Describe the solution you'd like
Add the ability to disable k3s/rke2 imported cluster management, both at a cluster-level (maybe through annotation) and at Rancher level (through feature flag)
Describe alternatives you've considered
N/A
Additional context
This issue is hit by many users, for example, see: https://github.com/rancher/rancher/issues/40974
Notes:

If/when it's implemented it's assumed that either version on the spec will be removed or will be kept up to date with the one on status - basically there should not be a discrepancy in K8s versions that can be found on the cluster object (removal of version on the spec may have larger consequences, especially on the UI).
UI will need to be updated as well to not allow version to be changed on Edit Cluster page in this case (debatable if we still want to show the version on the page for informational purposes, e.g. in disabled dropdown - possibly with explanation on why it can't be changed).
local cluster is also considered to be "imported" for the SUC-based upgrades functionality and thus should also be covered by this enhancement (i.e. it should be possible to disable RKE2/K3s version management for local cluster)

We are a Rancher Prime customer currently running about 27 environments were we are externally managing the RKE2-versions via Ansible and do not use the system upgrade controller.
The option to disable the version managment on Rancher level would benefit us greatly


Docker: Moved from Alpine Linux to Debian Buster

As mentioned in #3712, I've changed the Dockerfile to use python:3.9-buster. Some changes were required since the packages and user/group management are different in Alpine and Debian.
Docker Image was built and tested to be working on Manjaro Linux 5.10.15-1-MANJARO x86_64 20.2.1 Nibia

@Kriechi Could you please review my comments? I realise that my previous PR and current one have been bundled up. But I'll be sure to use different branches for different commits/issues now.
Apart from that I've added the requested changes.


Use the same symbol for PrimUndefined

We generated a new symbol each time using gensym, but I don't think it's necessary. Now just using 'purs-undefined.

Was originally added to track unimplemented stuff I think but LGTM

Oh I see, so it wasn't for PrimUndefined but for "not implemented". Then I'd like to be more explicit about the use case here and use something else than 'purs-undefined. I updated the PR to just use 'undefined'. I think we could also use something like '__unused, but not sure.

+1 for being explicit about it being for unimplemented stuff. No preferences about the name as long as it's more explicit than it is at the moment

+1 for being explicit about it being for unimplemented stuff. No preferences about the name as long as it's more explicit than it is at the moment

It's not for unimplemented anymore, I think it's only used for an unused value being passed around to thunks.

Using 'undefined for now to map to PrimUndefined.


chore(logging): adding product prefix to region tags to enable tracking

I assume this will be followed up by a PR to remove the old prefixes?

Yes — I'll send a CL to update any sample includes and then follow with a PR to remove the obsolete ones. Thanks for checking!

See (draft) PR here: https://github.com/GoogleCloudPlatform/php-docs-samples/pull/1736 (will submit for review once CL is submitted).


multiple layers running in parallel on same input

@sergojin has a use-case for multiple dense layers running in parallel on the same input and producing multiple outputs.
Two example keras models are here:
https://github.com/hls-fpga-machine-learning/hls4ml/tree/multiple_layers/keras-to-hls/fromSergo
And a working HLS project made by hand from the ".5" model is here:
https://github.com/hls-fpga-machine-learning/hls4ml/tree/multiple_layers/keras-to-hls/my-hls-test-modified
The final layers run in parallel on the output of the previous layer, and their output is merged to form the result.
What is needed is the hls4ml translation part.  Right now we assume the output of each layer is input to only one layer, with the order taken from the order in the json file.  @sergojin and @nhanvtran found we can use the inbound_nodes of the json to map the layers to each other.

Note inbound_nodes doesn't exist for Sequential models


PLAT-72724: qa-sampler VirtualList update lifecycle

Enact-DCO-1.0-Signed-off-by: YB Sung<EMAIL_ADDRESS>Checklist

[X] I have read and understand the contribution guide
[ ] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[X] Documentation was added or is not needed
[ ] This is an API breaking change

Issue Resolved / Feature Added
UNSAFE_componentWillReceiveProps  will be deprecated.
Resolution
Replaced UNSAFE_componentWillReceiveProps  with getDerivedStateFromProps.
Links
PLAT-72724

LGTM!


Show header with program's metadata

It would be good if the program showed a header every time it runs where one can see a link to this github page, so that when a person who does not know what program this is runs the executable, he can refer to this Github project page to read the README

https://github.com/bitalizer/db-migrator/commit/023bf1f4ab37cf77dd7d35e816764c05141eee93


[main] Upgrade to latest dependencies

release -matzew
/cc knative-sandbox/ux-writers
/assign knative-sandbox/ux-writers
Produced by: knative-sandbox/knobots/actions/update-deps
Details:
bumping knative.dev/client 8b8b565...530841f:
  > 530841f Use istio stable intead of latest (# 1549)

/lgtm
/approve


Fix silent failure when browser open doesn't work

The solution in #211 doesn't work, because the error is thrown by the child process returned by the open function, not by the open itself.
Tested with GitHub Codespaces.

You can try the fix by using wrangler@alpha. We'll eventually do a beta release, probably early next week.

Nice, my fix works with wrangler@alpha. I did, however, get this error with alpha:
Cannot find package '@miniflare/core' imported from /workspaces/finite.photos/node_modules/wrangler/wrangler-dist/cli.js Running npm i -D @miniflare/core fixed it.
Looks like that came in with #186 , but the @miniflare/core package wasn't added to package.json.

Thanks for the catch! This might be because of https://github.com/cloudflare/wrangler2/pull/264. I'll fix this tomorrow.

miniflare/core is a dependency of miniflare, so it should not need to be directly added to the wrangler package.json nor your own project. I just updated a project to wrangler@alpha and all these deps were there. I wonder if your node_modules just got a bit corrupted when you updated to alpha?


Refine Variable Naming, Remove Duplicate Step, and Add Graph Title

Fix variable naming from id to job_id
Remove step 4 due to duplication
Add a title to the graph

[Minor Changes] While going through the AutoML_with_Sklearn notebook, I removed the output that contains Romain's name

Thank you for the edits @kentrachmat! The PR was merged and should appear in the next hour on our website.


Bundle all files into a single binary

All the templates are compiled in, but static files aren't.  How can I compile them into the binary?

github.com/markbates/pkger


Exporting to markdown when table cell contains "|"

I'm using docling to load documents and then export_to_markdown. My data has many tables and I've discovered that some contain the "|" character, breaking the table structure. So I thought, docling should surely escape those when exporting. Or at least offer an option to do so (if not by default).
I see there is another open issue mentioning this.
I considered contributing, but am unsure of where a change like that could fit in. Perhaps adding a boolean escape_breaking parameter here and then replace any occurences of "|" with regex. Perhaps that is too crude. Any docling-core developer that could point me in the right direction?
Kind regards,

@isakcodes Thanks for reporting this issue and your willingness to contribute!
Indeed, the problem you reported is being addressed in #61 .
Also note that we are leveraging the tabulate library, which also has an issue in this direction: https://github.com/astanin/python-tabulate/issues/241

Duplicate of #61


Add Protocol.SHOUTCAST to distinguish Shoutcast protocol from Request ob...

Shoutcast protocol is handled by HTTP_1_0 protocol. So there are no ways to distinguish HTTP/1.0 and Shoutcast protocol from the application.  Some application needs to distinguish them.
The Pull Requests add Shoutcast protocol to distinguish them.

Just curious... why do you need to differentiate? Is it possible to fix your server to do a proper HTTP/1.1 status line? (The ICY thing is obsolete so far as I know.)

My app is HTTP proxy.  I uses okhttp to requst HTTP server.
User-Agent  <---> Proxy <---> HTTP server
If HTTP server is Shoutcast server, the proxy want to receives Shoutcast protocol and then response the Shoutcast protocol. Therefore I want to distinguish the protocol whether it is Shoutcast or HTTP.

What happens if you upgrade ICY to HTTP? My guess is that your clients don't break!

If I sent HTTP instead of ICY, the client can accept the data.  The client (typically it is music player) plays the stream with noise, because I guess the client ignores some of important header in Shoutcast.

Noise? Like audible noise? That's amazing, I have no idea how that would be possible.
Right now I think I have to reject this because it's just such a corner case. I don't want everyone using OkHttp to be exposed to weird and obsolete ICY stuff. Especially since that won't be coming with us to the future with http/2.
Sorry & I hope you understand where I'm coming from.

Yes, it's audible noise.
I see your decision. Thanks for giving me your feedback.


WIP: Wrote pod ps, rm, create, start. Added tests, man page and completions.

These commands were the minimal functionality needed to test any of them, so I waited to create PR until each were totally finished.
A pod can now be created, started, listed and removed.
Signed-off-by: haircommander<EMAIL_ADDRESS>

Some of the flag names I am a bit iffy on, so I'm labeling this as a WIP for now.
These are the my main name convention ponderings:
podman pod ps has the flags --ctr-names, and --ctr-ids
podman pod rm --rmctr is the way to remove containers as well
podman pod start has no flags as of now (I have been wondering if it is possible to attach a container after starting but I haven't figured that out yet)
podman pod create has cgroup-to-ctr, cgroup-parent and podidfile
Other things I'm not sure about:
The man pages are having trouble with subcommands. I can view with
man podman-pod-rm
but currently
man podman pod rm gives me podman pod and rm seperately.
I'm not totally sure what should be included as default in podman ps
and podman ps format is difficult with the complete name ({{.ContainerNames}} for instance)
@mheon @baude @TomSweeneyRedHat @umohnani8 @rhatdan I'd love feedback please :)

I don't think attaching to a container after starting a pod makes sense - we potentially have many containers in a pod, so which would we attach to?

ps should probably include the status of containers in the pod - how many are stopped, running, created, paused, etc.

@haircommander I think it would be better to break this PR into several PRs to make them easier to review and track.

I think create/start/rm can safely be in one PR. There aren't many flags to debate, and the code should be relatively simple (build a set of pods to operate on, and invoke the appropriate API on the pod end). ps probably deserves separate handling.

bot, retest this please

bot, retest this please

@haircommander Rebase this now.

closed because a new PR will be made for start and stop


Added affinity group management support.

This PR depends on the SQL client naming fix: https://github.com/Azure/azure-sdk-for-go/pull/177

I'm not sure how it passed the build earlier, but looks like:
management/sql/client.go:30:6: type SqlDatabaseClient should be SQLDatabaseClient

can you fix this in this PR as well, otherwise this will keep failing too.

@ahmetalpbalkan: fixed

@ahmetalpbalkan: I split up the SQL client naming fix: https://github.com/Azure/azure-sdk-for-go/pull/177

@aznashwan there's merge conflicts now due to commit 167d321, can you get rid of that one in this PR and re-push to your repo?

@ahmetalpbalkan: Should be good now. Thanks for your patience :smile:

Thanks LGTM.


Add metrics validation

Add:

[ ] a registration of the metrics to each task
[ ] a generic validation task that can apply assertions to the registered metrics against a set of defined variables giving the expected metric outcomes

For example: register the number of asset assignments created by the relationship task; have this checked against a user-provided variable specifying the intended number of asset assignments that should be applied (if the two are equal, the load was successful; if not, something went wrong).

Or as an alternative, possibly more robust check: have a generic query task which can be provided arbitrarily complex criteria in order to simulate the IGC query, and does the validation based on the numTotal results that the query returns vs the expected number of results.
(Therefore always checks against the end-state, irrespective of whether there were updates or not as may be the case due to idempotency and optimisation avoiding doing duplicate work.)


Added cover to twitter card

I'm new to Hugo's not quite liquid language, could you please review this?

I just read Twitter's docs for cards and realized that Twitter uses the OpenGraph image. Sorry!


Update Sitecore.FakeDb.AutoFixture Nuget reference to AutoFixture

The Sitecore.FakeDb.AutoFixture Nuget package references AutoFixture versions between 3.0 and 4.0. Current AutoFixture version is 4.2.0.

Implemented by @Tchami in #199 and released as v2.0.0-alpha1.


Revert from Python 3.8 to Python 3.7

We would like to support everything 3.7+, so build time deps should be changed.

Fixed on branch cleanup-animations, will need more testing

Fixed and pending merge - PR #20


remove unnecessary import

org.apache.avro.generic.GenericArray is not used anywhere in this file

What is the purpose of the change
(For example: This pull request improves file read performance by buffering data, fixing AVRO-XXXX.)
Verifying this change
(Please pick one of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Extended interop tests to verify consistent valid schema names between SDKs
Added test that validates that Java throws an AvroRuntimeException on invalid binary data
Manually verified the change by building the website and checking the new redirect

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

org.apache.avro.generic.GenericArray is not used anywhere in this file

Can references to GenericArray be output by any method called from this file?
I suspect they cannot, because java.util.List is used instead:
https://github.com/apache/avro/blob/fd1433954f8344ffa433a42734e0dce1cd71deea/lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java#L836-L837

I am not entirely sure because, just getting familiarized with the code base. In a generated class I double-checked any existing references to that class. None found

pinging @KalleOlaviNiemitalo, just to follow up this PR

I did a quick double check of the codebase.
The mentioned schema.getElementType() returns something which is a Schema and GenericArray is not a Schema (it is a List and a GenericContainer).
So that specific line will not be a reason to keep it.
However looking at the commit that introduced it I do see this for example: https://github.com/apache/avro/blob/d143d6262f7d6c688e695d1656f8609605835604/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm#L668-L673
I'm not 100% sure but to me it seems possible this can happen if someone creates a (custom) logical type that uses this as the underlying javaType.
If this is correct I do not want this change, I would rather have a demonstration that shows a usecase as part of the tests.
@Fokko @opwvhk @martin-g WDYT?

Ok, thanks for the check. This change is good then.


Invalid site URL

I get the error message: "Invalid site URL".
The URL works fine in the web browser.
I have tried with both http and https.

This is due to the fact that the extension only has permissions to access heroku websites. This will be fixed soon, and support for azure websites (in addition to all custom websites) will be added.

Support for azure websites (and all non-heroku websites) added in 1.1.5


Explore whether to have a headless option for advanced tech stacks - added [done]

eg building an implementation on Docker for Linux without displays / Xvbf
source - Allan

This is added in v1.34, available with pip install rpa --upgrade
Headless mode can be enabled with r.init(headless_mode = True).
For headless mode, chrome_browser parameter needs to be True (default).
Validated with following -
r.init(headless_mode = True)
r.url('https://www.google.com')
r.type('//*[@name="q"]', 'decentralization[enter]')
print(r.read('result-stats'))
r.snap('page', 'results.png')

Thank you.

can rpa deploy online like a service?


cpp: force static functions

Currently, the exported function is made static if its first argument is of a different type than its expected surrounding class (determined from the function name prefix).
There are "constructing" functions which make more sense as static rather than as instance functions, but with current generator it seems impossible to make them static. In particular, space construction:
isl_space_map_from_domain_and_range(isl_space *, isl_space *) makes more sense if translated as
isl::space::map_from_domain_and_range(domain, range) and not as domain.map_from_domain_and_range(range).  Same goes for, e.g., isl_space_set_from_params.
I would suggest an extra tag __isl_export_ensure_static that forces the generator to produce a static function even if the function would be instance function otherwise. The danger here is to avoid a mixup with all the implicitly static functions with only __isl_export.

Good point. I have seen it also for isl::space::map_from_domain_and_range.
An alternative name could be:
__isl_constructor_static

I was thinking about that name but wouldn't that require to replace all
already existing __isl_export that actually create a static
constructor with __isl_constructor_static ?
On 25/09/17 10:08, Tobias Grosser wrote:

Good point. I have seen it also for isl::space::map_from_domain_and_range.
An alternative name could be:
__isl_constructor_static
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PollyLabs/isl/issues/22#issuecomment-331807395,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABcTa3tvqwIrqnm_sXxD-Vd_2MvJ-4k9ks5sl19ogaJpZM4PiUvW.

Why? If you want to make it more explicit, what about:
__isl_constructor_ensure_static
I think the best is to submit a patch to isl and discuss with Sven. No need to have two bikesheding discussions.


Any idea why all languages stats grow quickly during the last months?

Hi, thanks for this useful script. Any idea why all languages stats grow quickly during the last months?

Hi,
The total number of GitHub's projects really grows exponentially.
I think the answer is here:
https://octoverse.github.com/#organizations
I will improve my graph by adjusting with the total number of projects.  That way we will have a constant total value with a repartition between languages.


BMW 1 Series 2018 NBTEVO ID5/6

Followed the readme. and opened MyBMW and the AA app while car was running. It recognised the Bluetooth, but wouldn't connect to my car.
What am I doing wrong??

Good evening! Hard to say for certain what you are missing:
Does your car show the Apps option when pairing your phone? If not, you probably need to activate the ConnectedDrive subscription.
Have you granted MyBMW all of the available permissions, so it can communicate to the car over Bluetooth? MyBMW is the part that lights up the Apps checkbox in the car, and that needs to be working before AAIdrive will connect.

Thabk you for the reply,
New phone, didn't check for permission access. I've changed that now.
Previously when connecting via Bluetooth (on media for music) I was given contacts, audio and a box for apps. I'm hoping I'll see this again.
Everything is fully updated now.
🤞

Sounds like it's working :)


PreferenceDefault should apply globally

@PreferenceDefault annotated fields should apply the field as a default value for the entire application, not just for the class it's contained inside.
This implies a strict requirement that they have public static modifiers.
We should also add a mechanism for specifying the preference file that they apply to.
e.g.:
@PreferenceDefault(value = "notifications_led", prefsFile = "notifications")
public static final boolean USE_NOTIFICATION_LED = true;

I've opted to forego implementing the prefsFile option, as it may lead to unintended bugs when migrating between SharedPreferences files.
I'll consider including the feature if requested by any users.


Refactoring Edge Removal

Pull Request
Title
Removing Microsoft Edge similar to how users in the EU would be able to
Type of Change

[ ] Refactoring

Description
Fixing Edge removal to trick the computer to think that the user is in the EU and is allowed to remove it. When running the Remove Edge tweak there will be a pop up from Edge asking the user if they want to uninstall and clicking Uninstall will remove Edge. This only removes Edge and keeps WebView2 and is how Microsoft would have users in the EU remove Edge and this shouldn't break users from being able to reinstall it if they want it again
Testing
Tested on fresh windows installs with Edge installed
Impact
[Discuss the impact of your changes on the project. This might include effects on performance, new dependencies, or changes in behaviour.]
If edge is the only browser installed you wont have a browser so installing another browser beforehand is highly reccommended
Issue related to PR
[What issue/discussion is related to this PR (if any)]

Resolves #2485

Additional Information
Tested this in the US only but I would imagine this should work in other countries.  Code might not be the prettiest as this is my first pull request but I think this way of removal is much better than the previous as you are tricking your system into thinking your in the EU and allowing your system to use the built in Edge uninstaller instead of force removal that can break things especially trying to reinstall.
Checklist

[ *] My code adheres to the coding and style guidelines of the project.
[* ] I have performed a self-review of my own code.
[* ] I have commented my code, particularly in hard-to-understand areas.
[ *] I have made corresponding changes to the documentation.
[* ] My changes generate no errors/warnings/merge conflicts.
If you run Remove Edge tweak again after Edge is removed there will be a error saying it can't find setup.exe because Edge is already removed

This is not a way to remove MS Edge from a computer. So this will not be accepted.

Hey @Linget0
In addition to what @Real-MullaC said;

you should not make your changes in the winutil.ps1 file, nor create a winutil1.ps1


[BUG] I have a problem with reading the QR code; it does not appear

I don’t have much experience in finding solutions since I’m not a developer. This is the error that appears to me when I try to troubleshoot the problem

0|whatsbot |   requireStack: []
0|whatsbot | }
0|whatsbot | Error: Cannot find module '/www/wwwroot/app.whatsbot.me_new/wa_server/app.js'
0|whatsbot |     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
0|whatsbot |     at Function.Module._load (node:internal/modules/cjs/loader:833:27)
0|whatsbot |     at Object. (/www/server/nodejs/v16.18.0/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
0|whatsbot |     at Module._compile (node:internal/modules/cjs/loader:1155:14)
0|whatsbot |     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
0|whatsbot |     at Module.load (node:internal/modules/cjs/loader:1033:32)
0|whatsbot |     at Function.Module._load (node:internal/modules/cjs/loader:868:12)
0|whatsbot |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
0|whatsbot |     at node:internal/main/run_main_module:22:47 {
0|whatsbot |   code: 'MODULE_NOT_FOUND',
0|whatsbot |   requireStack: []

I hope someone can help me by explaining things step-by-step, considering that I am not a developer. Thank you very much
I will attach a picture of what appears in place of the QR code

Change Version Of WA Socket To This Version
It Work For Me
makeWASocket({   auth: state,   version: [2, 3000,<PHONE_NUMBER>], });

What are the steps, please?

What are the steps, please?

change and add ur client connection at makeWASocket, the example :
makeWASocket({
printQRInTerminal: !pairing,
version: (await (await fetch("https://raw.githubusercontent.com/WhiskeySockets/Baileys/master/src/Defaults/baileys-version.json")).json()).version,
isLatest: true,

I'm trying now


feat(metadata): include hashed account unique identifier

Closes #333
Uses SHA-224 as a sufficiently fast (my laptop achieves a throughput of over 2 million hashes per second, according to JMH) hash function (that doesn't require adding a new dependency) with resistance to collision attacks, preimage attacks, and length extension attacks, so that the underlying account identifier is not revealed (just in case other third party applications use this identifier as auth). If SHA-224 is not available (i.e., user has a very exotic JVM), dinkAccountHash is not specified.

We could use https://static.runelite.net/api/runelite-api/net/runelite/api/events/AccountHashChanged.html and just apply our own hash when it changes

Yeah we can cache the dink hash if the extra memory is worth the compute savings

Also random question: Is there a case where a user uses a non-discord dink URL but doesn't want their account hash shared? I think no but maybe someone else thinks differently

Only possibility is that a user wants to reset their profile on a third-party service that tracks dinkAccountHash (but doesn't natively offer a reset function), and continue using that service with a fresh slate... so much so that the user is willing to change their in-game name to accomplish this. Seems far fetched?

could the sha224 function just be a dinkHash function, comment stating that it's sha224 with a salt, so the usages of it doesn't have to do the offsets themselves?

Done & changed "offset"/constant-salt with padding

for using the accounthashchanged, I see it as more of a benefit of "readability", where we use the built-in event to make sure sure the value is always up-to-date based on what runelite tells us\

Currently we do Client#getAccountHash on every notification, which will always retrieve the most up-to-date value.
We can integrate accounthashchanged, but can't completely remove Client#getAccountHash since people could disable dink, change account, and enable dink again (so we'd miss the accounthashchanged event)

riiiiiiight, that's fair
I was thinking we might be caching the value in the body or something - I didn't read the full context of the enrichBody call
should be good as is then, unless anyone can come up with a non-crazy reason people would want to hide their hashed account hash

Sample payload
{
  "type": "LOGIN",
  "playerName": "FerrousDink",
  "accountType": "HARDCORE_GROUP_IRONMAN",
  "dinkAccountHash": "ee819b5a889088df2222ec18e04aa211ecd342c4700dfd8b2703295c",
  "groupIronClanName": "Dink QA",
  "extra": {
    "world": 430,
    "combatAchievementPoints": {
      "completed": 0,
      "total": 1884
    },
    "achievementDiary": {
      "completed": 0,
      "total": 48
    },
    "achievementDiaryTasks": {
      "completed": 0,
      "total": 492
    },
    "barbarianAssault": {
      "highGambleCount": 0
    },
    "skills": {
      "totalExperience": 1867,
      "totalLevel": 36,
      "levels": {
        "Hunter": 1,
        "Thieving": 1,
        "Runecraft": 1,
        "Construction": 1,
        "Cooking": 2,
        "Magic": 1,
        "Fletching": 1,
        "Herblore": 1,
        "Firemaking": 1,
        "Attack": 1,
        "Fishing": 1,
        "Crafting": 1,
        "Hitpoints": 10,
        "Ranged": 1,
        "Mining": 1,
        "Smithing": 1,
        "Agility": 1,
        "Woodcutting": 1,
        "Slayer": 1,
        "Defence": 1,
        "Strength": 3,
        "Prayer": 2,
        "Farming": 1
      }
    },
    "questCount": {
      "completed": 0,
      "total": 158
    },
    "questPoints": {
      "completed": 0,
      "total": 300
    },
    "slayer": {
      "points": 0,
      "streak": 0
    }
  }
}


Can CIRIquant be used with single-end data?

The arguments of the CIRIquant seem to anticipate solely pair-end data.

CIRIquant only supports paired-end RNA-seq data as input.

Is there an algorithmic reason for that. Like something that CIRI_AS does.

Hi, @stiv1n . We believe that single-end RNA-seq is becoming out-of-date, so no entry for single-end data was implemented in the current version.
In theory, the CIRIquant strategy can be also applied to single-end data, but still need comprehensive evaluation. Maybe I will add this feature in the future.


Move code.gitea.io/gitea/modules/log to code.gitea.io/log as a standalone package

This PR will move code.gitea.io/gitea/modules/log to gitea.com/gitea/log as a standalone package so that other projects (i.e. tea) could use the log package but not import all the gitea packages.

Codecov Report

Merging #6970 into master will decrease coverage by 0.64%.
The diff coverage is 60%.

@@            Coverage Diff            @@
##           master   #6970      +/-   ##
=========================================
- Coverage   41.84%   41.2%   -0.65%
=========================================
  Files         443     428      -15
  Lines       60158   58936    -1222
=========================================
- Hits        25176   24286     -890
+ Misses      31692   31401     -291
+ Partials     3290    3249      -41

Impacted Files
Coverage Δ

models/unit.go
62.16% <ø> (-5.41%)
:arrow_down:

models/repo.go
49.55% <ø> (ø)
:arrow_up:

modules/migrations/migrate.go
23.35% <ø> (ø)
:arrow_up:

models/u2f.go
63.15% <ø> (ø)
:arrow_up:

models/admin.go
81.63% <ø> (ø)
:arrow_up:

models/branches.go
51.33% <ø> (ø)
:arrow_up:

models/migrations/v45.go
0% <ø> (ø)
:arrow_up:

models/repo_branch.go
53.39% <ø> (ø)
:arrow_up:

routers/repo/setting.go
9.34% <ø> (ø)
:arrow_up:

modules/util/url.go
70.27% <ø> (ø)
:arrow_up:

... and 131 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8a343dd...248a0e2. Read the comment docs.

Ready to review.

If we can get #6993 in first we can get rid of the gitlog weirdness too.

@zeripath rebased

Thanks @lunny.

I wonder if gitea could switch to https://github.com/go-logr/logr which defines a logging interface. Then you can plug in https://github.com/uber-go/zap using https://github.com/go-logr/zapr . zap is a very high perf logging library and this logr is getting used in the Kubernetes project.
I wonder if Gitea really needs to maintain its own logging library.

@tamalsaha I don't think Gitea should maintain a logging library itself except no logs could satisfy it's requirements.

Is there any issue or doc that explains what are the required features? Or some doc that explains the limitation of other logging libraries?

@tamalsaha I think we have no. Only have docs about logging https://docs.gitea.io/zh-cn/logging-configuration/

I will close this since it's difficult to rebase the PR.


success callback context

Hi,
i want to trigger an action via the success callback, so i in my component i did the following:
{{drop-zone url="http://localhost/upload" success=uploadSuccess}}
The 'uploadSuccess` function gets called as expected, but loses the context of my wrapping component. Is there anyway to access my component / ember app?

Can you provide an example?

Something like this:
UploadFieldComponent = Ember.Component.extend({
  uploadSuccess: function(file, response) {
    console.log('this', this);
    console.log('file', file);
    console.log('response', response);
  }
});

and in the template the line from above:
{{drop-zone url="http://localhost/upload" success=uploadSuccess}}
When i upload a file the file and response objects are what i expected, but this refers to the dropzone-js context, which also makes sense, since the uploadSuccess function is just passed through to dropzone-js. Is there any way to access the response object in my Ember Component? My API Server sends an Image ID after processing the upload, which i'd like to use in my Ember App.
Thanks in advance.

Try doing the function like so:
UploadFieldComponent = Ember.Component.extend({
  uploadSuccess: Ember.run(this, function(file, response) {
    console.log('this', this);
    console.log('file', file);
    console.log('response', response);
  })
});

This is an ember thing, the addon has nothing to do with it.

When I do this - the uploadSuccess function is called once when the page loads and that's it? It never gets called again? How can I do this?

If i add another callback for something like fileadded that isn't using ember.run this works  - seems like there could be a bug?


Make sure to require "rubygems" explicitly

What was the end-user problem that led to this PR?
The problem was some setups have --disable=gem in RUBYOPT, and sometimes use bundler without modifying that env.
What was your diagnosis of the problem?
My diagnosis was that we shouldn't break those setups just to save a require.
What is your fix for the problem, implemented in this PR?
My fix is to add a require "rubygems" on top of the file that needs it.
Fixes #7487.

@bundlerbot merge

@bundlerbot merge

Hi @deivid-rodriguez
Adding require "rubygems" seems to cause "circular require".
https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu1604/ruby-master/log/20191225T003005Z.log.html.gz
[ 9196/20853] TestGem#test_looks_for_gemdeps_files_automatically_on_start/home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/core_ext/kernel_require.rb:72: warning: /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/core_ext/kernel_require.rb:72: warning: loading in progress, circular require considered harmful - /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems.rb
	from <internal:gem_prelude>:1:in  `<internal:gem_prelude>'
	from <internal:gem_prelude>:1:in  `require'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems.rb:1417:in  `<top (required)>'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems.rb:1203:in  `use_gemdeps'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/user_interaction.rb:47:in  `use_ui'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems.rb:1204:in  `block in use_gemdeps'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/core_ext/kernel_require.rb:72:in  `require'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/core_ext/kernel_require.rb:72:in  `require'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/bundler.rb:11:in  `<top (required)>'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/bundler.rb:11:in  `require_relative'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/bundler/rubygems_integration.rb:3:in  `<top (required)>'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/core_ext/kernel_require.rb:72:in  `require'
	from /home/hsbt/chkbuild/tmp/build/20191225T003005Z/ruby/lib/rubygems/core_ext/kernel_require.rb:72:in  `require'

Some tests of rubygems output the warnings.  They are just warnings, so not critical, but I hope it is fixed.  Maybe require "rubygems" unless defined?(Gem) will fix, I guess.

Thanks for fixing this @mame :purple_heart:. I didn't consider this could introduce circular require warnings.


Plugin 'Cython.Coverage.Plugin' did not provide a file reporter

Ran into the following issue (snippet below) with this relatively simple (in it's current stage a stub) library.
$ coverage report -m
Plugin 'Cython.Coverage.Plugin' did not provide a file reporter for '/home/travis/build/jakirkham/cybuffer/src/cybuffer.pyx'.
The command "coverage report -m" exited with 1.

Using Python 3.7.0, Cython 0.29, Coverage 4.5.2, and pytest 3.10.1. Also saw this on Python 2.7 and Python 3.5-3.7 with other dependencies at the same version. More details available in the build logs.

Was missing this line.
This fixes the failure, but does not report any coverage for the Cython file. Will save the latter discussion for another issue.
coverage run --append --source . setup.py build_ext --inplace

ref: https://travis-ci.com/jakirkham/cybuffer/jobs/158609206#L903


Correcting app channels tests for current context

An app channel test was relying on the same behavior as user channels in an area where they differ.
App channels do not auto-broadcast current context to apps that retrieve them and add a context listener. Instead, they have a getCurrentContext function which should return either the most recent context or (if a type is specified) the most recent context of that type. This PR replaces teh incorrect test with two tests for the getCurrentContext function.
This PR also corrects language used in comments and test output (you don't join app channels, you retrieve them)

@Joe-Dunleavy apparently can't add you as a reviewer.
As I merged your other PR, here's a PR to resolve the remaining incorrect test

@Joe-Dunleavy apparently can't add you as a reviewer. As I merged your other PR, here's a PR to resolve the remaining incorrect test

Thanks for clarifying. LGTM


Provide AppEngine SDK jars

The Cloud SDK includes a set of jar files for AppEngine apps that are necessary for configure project classpaths in IDEs. Rather than explicitly configure them in code, the library should return a list of jars with metadata required by the IDEs.  For now, it could answer a set of ClasspathDetails objects that includes URIs for the binary jar, javadocs, and source, and whether it is considered intrinsic (and shouldn't be included in the deploy).

+1

do we want this returning maven central info?

I am not sure I would push this into the library.  But open to discussion.
On Tue, Aug 2, 2016 at 4:13 PM, Brian de Alwis<EMAIL_ADDRESS>wrote:

The Cloud SDK includes a set of jar files for AppEngine apps that are
necessary for configure project classpaths in IDEs. Rather than explicitly
configure them in code, the library should return a list of jars with
metadata required by the IDEs. For now, it could answer a set of
ClasspathDetails objects that includes URIs for the binary jar, javadocs,
and source, and whether it is considered intrinsic (and shouldn't be
included in the deploy).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/appengine-plugins-core/issues/186,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHf5Ha5wypTOxWvoNJybxzQTpjZfXaokks5qb6TigaJpZM4JbAIb
.

Closing as this was deemed to be outside of the scope of this library.


Add workflows that publish to JSR

Motivation
We want our packages to be available from JSR and other repositories.
Approach
Configure to publish each public workspace to JSR using the a GitHub Workflow

@taras How is "when to publish" handled? In our other repos, we look for the appearance of a tag matching a pattern. Does JSR automatically handle idempotent publishes? I.e. if you publish twice with the same version number, it's just a no-op?

Does JSR automatically handle idempotent publishes?
Yes, it does. It's a no-op for already published versions.

Is it worth tagging each module? Or is the idea that we're a little more fast and loose.

Is it worth tagging each module?

can we tag individual modules?

Is it worth tagging each module?

can we tag individual modules?

We could if we wanted to, and since we'll be releasing different versions of different modules, it would be nice to have a task-buffer-v3.0.3 so that if you want to get to that particular point version, it's very easy to find.

Also, we need to replicate to npm somehow. That's going to be critical to providing access to the ecosystem. We don't have to do it in this PR, but we should figure out how it's going to work.

Might be able to use this to publish to NPM https://github.com/ryoppippi/mirror-jsr-to-npm

 GitHub**GitHub - ryoppippi/mirror-jsr-to-npm: a tool designed to mirror packages from JSR to NPM**a tool designed to mirror packages from JSR to NPM - ryoppippi/mirror-jsr-to-npm

This looks like almost exactly what we need. It has a tag publish, then to jsr, then to npm.
One thing though is that for node shims we may still need to have a DNT step....


Enable auth code flow.

What's this PR do?
This PR enables the authorization code grant (where the user is authenticated through Northstar's web interface). This is a nice improvement over the password grant (where each service needs to hand off the plain-text password... eww), and is a pre-requisite for testing out OpenID Connect.
Closes #419.

How should this be reviewed?
Still need to add documentation & tests, but feel free to take a sneak peek! 🚧
Checklist

[x] Documentation added for changed endpoints.
[x] Tests added for new features/bug fixes.

For review: @angaither @weerd

¡OLÉ! :sheep: it!

this appears to be wildly reasonable, but then again, what do I know?


Add antctl query for policy conjunction ID

The antctl query will be available in Antrea agents. It returns the OpenFlow conjunction ID(s) assigned for the queried policy's rules on that specific Node.
Note that if a policy does not apply to any Pods on that Node, this antctl command will return a http NotFound since the Antrea agent will not have information of that policy.
In addition, this PR also corrects the deprecated ANP type flag in antctl get networkpolicy queries to point to the new AdminNetworkPolicy type.

@Dyanngg can we include this to release 2.3?


add function convert date

please compare with existing approaches, see how many cases can be solved by those approach

see how much work  https://github.com/scrapinghub/dateparser
https://github.com/search?l=Python&q=date+parse&type=Repositories&utf8=✓

if some additional features are new and not included in existing approach, see if you can combine yours and the existing approach.
the code shall be placed misc, do not create new file
https://github.com/cnschema/cdata/blob/master/cdata/misc.py
clean up your function definition
something like  dateparser.parse('12/12/12')
make sure there is a clear way to handle exception,  i would suggest not use try catch inside function, let user handle it would be better. otherwise, how would user know when the parser fails, and where to get error message.
testcases should be placed in tests/test_core.py


#12 creating cumulative line

#12 Cumulative line with d3
The cumulative line has been added to the chart so it will show the cumulative path.

Awesome work! I just wanted to bring up two things:

The line seems slightly off if you look at the first and last values. I think they should be in the middle of the bars.
Was Yuhan not part of the new approach? When using a different branch and not tagging him it looks like he didn't do much in this issue.


is there a way to get the region from the bucket instead of passing it.

aws has an implementation
aws s3api get-bucket-location --bucket <bucketname>

@infinite-Joy great request, should be implemented in a day or two :)

Seems like I spoke too soon, in order to authorise the request the region must be know, one thing I'm considering doing is brute-forcing a region, however that is not really ergonomic or friendly :/


Update link to design system

This PR:
changes block to variable with default url (base url + component name) that can be overridden in each component if necessary

Find&replace all :)

💥


Support whisper benchmark

whisper speech gen:
whisper.csv
whisper.json
whisper_log.txt
qwen2-0.5b text gen:
qwen2-0.5b.json
qwen2-0.5b.csv
qwem2-0.5b_log.txt
stable-diffusion image gen:
stable-diffusion.json
stable-diffusion.csv
stable-diffusion_log.txt

is it planned for 2024.5 ?

Let's focus on OV genai API for now.  https://github.com/openvinotoolkit/openvino.genai/pull/1025

@wgzintel Please reference to https://github.com/openvinotoolkit/openvino_notebooks/blob/latest/notebooks/distil-whisper-asr/distil-whisper-asr.ipynb

merged to https://github.com/openvinotoolkit/openvino.genai/pull/1025


expose @db.ObjectId to DMMF

Problem
Today, the DMMF information doesn't include anything related to the @db.ObjectId modified and it limits how generators can interact with the model.
Suggested solution
Expose that information somewhere.
Alternatives
There are no alternatives
Additional context
datasource db {
  provider = "mongodb"
  url      = env("MONGO")
}

model User {
  id String @id @default(cuid()) @map("_id") @db.ObjectId
}

{
  "enums": [],
  "models": [
    {
      "name": "User",
      "dbName": null,
      "fields": [
        {
          "name": "id",
          "dbName": "_id",
          "kind": "scalar",
          "isList": false,
          "isRequired": true,
          "isUnique": false,
          "isId": true,
          "isReadOnly": false,
          "hasDefaultValue": true,
          "type": "String",
          "default": {
            "name": "cuid",
            "args": []
          },
          "isGenerated": false,
          "isUpdatedAt": false
        }
      ],
      "primaryKey": null,
      "uniqueFields": [],
      "uniqueIndexes": [],
      "isGenerated": false
    }
  ],
  "types": []
}

I think this is more or less a duplicate, although a specific subcase, of https://github.com/prisma/prisma/issues/10252 Agree?

Seems like it. If you think they'll be solved/reject on the same basis, then feel free to close this issue in favor of that one.

They will/would.


Couldn't build compiler invocation

OS: Win10 64Bits
clangd version: 10.0.0 (https://github.com/llvm/llvm-project.git 9a3f892d018238dce5181e458905311db8e682f5)

Recently, clangd sometimes shows "Couldn't build compiler invocation".
relative code: https://github.com/lh123/NesEmulator
V[15:02:06.354] Indexing F:/VSCode/NesEmulator/src/nes/Instruction.cpp (digest:=A505653E4E76E006)
V[15:02:06.354] Indexing F:/VSCode/NesEmulator/src/nes/AudioBuffer.cpp (digest:=9D1EB390D1108329)
V[15:02:06.354] Indexing F:/VSCode/NesEmulator/src/nes/Mapper4.cpp (digest:=AC4727AD6C1E86E0)
V[15:02:06.354] Indexing F:/VSCode/NesEmulator/src/nes/Mapper1.cpp (digest:=7BFD3F4B8D3BA7C3)
V[15:02:06.355] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\AudioBuffer.cpp.obj: 'linker' input unused
V[15:02:06.355] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glfw-3.2.1.bin.WIN64/include'
V[15:02:06.355] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/SDL2-2.0.8/x86_64-w64-mingw32/include'
V[15:02:06.355] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glad/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/imgui/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glad/include'
V[15:02:06.356] Ignored diagnostic. unable to handle compilation, expected exactly one compiler job in ''
E[15:02:06.356] Indexing F:/VSCode/NesEmulator/src/nes/AudioBuffer.cpp failed: Couldn't build compiler invocation
V[15:02:06.356] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\Instruction.cpp.obj: 'linker' input unused
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glfw-3.2.1.bin.WIN64/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/SDL2-2.0.8/x86_64-w64-mingw32/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glad/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/imgui/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/imgui/include'
V[15:02:06.356] Ignored diagnostic. unable to handle compilation, expected exactly one compiler job in ''
E[15:02:06.356] Indexing F:/VSCode/NesEmulator/src/nes/Instruction.cpp failed: Couldn't build compiler invocation
V[15:02:06.356] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\Mapper1.cpp.obj: 'linker' input unused
V[15:02:06.356] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\Mapper4.cpp.obj: 'linker' input unused
V[15:02:06.356] Ignored diagnostic. E:\Development\msys64\mingw64\bin\g++.exe: 'linker' input unused
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glfw-3.2.1.bin.WIN64/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/SDL2-2.0.8/x86_64-w64-mingw32/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glad/include'
V[15:02:06.356] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/imgui/include'
V[15:02:06.356] Ignored diagnostic. unable to handle compilation, expected exactly one compiler job in ''
E[15:02:06.356] Indexing F:/VSCode/NesEmulator/src/nes/Mapper1.cpp failed: Couldn't build compiler invocation
V[15:02:06.357] Indexing F:/VSCode/NesEmulator/src/nes/GameManager.cpp (digest:=4A5268866D3E9537)
V[15:02:06.358] Indexing F:/VSCode/NesEmulator/src/nes/Event.cpp (digest:=9937B2333C8CFB1F)
V[15:02:06.358] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\GameManager.cpp.obj: 'linker' input unused
V[15:02:06.359] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\Event.cpp.obj: 'linker' input unused
V[15:02:06.360] Indexing F:/VSCode/NesEmulator/src/nes/Cartridge.cpp (digest:=1B9EFCC20B0D15EC)
V[15:02:06.360] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glfw-3.2.1.bin.WIN64/include'
V[15:02:06.360] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\Cartridge.cpp.obj: 'linker' input unused
V[15:02:06.361] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/SDL2-2.0.8/x86_64-w64-mingw32/include'
V[15:02:06.362] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/include'
V[15:02:06.363] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/glad/include'
V[15:02:06.364] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/imgui/include'
V[15:02:06.366] Ignored diagnostic. argument unused during compilation: '-I F:/VSCode/NesEmulator/3rdparty/imgui/include'
V[15:02:06.367] Ignored diagnostic. unable to handle compilation, expected exactly one compiler job in ''
E[15:02:06.368] Indexing F:/VSCode/NesEmulator/src/nes/Event.cpp failed: Couldn't build compiler invocation

I[15:27:44.954] Updating file f:\VSCode\NesEmulator\src\nes\AudioBuffer.cpp with command
[F:/VSCode/NesEmulator/build]
E:\Development\msys64\mingw64\bin\g++.exe --driver-mode=g++ -IF:/VSCode/NesEmulator/3rdparty/glfw-3.2.1.bin.WIN64/include -IF:/VSCode/NesEmulator/3rdparty/SDL2-2.0.8/x86_64-w64-mingw32/include -IF:/VSCode/NesEmulator/include -IF:/VSCode/NesEmulator/3rdparty/glad/include -IF:/VSCode/NesEmulator/3rdparty/imgui/include     CMakeFiles\NesEmulator.dir\src\nes\AudioBuffer.cpp.obj  F:\VSCode\NesEmulator\src\nes\AudioBuffer.cpp -fsyntax-only -resource-dir=D:\clangd\lib\clang\10.0.0
V[15:27:44.954] Ignored diagnostic. CMakeFiles\NesEmulator.dir\src\nes\AudioBuffer.cpp.obj: 'linker' input unused

I think this problem may be cause by -o is missed in compile commands.

But it was not reproduced with simple code.

V[15:47:18.458] >>> {"error":{"code":-32001,"message":"Task was cancelled."},"id":2,"jsonrpc":"2.0"}

I[15:47:18.458] --> textDocument/clangd.fileStatus
V[15:47:18.458] >>> {"jsonrpc":"2.0","method":"textDocument/clangd.fileStatus","params":{"state":"idle","uri":"file:///f:/VSCode/test/main.cpp"}}

[Error - 下午3:47:18] Request textDocument/codeAction failed.
  Message: Task was cancelled.
  Code: -32001
I[15:47:18.678] Indexed F:/VSCode/test/main.cpp (5271 symbols, 19696 refs, 127 files)
V[15:47:20.209] BackgroundIndex: building version 1 when background indexer is idle
V[15:47:20.284] BackgroundIndex: serving version 1 (6588385 bytes)

https://reviews.llvm.org/D71172


Fix props and prop types in disasters page

Missed a bunch of this when I was still learning react

🏫


changed log level of log statement in handleMessageEvents method and …

It might be worth adding the reason(s) for the change in the Pull Request description


MOL?

I'd like to use this for lectures I'm planning. Are there plans for a MOL version? I can add one if not.

ah, I am thinking of MOL with PPM reconstruction.

what time integrator?  We'd want to keep it simple, so something like SSP-RK2 or SSP-RK3.
It could be fun to be able to easily compare the two approaches.

yeah, I was thinking RK2-SSP.


Bug in 0.0.10: ts-node is not found although available (yarn workspaces?)

Hi!
I wanted to upgrade vom 0.0.8 to 0.0.10 but I now get this error:
No script runner for TypeScript devcmds found. Did you forget to install ts-node?
We are using yarn workspaces. ts-node is available in the node_modules folder on workspace level.
If I execute npm ls ts-node (which the checkPackageAvailable does) I get
PS E:\Projects\folder> npm ls ts-node
pos@ E:\Projects\folder
`--<EMAIL_ADDRESS>extraneous

npm ERR! extraneous<EMAIL_ADDRESS>E:\Projects\folder\node_modules\ts-node
PS E:\Projects\folder>

Hi @Brunni, thanks for reporting this!
Judging from your npm ls output and the documentation for npm ls, I'm assuming that npm ls returns a non-zero exit code because your ts-node is extraneous. DevCmd currently interprets any non-zero exit code of npm ls ts-node as "not available".
According to the documentation of npm prune:

Extraneous packages are those present in the node_modules folder that are not listed as any package's dependency list.

So the fix for you is probably to add ts-node to your dependencies list and running yarn install again.
Please report back if this resolves your issue.

Ok. It is now working correclty.
Nevertheless, I'm not sure, if the npm ls call is a good idea:

It delays startup by about 3 Seconds in my project.
It seems to be picky as seen in this thread.

Good point, we definitely don't want flaky behavior for this. It was supposed to help users diagnose problems with TS command execution, but if it points in the wrong direction that's not at all helpful.
I'll create a new issue to investigate this.


GEOMESA-2662 CUSTOM_JAVA_OPTS should override GEOMESA_JAVA_OPTS

Signed-off-by: Andrew Hulbert<EMAIL_ADDRESS>

@jahhulbert do you want this back-ported?

Yeah if possible. I think I might have a few others for 2.1.x
On Wed, Jul 10, 2019, 08:20 Emilio<EMAIL_ADDRESS>wrote:

@jahhulbert https://github.com/jahhulbert do you want this back-ported?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/locationtech/geomesa/pull/2308?email_source=notifications&email_token=ABOTX3D2X5VNX5LQA2X3HHLP6XHXBA5CNFSM4H7JFRWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZTI2NA#issuecomment-510037300,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABOTX3BTYMCKD5TTOW5TXALP6XHXBANCNFSM4H7JFRWA
.


get rid of monkey patches

Some 'quick fixes' that add functionality to scanpy that
isn't officially supported are ok for quickly getting things up and running, but should be phased out. They carry the risk that future modifications to scanpy break something.
Instead I should propose the changes upstream to scanpy and create appropriate PRs.

Download monkey patch fixed in #200.
plot edges monkey patch superseded by #191.
Closing this.


Improvement of Paint Tool

Currently the paint tool just adds an interface that has the same functionality and usage as the MM Paint tool. The colors are shitty and there's only a few to pick from.
materialHueShift is a property which allows you to set the hueshift to metric fucktons of different variety. The oddity that the paint tool doesnt allow you to set this to ANY variety is a shame.

Compare this to the paint tool.

I closed it primarily as a caution. There is an assumption that unlike the color variable which is built into the tile texture, every new hue variation would require entirely new sets to be added to the "texture pages" that other programs with this rendering engine often use. It's not to say that this is absolute, however I think that further testing of a massive variety of hue shifts is in order, and then possibly a warning of some matter sent to the user, as a means of telling them to avoid making too many hueshift variants.
Or don't. If custom sleeves have taught me anything, it doesn't matter for most people if something is mildly/moderately game or performance breaking so long as it looks pretty.

I'm actually quite impressed by the engine when it comes to image/rendering calculations. It handles thousands if not hundreds of thousands of replace directives from string literals with next to no impact on game performance (on machines that live in today's age).
I have dyed thousands upon thousands of blocks. No dirt went untouched. My planet now looks as if invaded by hundreds of different inklings. Although this does not qualify as a benchmark, I could not get my game to drop frames any more than usual.
The dye tool will be replaced with a hue selection slider. A preview shows what the selected hue looks like on various blocks.

This feature has been implemented on the wip-fsm branch. It will be merged and hopefully released before or around the release of Starbound 1.4.
For now you can download the source code of the branch to try out the feature.
Wiki will be updated when the merge happens.

Wow! This is seriously amazing, thanks. No doubt this will be a much better tool for building than the basic color tool we have now.


Add back install/uninstall targets to Makefile

Same as https://github.com/mjambon/easy-format/pull/20.
I’ve also removed a duplicated bench in .PHONY.

Great. Thanks!


[iOS/Android] Content inserted at end of the line above when typing Korean

Package Version
main branch with commit hash https://github.com/superlistapp/super_editor/commit/2cb93e23ba2442e911c1bfcaf107c247adc6d131
To Reproduce

Go to the iOS/Android SuperTextField demo or SuperEditor demo
Place the selection of a line (but not the first line of the content)
Type something in Korean

Actual behavior
Characters are inserted at the end of the line above and caret remains in the same position.
Expected behavior
For each character added, it is inserted where the selection is and then move the caret by 1.
Platform
iOS and Android
Flutter version
Flutter master commit e278279a48f0479386c249cf18f26b29c6f9018f.
Screenshots
https://github.com/superlistapp/super_editor/assets/31278849/50ea1004-1c40-4d84-b37f-defe4276c51b

@miguelcmedeiros This doesn't look like an issue. The text is being inserted at the correct offset and pushing the selection by 1. What seems to be happening is that there is room to render the newly inserted character in the previous line.
https://github.com/superlistapp/super_editor/assets/7597082/3bfc946e-1f45-4244-97c9-f46c627c58e2
https://github.com/superlistapp/super_editor/assets/7597082/0397c788-dd85-407b-b284-452e7e450439


Show subversion link

:warning: WIP :warning:
We've had https://training.github.com/kit/downloads/subversion-migration.html for a hot minute now. This will add the pdf download onto the site.
TODO
- [ ] Create actual PDF asset (cc @jordanmccullough ?) No need to have pdf

Actual image of how this would look:

Create actual PDF asset (cc @jordanmccullough ?)

Given the level of effort involved in producing the PDF, recent intention has been to ship all the documents via web page. The pages are all dark-shipped at this point, but publicly available.
Git Cheat Sheet

https://training.github.com/kit/downloads/github-git-cheat-sheet

Subversion to Git Migration

https://training.github.com/kit/downloads/subversion-migration

Impossibly old, but i noticed this commit existed in #317 so i wanted to ship this beforehand.
I'll give it a day or two but then merge these two commits

ping @github/training-teachers. Does the above snapshot of this change look okay/

:+1:

Thanks all!

:+1: here as well!


Change user supplied values in $beforeValidation

Say I need to trim user supplied strings before saving them to the database. It needs to happen before the validations are run.
Right now I'm doing it in $beforeValidation (changing the json members) which seems to be working. But I'm wondering if it is the right place to do it?

Hey there, just in case someone needs this too, usually I want to trim ALL string attributes before validation because I can't think of a good usecase for now in my app that would allow things like name: "            Hello", so in my BaseModel (https://vincit.github.io/objection.js/api/model/static-properties.html#static-modelpaths) I did this:
class BaseModel extends Model {
  $parseJson(json, opt) {
    // Remember to call the super class's implementation.
    json = super.$parseJson(json, opt);

    return Object.entries(json).reduce((newJson, [property, value]) => {
      if (typeof value === "string") {
        newJson[property] = value.trim();
      } else {
        newJson[property] = value;
      }

      return newJson;
    }, {});
  }
}

It works for me, let me know what you think @koskimas (could this break?).


Add issue template

https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository

I have a few over in the Go SDK, maybe we can try to keep them similar?
https://github.com/vulncheck-oss/sdk-go/tree/main/.github/ISSUE_TEMPLATE

I have a few over in the Go SDK, maybe we can try to keep them similar? https://github.com/vulncheck-oss/sdk-go/tree/main/.github/ISSUE_TEMPLATE

Good call! Thanks for mentioning it, I'll add them here too


chore: Updated example to enable TLS Inbound for Session Manager

Enable TLS inbound for Session Manager
Description
I use Session Manager quite extensively as it avoids the need for managing SSH Key pairs. The complete example had all of the endpoints but was missing the security group definitions for a couple, so I added them here.
Motivation and Context
Enable testers to spin up EC2 instances without the need for SSH Key Pairs
Breaking Changes
None
How Has This Been Tested?
I've validated that this works in 2 separate AWS accounts.

This PR is included in version 4.0.0 :tada:


Amend hugo configuration to remove deprecation warnings during build

Issue:
After bumping Hugo to v0.120.3, there were several deprecation warnings noticed in the deploy logs. For the Tl;Dr version, please refer to this comment.
Specifically, we're looking to target the below deprecation warning for ALL languages in this issue:

10:19:08 AM: WARN  deprecated: config: languages.ru.languagenamelatinscript: custom params on the language top level was deprecated in Hugo v0.112.0 and will be removed in a future release. Put the value below [languages.ru.params]. See https://gohugo.io/content-management/multilingual/#changes-in-hugo-01120

Why did this happen:
In Hugo v0.112.0, site.language.Params is deprecated. It is recommended that site.Params should be used directly in the Hugo configuration.
What needs to be done:
Amend the hugo configuration file i.e. hugo.toml, according to the guidelines on their website - https://gohugo.io/content-management/multilingual/#changes-in-hugo-01120
Inspired by:

#43672

/area web-development

I can take this, once it has triage/accepted label

/triage accepted
Always better to fix deprecations

This would be a nice learning for me. I would like to help with this.
/assign

I think the fix is to change languages.ru.languagenamelatinscript to languages.ru.params.languagenamelatinscript (and make equivalent replacements for other configuration settings).
Does that sound right?

@sftim : Thank you for the question, I should have been more specific.
As mentioned in the deprecation warning above, we currently use custom top-level params in our hugo.toml.

WARN deprecated: config: languages.ru.languagenamelatinscript: custom params on the language top level was deprecated in Hugo v0.112.0 and will be removed in a future release. Put the value below [languages.ru.params]. See https://gohugo.io/content-management/multilingual/#changes-in-hugo-01120

That means, we currently use languages.ru.languagenamelatinscript and its equivalents for other languages. See the screencap below for Chinese:

Therefore, in the current config file, we will need to amend the configuration per the guideline for the hugo.toml file by defining a custom parameter for each language under language.xx.params where xx corresponds to the language shortcode.
For example, for the Chinese localization, this change would most likely be:
[languages.zh-cn]
title = "Kubernetes"
description = "生产级别的容器编排系统"
languageName = "中文 (Chinese)"
weight = 2
contentDir = "content/zh-cn"
languagedirection = "ltr"
   [languages.zh-cn.params]
     languageNameLatinScript = "Chinese"


Migrations - use postProcessResponse on max_batch query

The motivation for this PR is outlined in #2644.
Currently pending tests, however any reviewing parties please advise as to the viability of the proposed solution.
thanks,

Looks feasible, but still one could write some other kind of postprocessing function which breaks this too.
Probably preventing use of wrapIndentifier and postprocess response in queries made internally by knex like @koskimas mentioned in https://github.com/tgriesser/knex/issues/2644#issuecomment-394596480 is way to go.

Okay thanks

Not really sure how to approach this.. what I think is ideal is using a cloned instance of the knex object passed into Migrator without wrapIdentifier or postProcessResponse in its client.config obj.
However, I can't find an easy way to clone the knex object within the Migrator class.. an error gets thrown when attempting to do so:
$ knex --cwd ./ --knexfile ./db/config/knexfile.js migrate:currentVersion
Cannot find module 'pg-native'
/Users/heisian/Web/knex/lib/migrate/index.js:206
    return getSchemaBuilder(trx, schemaName).hasTable(tableName).then(function (exists) {
                                            ^

TypeError: Cannot read property 'hasTable' of undefined
    at Migrator._ensureTable (/Users/heisian/Web/knex/lib/migrate/index.js:206:45)

this is the result of doing..
this.knexInternal = _.cloneDeep(knex)

and using knexInternal to run queries on the metadata tables.

@heisian cloneDeep traverses and attempts to clone getters and all kinds of internal class instances. The result would never work, and if it did, it would be a huge hack.
What I'd like to see here is a way to override some configs (like wrapIdentifer and postProcessResponse) per query. Something like:
knex('foo')
  .config({ wrapIdentifier: customWrapIdentifier })
  .where( ... )

I think this would have some other useful use cases. For example in objection, I'd like to be able to configure snake_case to camelCase conversion on knex level per model class and not globally. This would make it possible. @elhigu Thoughts?

Mm yeah that's actually what I wanted to ask first, if there was a way to override per-query just as you say. That functionality would be great.

@koskimas I like that idea of being able to modify some parts of configuration for individual queries and it would also resolve this problem nicely.

Despite the fact that new functions are documented in the documentation with its very own description, I still think it would be a bit odd to have .config({..}) alongside existing .options({...}).
I realize .options is currently dialect-specific as specified by the docs, but maybe it doesn't have to be..

@wubzz good point.. I haven't had to use .options yet - is it feasible to just append wrapIdentifier to available .options then?

@wubzz .options() was maybe too vague name for that method allowing to pass DB driver specific parameters to certain query... I wouldn't like to overload that to do 2 separate things. Maybe we can name this one better, which is modifying knex config parts for certain query so that there will not be confusion between those? I'm not sure.

what about a second argument for knex('table', { wrapIdentifier }), or knex.clone({ wrapIdentifier })?  ¯\_(ツ)_/¯

Perhaps .queryConfig({...}) for the sake of consistency. That would be consistent with ie .queryContext({...}). At the same time that feels very weird considering these settings are on client level not builder level..
Another solution would be to append these functions to the build chain itself, kind of like how events are supported both on the Client and on the Builder.
knex('table')
.wrapIdentifier((value, original, queryContext) => original(value))
.postProcessResponse((result, queryContext) => result)
.select(['a'])

I'm not sure either. Just throwing ideas out there. I'm ok with whatever.

Since that method is actually patching / merging config, maybe .patchConfig or .mergeConfig or .patchClientConfig would be even more appropriate.
Also there could be validation that connection attribute cannot be changed for now, because it would require reinitialization of the knex client which might affect globally to every client created from the same knex instance (unless this will also clone the instance, which would mean separate pools, which might cause other problems, because it would cause max connections to be bigger as planned originally when knex was initialized)

Yes, I was thinking another client, but I did not consider your point about higher max connections than expected. I do like .patchConfig/.mergeConfig. Maybe mergeConfig since Objection.js uses mergeContext and mergeEager, etc.?

@elhigu How averse are we to just renaming max_batch to max? There is no difference in functionality whatsoever, and case converters are not going to break it. IMO this is an incredibly low path to fixing something that would, to do it 'properly', require refactoring much, much, more of the library as suggested above.
thanks

I really don't understand how current code changes in this PR are related to discussion we have had earlier about being able to provide different postProcess method for certain queries.

The discussion strayed from the original problem:

I am using knexSnakeCaseMappers in app code
I am also using knexSnakeCaseMappers in migrations
wrapIdentifier gets called for all user-invoked query-building methods and migrations.
wrapIdentifier does NOT get called for knex's internal migration queries.
This causes max_batch to not get mapped to maxBatch, resulting in Knex defaulting to a batch number of 0 for every migration.
This has the catastrophic effect of rolling back the entire database on any rollback, regardless of how many batches the user thinks may have run previously.

This code change solves the problem without having to do all the intense refactoring we discussed earlier, simply by making the max_batch alias into max, which has no consequence outside of the scope of finding the latest batch number.
See also: https://github.com/Vincit/objection.js/pull/949/files

Sounds kind of reasonable, even that it really doesn't resolve the problem of being able to ignore those hooks some times.
If this issue is fixed by changing max_batch to maxbatch, then new feature request should be at least added with initial design that was discussed here already.

Ok, we'll do some investigation. @ekeric13

Fixed in 0.16.x


ContinuousMode is displayed as locked

ContinuousMode is displayed as locked in the web-frontend. In the app, however, you can see that CM is set.

Hi, please wait for rekease 8.33


 :) The parser itself is probably not the best code, I was pretty new at Rust when I wrote most of it.

There's a Minidump::read method that takes anything that implements Read + Seek, so it's pretty easy to stick bytes in a Cursor and parse it. Note that it doesn't parse the whole file with that, just the header and the stream directory. You can call Minidump::get_stream with individual stream types to get them to parse.

i threw together a fuzz target:
#![no_main]

#[macro_use] extern crate libfuzzer_sys;
extern crate minidump;

use minidump::Minidump;
use std::io::Cursor;

fuzz_target!(|data: &[u8]| {
    let cursor = Cursor::new(data);
    minidump::Minidump::read(cursor);
});

though it currently doesn't compile because Minidump::read requires 'static on the single argument. any reason why this needs a static lifetime?

opened a github issue with a couple associated pull requests: https://github.com/luser/rust-minidump/issues/6


Fix unit tests for Valkyrie

This addresses and resolves https://github.com/openhumanoids/oh-distro/issues/22

Note: Both tests can now be run in a matrix using both default (valkyrie) and -v5 (working for both)

I think I updated src/python/tests/CMakeLists.txt to use -v5 for these tests.  Keeping that for now?

Didn't see that (https://github.com/RobotLocomotion/director/commit/7397749660b9a2d93cb0dbba53018258ab4da571). Happy to go with what you consider best. The changes here won't have an effect to current behaviour, rather allow being run for both v5 and val2. Is there a way to edit the CMakeLists to run these tests with the extra argument and without?

I think the CMakeLists.txt uses a for loop that makes it tricky to repeat a test twice, but we could extend it to support this use case, would be nice to do.

I'm happy to have a go at it. What would be the best approach for this? Is expanding the add_python_test macro with a check whether extra_args is set, and if not adding it additionally with the extra argument v5, an ok solution or is there a preferable way in CMake?

Right now the for loop is designed to add one test for each listed test file.  It {test name}_extra_args is defined then those args are added to the test command line.
Maybe we could design add_python_test() like this:

If {test name}_extra_args is defined, add it to the test command line
if {test name}_extra_args_2 is defined, add a 2nd test named {test name}_2 with the 2nd args
keep looping, check for {test name}extra_args{n} until the variable is no longer defined

So then we could have:
set(testTeleopPanel_extra_args -v5)
set(testTeleopPanel_extra_args_2 -val2)
And this would add two tests, one with -v5 and one with -val2.


Add beginning of Register handler

This change is

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

96 of 96 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
475

Relevant Lines:
475

💛  - Coveralls