[IL] Update client connection

Implement service according to logic and specification
child of #2998

Add validation to Update connection payload using JSON Schema
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "redirect_uri": {
            "type": "string",
            "format": "uri",
            "pattern": "^(https):\/\/.+"
        }
    },
    "required": [
        "redirect_uri"
    ],
    "additionalProperties": false
}


flake-parts: Remove top-level 'treefmt' package

See https://github.com/numtide/treefmt-nix/pull/14#issuecomment-1365944045
This effectively reverts #18

I don't agree with the argument that it is intrusive to have the wrapped formatter available. I'm subscribing to the formatter-check anyways and therefore I want to have an easy way to access and run the formatter. now I have to duplicate the same code everywhere whether it be adding it to a devshell or as a flake output. in the first case requiring me to enter the devshell, if I don't use direnv,  just to quickly run the formatter because the CI job failed.

Some users dislike it, some users want it. We can make it an option so you only have to enable it rather than wire it all yourself, cf. autoWire = true; of https://github.com/srid/haskell-flake/issues/62

The new default is that it inserts itself as the default formatter invoked by nix fmt. And you can turn it off by setting flakeFormatter = false;. I think that's enough isn't it?

I much prefer it the way @zimbatm just explained.


Autopilot isn't working as expected

Explain what happens

I'm making an issue.
I'm checking it twice.
We're going to find out if it's naughty or nice!

Here's a screenshot of the problem:

Version of Cockpit
42
Where is the problem in Cockpit?
Applications
Server operating system
Debian
Server operating system version
stable
What browsers are you using?
Firefox, Firefox Mobile on Android, Chrome on Android, Safari macOS, GNOME Web, Cockpit Client / Cockpit Desktop
System log
What rolls down stairs
Alone or in pairs,
and rolls over your neighbor's dog?
What's great for a snack
and fits on your back?
it's log, log, log!
it's log, log!
It's big, it's heavy, it's wood.
it's log, log!
it's better than bad, it's good!
Everyone wants a log!
You're gonna love it, log!

Everyone needs a log (everyone wants a log)...
You're gonna love it, log!

Haha, that movie! Greetings to Otto! :wave:


GitHub Actions: use GitHub Artifact as EVE image if specified

Previously, EVE images used for tests in PR were pushed to dockerhub. This comes with several disadvantages, amongst them is dockerhub rate limit and intermediate images published. Now we use GitHub artifacts instead. That still gives you flexibility of downloading specific EVE images to test locally, but removes dockerhub rate limit
Now action user can specify run id and artifact name which contains EVE image, which could be pulled and used to run tests

I guess yetus is broken: I dug up the error, hopefully it'll pass now


Implement taskprov for MockAggregator

MockAggregator stores all tasks in the same pool, regardless of how the tasks are configured.
To allow dynamic task configuration, MockAggregator::tasks is now guraded by a Mutex. For convenience, we revise the type of MockAggregator::WrappedDapTaskConfig to force cloning of the task config as needed.

Squashed.


Question

If I train the cars in one track and then use those cars on a new track, will they be able to succeed in first attempt or they have to relearn the new track ?

Hi, depends on the new track.
As long as the new track doesn't introduce any fundamentally new concepts (such as u-turns) that weren't remotely present in the original track, they should be able to complete it. Otherwise they will need some more training in order to be able to also learn the newly introduced concepts.


Improve the default gruvbox styled and view of the waybar

I reopened the issue because I've missed to add the python script to the install script


Silence red PYTHONPATH warning from tox

This reduces visual clutter for me when running tox.
Ref: https://github.com/tox-dev/tox/issues/1268

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @pabloem

LGTM!

Run Python2_PVR_Flink PreCommit

Will wait until python precommits are green


Prompt ssh-key if no ssh key path given

Plugin should prompt list of uploaded keys from Packet.net if no ssh key path is given. If path is given then plugin should upload a public key to Packet.net and use that for provisioning.

Packet adds all your configured ssh keys to the provisioned machine. Selecting one from the list of installed keys is not relevant.
Currently the plugin already uploads the provided ssh key if you provide a path to a keyfile (which defaults to ~/.ssh/id_rsa.pub)
The sdk has a method for listing installed ssh keys, I think the solution this issue should just prompt for copypaste if  no --ssh-key was given and client.list_ssh_keys.empty?


adopt changes from tvm-main and render code with IPython.display

This PR adopts feedback and resulting changes from https://github.com/apache/tvm/pull/12197
Render code with IPython.display.HTML if possible to fix the ansi-escape 24-bit rendering issue in Colab.

cc: @tqchen @YuchenJin

Thanks for the effort! The change Looks good!
seems rebase is able to help relax get this upstream change, if so, probably we could wait for the next rebase to have this.

Thanks @ganler for making it work for Colab! Feel free to upstream this change.


RMF fleet adapter does not read level_name from /fleet_states messages

Operating system and version:

Ubuntu 20.04

OpenRMF installation type:

Docker

OpenRMF version or commit hash

Latest ( I used docker pull ghcr.io/open-rmf/rmf/rmf_demos:latest )

I use free_fleet_server_ros2 node to publish the /fleet_states. It looks like below:
---
name: hospi_robot
robots:
- name: hospi_robot_0
  model: robot_model
  task_id: ''
  seq: 0
  mode:
    mode: 0
    mode_request_id: 0
  battery_percent: 99.0
  location:
    t:
      sec: 13
      nanosec: 396000000
    x: 58.44990158081055
    y: -184.5000762939453
    yaw: -2.351127862930298
    level_name: B1
    index: 0
  path: []
---

But I get this message from the full_control fleet adapter, when I run the simulation:
[full_control-1] [ERROR] [1643943567.067598981] [hospi_robot_fleet_adapter]: Unable to compute a StartSet for robot [hospi_robot_0] using level_name [] and location [58.449944, -184.500015, -2.350461] specified in its RobotState message. This can happen if the level_name in the RobotState message does not match any of the map names in the navigation graph supplied or if the location reported in the RobotState message is far way from the navigation graph. This robot will not be added to the fleet [hospi_robot]. The following hint may help with debugging: None of the waypoints in the graph are on a map called [].

I checked the nav_graph/0.yaml and it has B1 level. The fleet adapter is able to get the robot_name and pose: x,y,yaw information correctly though.
Do I need to publish any other details on the fleet_states message?

That's certainly an odd issue.
There are a few things about your description that I'm not clear on. How are you setting up the simulation? Are you using the standard RMF "slotcar" plugin to simulate the robot, or are you generating robot states out of your simulation some other way?
For the standard slotcar plugin we have this block that prevents potential race conditions that may happen if the simulation is up and running before it gets any messages from the building map server. If you're not using the standard slotcar plugin then you might need something similar.
I see that your fleet state contains level_name field, but (for better or worse) the current design of the full_control fleet adapter will permanently block any robot that sends an initial state with an invalid level_name value. Even if you're publishing valid states later, it won't accept those if the first state it received was an invalid one. We could make this less strict, but we find it's helpful for identifying system integration mistakes as early as possible.

Sorry. I realized I was inadvertently using an old version of the rmf_fleet_msgs package in one of the workspaces and the message definition had changed for Location.msg. I fixed it and is now able to run. Thanks for your time @mxgrey .


Latest simulators of iOS 13 are playing midi files

The conditional compilation is not required anymore as the latest version of the iOS13 simulators from Xcode 11 from Catalina 10.15 can play the midi files with no issue.

Thank you!


Pocketmine Script Update

Description

Update scripts: egg-pterodactyl-pocketmine-m-p and egg-pocketmine-m-p

PocketMine binary download links have been updated.

Thanks! I'm waiting for this. i hope it merged.


Not only string can be passed as a param in Location

When I do the following:
this.$router.push({ name: 'somepage', params: { someParam: false } });

The following error occurs:

When I console.log this.$route.params in my somepage route, the someParam variable with false as value exists.
So update the type to allow more than a string.

Thank you but for the moment, only strings are valid because numbers should be casted to strings. Before changing the TS types we would need to introduce casting for params and query values for numbers to strings. Booleans are not accepted because the casting might be unexpected


gittuf: 0.5.2 -> 0.6.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/gittuf/gittuf/releases.
meta.description for gittuf is: Security layer for Git repositories
meta.homepage for gittuf is: https://gittuf.dev
meta.changelog for gittuf is: https://github.com/gittuf/gittuf/blob/v0.6.0/CHANGELOG.md
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.6.0 with grep in /nix/store/1bi4bc7mzccp6gnfdd3szf4mdrd51wf4-gittuf-0.6.0
found 0.6.0 in filename of file in /nix/store/1bi4bc7mzccp6gnfdd3szf4mdrd51wf4-gittuf-0.6.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

gittuf

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/1bi4bc7mzccp6gnfdd3szf4mdrd51wf4-gittuf-0.6.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A gittuf https://github.com/r-ryantm/nixpkgs/archive/fbfd0d006c07fca621db835b652cd028e0dd795c.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/fbfd0d006c07fca621db835b652cd028e0dd795c#gittuf

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/1bi4bc7mzccp6gnfdd3szf4mdrd51wf4-gittuf-0.6.0
ls -la /nix/store/1bi4bc7mzccp6gnfdd3szf4mdrd51wf4-gittuf-0.6.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

gittuf

Maintainer pings
cc @flandweber for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


fix:change gf to v1.14(#1)

fix: #1
@vance-liu @1307super plz review

Thank you for help, merged.


Fix extend_candidates deadlock

Addresses #49
A previously-held write lock was deadlocking when in select_heuristic a nearest_iter() call would attempt a read lock on the same node.
This PR adds a new type, MultiLockedLayer, which is aware of what node is already locked, and uses that to reference the already-taken write lock for reads when we update candidates.

Here are the results on main, currently, on my current machine:
     Running benches/all.rs (target/release/deps/all-a796df66d4760827)

running 1 test
test build_heuristic ... bench:  34,153,221 ns/iter (+/- 700,452)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

And this extend-candidates-deadlock branch:
Running benches/all.rs (target/release/deps/all-3e461429291c6cd6)

running 1 test
test build_heuristic ... bench:  32,201,469 ns/iter (+/- 592,444)

However, these benches don't test the extend_candidates functionality. As in main, currently, this deadlocks.
That said, now I see that when I enable extend_candidates in a bench, I am still hitting a deadlock. I'm going to mark this as a draft until I can dig further into that, and find another set of steps to construct a regression test.

Adding some more notes here:

Iteration without rayon's into_par_iter succeeds in building the Hnsw with extend_candidates: true set.
If we watch what nodes are locked for writing in Construction::insert, we can see that MultiLockedLayer is insufficient (it doesn't know about nodes locked by other threads) to pass the write lock for a given node to the iterator created in select_heuristic.

It appears that we are creating a situation of circular locks.
Some options:

For the time being, we could disable parallel insertion of the Hnsw's nodes if extend_candidates: true is set. This would allow this functionality to be used.
We could continue doing parallel insert and locking, but pass around a "lock manager" of sorts to all workers.

For the time being, we could disable parallel insertion of the Hnsw's nodes if extend_candidates: true is set. This would allow this functionality to be used.

I mean, this seems like a pretty ugly workaround. extend_candidates is pretty important to accuracy IIRC, so we should make sure it can support fast construction.

We could continue doing parallel insert and locking, but pass around a "lock manager" of sorts to all workers.

I'm not sure how you envision this lock manager working? It would be good to go back and look at FAISS to see how they do it. Conceptually we should probably have some model where the lower-numbered point gets priority and blocks any higher-numbered points.

Is the holding of the lock even required? As I understand it the code currently does:

(Hold node N write lock)
For each node M in the set of candidate neighbors of N:
(If a heuristic is set) Take read lock of M.
If extend_candidates is set, also take a read lock of M's neighbors. If N is in M's neighbors this is where we hit a circular lock.
Update neighbors of M, taking the write lock over M only briefly.
Finally, update N's neighbor array with M's PointId.

If, on the other hand, we move the top level lock and only lock when needed, we don't seem to deadlock.

For each node M in the set of candidate neighbors of N:
(If a heuristic is set) Take read lock of M.
If extend_candidates is set, also take a read lock of M's neighbors. No circularity of read-write locks is possible with our call stack.
Update neighbors of M, taking the write lock over M only briefly.
Finally, update N's neighbor array with M's PointId, taking the write lock only briefly.

My uncertainty about the second approach is that clearly the (write) lock was being held for a reason in the past, but it's unclear to me as to why.

Conceptually we should probably have some model where the lower-numbered point gets priority and blocks any higher-numbered points.

How do you imagine this would help not holding the locks in a circular fashion? Regardless of the number of the point, it could still be counted as a neighbor and then we end up creating a circular lock situation.
Any other solution I've imagined so far requires iterating over nodes to see what neighbors we have before we lock.

Oh, are you suggesting the problematic case arises when the original node (which we're currently adding to the layer) is in the extended candidate set for itself? Cause it seems like a more targeted fix would help with that.

Marking as ready for review - this amounts to holding the write lock for a much shorter period of time, and adding a regression test.


Proposal: Zipper movement API should handle nil wherever zippers are accepted

Apologies if this has been discussed/discarded before; if it has, please feel free to close!
I believe that nil-handling is the least ergonomic part of the Zipper API. For example:
iex(1)> ":foo" |> Sourceror.parse_string!() |> Sourceror.Zipper.zip() |> Sourceror.Zipper.up()
nil
iex(2)> ":foo" |> Sourceror.parse_string!() |> Sourceror.Zipper.zip() |> Sourceror.Zipper.up() |> Sourceror.Zipper.up()
** (FunctionClauseError) no function clause matching in Sourceror.Zipper.up/1

    The following arguments were given to Sourceror.Zipper.up/1:

        # 1
        nil

    Attempted function clauses (showing 2 out of 2):

        def up(%Sourceror.Zipper{path: nil})
        def up(%Sourceror.Zipper{node: tree, path: path, supertree: supertree})

    (sourceror 1.6.0) lib/sourceror/zipper.ex:208: Sourceror.Zipper.up/1
    iex:2: (file)

The API lends itself incredibly well to chaining using the pipe operator, but in almost all cases (or maybe all cases), when a zipper operation returns nil, the next operation is likely to raise a function-clause error.
I'd love to discuss adjusting the Zipper movement API (not necessarily the update/modification API) to "pass-through" nil when it's encountered, instead of raising.

I'm here for it. Currently, it just blows up, so I don't think there is really any reasonable harm in adjusting it to pass through nil.

This would be a welcome change. The nil handling is the result of basing the implementation on clujure/zip, which returns nil in those cases. I can see how that is inconvenient, so I'm very in favor of changing that behavior

Great!
I'll try to submit a PR for this change soon, unless someone else gets to it first. 🙂

Here's the list of functions that I think should accept nil and handle it appropriately. Basically, I made note of every function that would reasonably be used to "find forwards" in a zipper, the idea being that "finding the right thing" is often a multi-step, chained operation, and you don't care which one returned the nil.
In order of appearance in the docs:
down/1
find/3
find_all/3
find_value/3
left/1
leftmost/1
move_to_curssor/2
next/1
right/1
rightmost/1
search_pattern/2
skip/2
traverse/2
traverse/3
traverse_while/2
traverse_while/3

Notable exclusions:

Functions that move "back", such as up/1, top/1, prev/1, etc. This is because you always want this to be true: zipper == zipper |> Zipper.next() |> Zipper.prev(), and it wouldn't be if next returned nil and prev passed the nil through.
Functions that create/update/modify zippers. You should check that your "find" was successful prior to this.

Anything I missed?

As I'm getting into the implementation, I'm thinking of striking traversal off that list. It doesn't seem useful to return {nil, acc} for the traverse/3 and traverse_while/3 cases, and it seems maybe weird for the arity-2 versions to accept nil but not the arity-3 versions.

@zachallaun that list looks good, and I agree with your reasoninig in the exclusion list

As I'm getting into the implementation, I'm thinking of striking traversal off that list. It doesn't seem useful to return {nil, acc} for the traverse/3 and traverse_while/3 cases, and it seems maybe weird for the arity-2 versions to accept nil but not the arity-3 versions.

Yeah that makes sense, you are kinda forced to handle the possible nil result, so there's not a good way to make it "more pipeable"

Merged with #167


prevent dust stash balance from bonding

the check was previously only done before comparing the intended bonding value with the stash balance.

needs a regression test that fails without this change. and i'll bet you a beer that you can't provide one.


Missing "intersect

This keyword is specified in the vocabulary, but it was not used it. It will probably need to be added when converting some temporality rules


Damage detection fix

Use player based unit enumeration to also add dead heroes and hidden units to the Damage Detection.
Unhiding units and reviving heroes does not trigger enter region events.

Nice catch 👍


[Enhancement] Make the default language the first ISO code in the Application Config

Make the default language the first index of the array in the language config defined in the application config. Currently, this does not work
This should default at app launch
----
  "languages": [
    "es","en"
  ],
----

@ndegwamartin please advise

We could also introduce a new config entry for default language and have the users configure with that. That way we still have the flexibility for the list of languages e.g. how they are ordered in the context of a UX. e.g.
{
   "default_language": "en"
}

or
{
   "lang": "en"
}

Yea I think the more explicit "default_language" is the better approach. If none is specified we it seems reasonable that the expected behavior is to choose the first language from the list, since we have to choose something and we do not want the choice to be arbitrary.

On the other hand, what do we do if the config sets the default language to "es", but the device settings have the default language as "en". It seems odd to override the default device settings.
Asked another way, is the default setting here only used if the device doesn't have it's own default? Or if the device default isn't supported in the app? That's seems reasonable.

We've previously (v1) overridden device settings with the app settings buy using the Language switcher

On the other hand, what do we do if the config sets the default language to "es", but the device settings have the default language as "en". It seems odd to override the default device settings.
Asked another way, is the default setting here only used if the device doesn't have it's own default? Or if the device default isn't supported in the app? That's seems reasonable.

@f-odhiambo TODO

Part 1 - Sequence of places on how to set the locale
Part 2  - text and _text - what is the default?

Assuming we have the following scenario
App Config
  "languages": [
    "en",
    "id"
  ],
  ---
  "default_language": "id",
  ----

Questionnaire
    {
   "system": "urn:oid:2.16.5<IP_ADDRESS>.1.1.8655",
   "display": "eCBIS Child Immunization",
   "_display": {
      "extension": [
         {
            "url": "http://hl7.org/fhir/StructureDefinition/translation",
            "extension": [
               {
                  "url": "lang",
                  "valueCode": "id"
               },
               {
                  "url": "content",
                  "valueString": "Imunisasi anak eCBIS"
               }
            ]
         }
      ]
   }
}

User-Specified Language in App Configuration

Check if the app configuration explicitly specifies a preferred language for the user. This might be stored in the app’s local settings or a user profile.

Available Languages in App Config

Verify if the languages array in the app config contains the language.
If the user’s preferred language is supported (languages contain it), use it. This will also assume that we order the ISO config maybe

  "languages": [
    "en",
    "id"
  ],
  ---

3. Device Language
- Retrieve the device’s current language setting (e.g., from Android’s locale).
- If the device language matches one of the languages in the app config, set this as default.

4. Fallback to Default Language in App Config
- If none of the above criteria are met, use the first language in the languages array as the default (usually assumed to be the app’s primary language, e.g., "en").

I want to slightly clarify this.
In (2) this is checking if the user has already set their language manually, NOT if the app config has a default_language
in (4) it first checks for a default_language, and choose that if it exists, if not it goes by the ordering in the "languages" array
is that clear?

Hey @pld for 4 is clear  for 2
When you first install the app the user has not chosen anything. So if you have
  "languages": [
    "en",
    "id"
  ],
  ---

English should be the language else  If you have
  "languages": [
  "id",
  "en"
],
---

Bahasa should be the language of choice
On resume app, we pick what the user has now selected manually in case a change was done

In most cases, we'll expect the user to never choose anything, if they haven't and if their device settings are set to "en" it'll load "en", if they're set to "id" it'll load "id". Otherwise, we'll check for "default_locale" in the config, and choose that, if that doesn't exist then we'll go w/what you've described

@f-odhiambo I've update the issue to reflect the above comments, let me know if there is anything that is still unclear, thank you


Vagrant on Windows 10 cannot find ssh

Need this in PowerShell
$env:Path = $env:Path + ";C:\Program Files\Git\usr\bin"

That's temporary. To make it permanent use the environment variable editing control panel and add
C:\Program Files\Git\usr\bin

This is for 64 bit installs; apparently the path is slightly different for 32 bit installs, will need to track that down if anyone is using 32 bit Windows.

It looks like a better workaround may be to install Git and GitHub for Windows as Administrator, which didn't seem to be the default behavior in one Windows 10 install I tried.


Complex Models

Hi,
I'm trying to access a complex model with entity framework and in my columnDefs I would have something like this:
{ targets: 0, data: 'event.code' }
Basically my EF model contains relations to other tables which results in a complex model.
How to access properies of associated objects?

Fixed in 1.5.0, see pull request #8.


steps argument in Mat::new_nd_with_data() has a wrong type

The Mat::new_nd_with_data (doc) has a steps argument with type &size_t. I passed &0, the suggested default value, and it failed with the message.
Error: OpenCV(4.5.1) /build/opencv/src/opencv-4.5.1/modules/core/src/matrix.cpp:259: error: (-13:Image step is wrong) Step<PHONE_NUMBER>465321323 for dimension 1 must be a multiple of esz1 4 in function 'setSize'
 (code: -13)

Look like it treats the reference as an integer. I guess the argument should have the type size_t,

Also new_nd_vec_with_data has this issue.

Also new_nd_vec_with_data has this issue.

I think it expects a null pointer, not a pointer to null. Can you please try passing something like prt::null_ptr().as_ref() for steps? I’ll try to improve generation in this are in any case

I think it expects a null pointer, not a pointer to null. Can you please try passing something like prt::null_ptr().as_ref() for steps? I’ll try to improve generation in this are in any case

It won't work. pointer.as_ref() returns None when it is null.

It won't work. pointer.as_ref() returns None when it is null.

You’re right! Well, some kind of mem::transmute should do the trick, but yeah, it needs some fixing.

You’re right! Well, some kind of mem::transmute should do the trick, but yeah, it needs some fixing.

It is my workaround to pass null pointer as reference. Unfortunately, it passes the tests in in debug build but is killed by SIGILL in release build.
use platform_types::size_t;
let step: &size_t = mem::transmute(ptr::null() as *const size_t);
core::Mat::new_nd_with_data(&size, typ, tensor.data_ptr(), step)?

This is my implementation FYI.
https://github.com/jerry73204/rust-cv-convert/blob/46136573897146f1ea183772b4daeee5ffecab97/src/with_opencv_tch.rs#L347-L357

It is my workaround to pass null pointer as reference. Unfortunately, it passes the tests in in debug build but is killed by SIGILL in release build.
use platform_types::size_t;
let step: &size_t = mem::transmute(ptr::null() as *const size_t);
core::Mat::new_nd_with_data(&size, typ, tensor.data_ptr(), step)?

This is my implementation FYI.
https://github.com/jerry73204/rust-cv-convert/blob/46136573897146f1ea183772b4daeee5ffecab97/src/with_opencv_tch.rs#L347-L357

In my tests it literally generates the asm UD2 instruction starting with opt-level = 1. I suppose it has to do with the fact that references are guaranteed to be non-null in rust, so such transmute is instant UB. So it looks like there is no workaround. I'll try to make the fix asap.

In my tests it literally generates the asm UD2 instruction starting with opt-level = 1. I suppose it has to do with the fact that references are guaranteed to be non-null in rust, so such transmute is instant UB. So it looks like there is no workaround. I'll try to make the fix asap.

Interesting, TIL there is a x86 instruction causes undefined behavior.

Interesting, TIL there is a x86 instruction causes undefined behavior.

Can you please check the rel branch and confirm it fixes the problem for you? The steps argument is now Option<&[size_t]> so passing None should work.

Can you please check the rel branch and confirm it fixes the problem for you? The steps argument is now Option<&[size_t]> so passing None should work.

Great. It passes every test even in release build.

Great. It passes every test even in release build.

It's now released in v0.49.0

It's now released in v0.49.0


Entry about PR #773 in CHANGES.md

Update the CHANGES.md for release.

@tarcieri I hope this helps.

Sorry for failing to review this. I hope to get around to it soon.


impl std::error::Error for errors

It would be very handy for error-handling using ? if the various error types implemented std::error::Error.

Uhm... they do? Could you clarify what you mean?
https://github.com/psychon/x11rb/blob/395694e0e5fbc80c8046bba0b1350ae3f28abc14/src/errors.rs#L13
https://github.com/psychon/x11rb/blob/395694e0e5fbc80c8046bba0b1350ae3f28abc14/src/errors.rs#L59
https://github.com/psychon/x11rb/blob/395694e0e5fbc80c8046bba0b1350ae3f28abc14/src/errors.rs#L135
https://github.com/psychon/x11rb/blob/395694e0e5fbc80c8046bba0b1350ae3f28abc14/src/errors.rs#L176
https://github.com/psychon/x11rb/blob/395694e0e5fbc80c8046bba0b1350ae3f28abc14/src/errors.rs#L232

Specifically, the one I wanted today was x11rb::protocol::Error, which according to the 0.5.0 docs doesn't implement std::error::Error. I also clicked through the first few of the enum options on x11rb::protocol::Error, and didn't see std::error::Error impls for them either.

Ah, yeah. None of them implement Error'. However, they should not really ever appear as the error type in a Result. For this, there is ReplyError':
https://github.com/psychon/x11rb/blob/395694e0e5fbc80c8046bba0b1350ae3f28abc14/src/errors.rs#L167-L174
The Error enum and its members are the actual errors that are sent by the X11 server. They are not really errors in the std::error::Error sense, I think. Implementing std::error::Error for this enum would require implementing Display for them, which I do not think makes much sense. What's the "right" way to format one of these errors for "human display"?
ReplyError just uses the Debug output, but at least it adds some hint that this is an X11 error sent by the X11 server...
Can I ask how you end up with ? on Error?

I didn't actually end up with a Result, but I got an Error through VoidCookie::check. Specifically, I had something like
if let Some(err) = conn.create_window(...)?.check() {
    return Err(err.into())
}

and if Error had implemented std::error::Error then the into() would have worked because I'm calling this in a function returning anyhow::Error. (Actually, now that I know a ReplyError is either a ConnectionError or an Error, is there some reason check doesn't return Result<(), ReplyError>?
I guess one workaround is for me to wrap it in a ReplyError.
As for Display, is there a "right" way to format any error? I think the goal of Display is just to enable troubleshooting, and so one reasonable option is to do some variant of the classical libX11 error:
X Error: BadRequest (invalid request code or no such operation) 1
Extension: 198 (Uknown extension)
Minor opcode: 0 (Unknown request)
Resource id: 0x600082

VoidCookie::check

Hm... That functions is pub fn check(self) -> Result<Option<Error>, ConnectionError>. Locally, this makes sense. This function returns an optional error, but getting this error "could go wrong" because the connection breaks.
Should this perhaps be changed into Result<(), ReplyError>? What would be the pros & cons of that?

You described check as trying to get an error, but I was thinking of it differently: I want to check if the operation (creating a window) succeeded. If it succeeded then that's good; otherwise I would need to handle the error.
In my use-case, if I fail to create a window, I want to display an error and bail out. I don't particularly care whether the error came from the connection or the X server. For this use case, if the return were Result<(), ReplyError>, I could just do
conn.create_window(...)?.check()?;

On the other hand, there are some other things I might want to do. Like, bail on a connection error but handle the X11 error.
// With the current signature:
if let Some(err) = conn.create_window(...)?.check()? {
   ...
}

// With the proposed signature:
match conn.create_window(...)?.check() {
    Err(ReplyError::XError(e) => {...},
    other => other?,
}

I think this looks nicer with the current signature.
Or you could handle the connection error and bail on the X error (I'm not sure if this is realistic, though).
// With the current signature:
match conn.create_window(...)?.check() {
    // I'm wrapping in ReplyError, so that it implements std::error::Error.
    Ok(Some(err)) => return Err(ReplyError::XError(err)),
    Err(e) => { ... },
    _ => {},
}

// With the proposed signature:
match conn.create_window(...)?.check() {
    Err(ReplyError::ConnectionError(e) => {...},
    other => other?,
}

I think this is clearer with the proposed signature.
Here is what it would look like to handle both errors
// With the current signature:
match conn.create_window()?.check() {
    Err(e) => //handle connection error,
    Ok(Some(e)) => //handle X error,
    _ => {},
}

// With the proposed signature:
match conn.create_window()?.check() {
    Err(ReplyError::ConnectionError(e)) => // handle connection error
    Err(ReplyError::XError(e)) => // handle X error
    Ok(()) => {},
}

With the proposed signature, this is a little longer, but I think it's more self-documenting.
Overall, the proposed signature is nicer if you want to bail on both kinds of errors or if you want to handle just the connection errors, the current signature is nicer if you want to handle X errors and bail on connection errors, and the situation for handling both kinds of errors is less clear.


[Next13] Fetch being called twice when preloading queries

This issue is related to the relay-next-13 example. Every preloaded query is firing two network fetch calls which seems to be response cache related.
https://user-images.githubusercontent.com/44122379/236671371-e62d83ba-0e78-4713-be7c-0669b2350747.mov

I can confirm.  I am seeing this as well.  Two hits for the same data on one page load.

Can you disable react strict mode? This may be an issue related to strict mode, in which case, it is expected


refs: adds desk refs

Ports over docket state from garden
Adds an AppReference component
Changes the types to reflect changes to desk cites

fixes tloncorp/homestead#612

@nerveharp what's going on with CI?

@nerveharp what's going on with CI?

Test for ChatMessage is borked, @arthyn is looking into it. I'm lost


Possible to configure Multiple Exporters using NodeSDK?

[x] This only affects the JavaScript OpenTelemetry library
[ ] This may affect other libraries, but I would like to get opinions here first

Hello! I may be reading docs/types incorrectly, but it seems like it's only possible to configure a single trace exporter(and logger actually?) using the NodeSDK?
I know multiple are supported via env vars/a full setup, but just wanted to check that my read was correct here (we're migrating vendors so want to switch my config to send to both for now as we don't have a collector yet).
If it's something desirable I could maybe take a crack at a PR, but also let me know if it's supposed to just cover the single case!
Cheers

Hey,
It took me a while to find out how to do it (I think there is no example in the docs), but you have to use spanProcessors instead of traceExporter, something like:
  new NodeSDK({
    spanProcessors: [
      new BatchSpanProcessor(new OTLPTraceExporter(oneConfig)),
      new BatchSpanProcessor(new OTLPTraceExporter(anotherConfig)),
    ],

    instrumentations: [
       // whatever you have here
    ],
  })

How do we do this with metrics?


Merge to publish

Learn Build status updates of commit 3183b49:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.github/fabricbot.json
:white_check_mark:Succeeded

docs/actionable-messages/index.md
:white_check_mark:Succeeded
View

docs/actionable-messages/message-card-reference.md
:white_check_mark:Succeeded
View

docs/actionable-messages/send-via-connectors.md
:white_check_mark:Succeeded
View

docs/actionable-messages/send-via-email.md
:white_check_mark:Succeeded
View

README.md
:white_check_mark:Succeeded

SECURITY.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


When deselect children parent deselected too

when i deselect all children parent note deselected too. So if i want only parent node i can't selected it and if i use three_state: false i can select all children in once. There is any way to do that? When i select parent node all children selected too and when i deselect all children parent note stay selected

For the third time - read the docs or use ONLY the discussion group for how-to questions: http://www.jstree.com/api/#/?q=cascade&f=$.jstree.defaults.checkbox.cascade
$("#tree").jstree({
  checkbox : {
    three_state : false,
    cascade : 'down'
  },
  ...
})

when the three_state is set to true, the get_selected() doesn't return the parent node id to me. I want to know could I use the cascade functionality at the same time with geting parent id at get_selected() is called.


Full Screen Grab doesn't run correctly on multiple monitor setup

Describe the bug
I have four monitors and when I run the Full Screen Grab, it runs just on three monitors.
Where is the bug

Fullscreen Grab

Hello @mdzwzw, please download Text Grab 3.2.0-Preview1 and test to see if that solves the issue.

I tested it. It has the same issue.

please provide screenshots of your display arrangement. See #228 for example

Can you also send a screenshot of the display settings so I can see arrangement and numbering?

Thank you for all of the info! I'll dig into this soon. It looks like display 1 is twice as bright, and screen 4 has no frame. Is that correct?

I wasn't focusing on display 1 brightness, but actually, yes it is brighter than screens 2 and 3. I thought it is by default like that, if not, so it is another bug. But the main issue is that screen 4 has no frame.

I suspect the frame which is supposed to go to screen 4 is doubled up on screen 1.

@mdzwzw  I have made changes to the logic which places new Full-screen Grabs in preview2. Check it out here and let me know if this fixes the issue.
https://github.com/TheJoeFin/Text-Grab/releases/tag/v3.2.0-preview2

Thanks, the issue got fixed.


Remove Gemfile.lock

suspenders as a gem relies on version ranges for its dependencies
defined in its gemspec. Precise patch versions declared in
Gemfile.lock don't need to be tracked.
We expect suspenders to always work well with latest patch versions of
all its dependencies.
More information:
http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/

Will avoid steps like https://github.com/thoughtbot/suspenders/pull/571/files during development.

:100:

Added it to the gitignore. Thanks @mcmire!


Fix severity information

Currently the severity is mapped from the category. Severity should relate to the specific vulnerability / exposure.

Agreed.
I discussed with @itaysk about severity in the context of necessary refactor.
The discussion essence it that apart of category mapping to severity, each and every event should declare its severity in its definition.
There is also needed change in how we treat Events/Vulnerabilities/Services since there is a possible overlap in their behavior which may be reasonable, but can mislead to wrong implementations.


invalid object?

I just tested running coach from source: 4fe9cba44508f258fc73286d6cbf0af4b1fdfa50
on both ubuntu 14.04 and Macos high Sierra and I get the exact same error:
python coach.py -p CartPole_DQN -r
/home/jtoy/anaconda3/lib/python3.6/importlib/_bootstrap.py:205: RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6
  return f(*args, **kwds)
Warning: failed to import the following packages - RoboSchool, GymExtensions, ViZDoom, CARLA, Neon
Please enter an experiment name: test
Using tensorflow framework
Traceback (most recent call last):
  File "coach.py", line 275, in <module>
    env_instance = create_environment(tuning_parameters)
  File "/home/jtoy/sandbox/touchnet/related_projects/coach/environments/__init__.py", line 32, in create_environment
    env = eval(env_type)(tuning_parameters)
  File "/home/jtoy/anaconda3/lib/python3.6/site-packages/pandas/core/computation/eval.py", line 267, in eval
    ret = eng_inst.evaluate()
  File "/home/jtoy/anaconda3/lib/python3.6/site-packages/pandas/core/computation/engines.py", line 75, in evaluate
    res = self._evaluate()
  File "/home/jtoy/anaconda3/lib/python3.6/site-packages/pandas/core/computation/engines.py", line 122, in _evaluate
    return ne.evaluate(s, local_dict=scope, truediv=truediv)
  File "/home/jtoy/anaconda3/lib/python3.6/site-packages/numexpr/necompiler.py", line 807, in evaluate
    zip(names, arguments)]
  File "/home/jtoy/anaconda3/lib/python3.6/site-packages/numexpr/necompiler.py", line 806, in <listcomp>
    signature = [(name, getType(arg)) for (name, arg) in
  File "/home/jtoy/anaconda3/lib/python3.6/site-packages/numexpr/necompiler.py", line 704, in getType
    raise ValueError("unknown type %s" % a.dtype.name)
ValueError: unknown type object

I installed all dependencies with pip install -r  requirements_coach.txt
Is there an issue in master or am I missing something basic?

its because coach doesn't work on ubuntu 14.04 or mac,  only 16.04. Would it be helpful if I added a docker image?

we internally have docker images, but cannot add them to this repository for licensing reasons that we are hopefully working out. Hopefully we can include one soon, thank you.

I just wrote a Dockerfile  that works with CPU tensorflow, can I send a PR for this?

Unfortunately I don't think we can merge it yet if you do, @galnov what is the status of including Dockerfiles in this repository?

Here is my Dockerfile incase you all want it: https://gist.github.com/jtoy/2fee28d8931de0ce6b5883e4b5658560

Thanks @jtoy!
As @zach-nervana mentioned, at the moment we cannot merge the Dockerfile in.
Closing the issue.

I have the exact same problem running the example on a RHEL7.
Why it is only compatible with Ubuntu 16.04 ? The only solution is to use a docker container ?

Seems like it's the eval function from pandas that does not work.
Using the python built-in eval did the job

fixed it and now have coach working on Mac and ubuntu 14.04! I'll submit a PR.

here is the fix: https://github.com/NervanaSystems/coach/pull/91


Access denied. You do not have permission to perform this action or access this resource.

I am able to create site collection and sub site by provisioning framework using Apponly permission.
but when it calls this code, i am getting below error
Access denied. You do not have permission to perform this action or access this resource.
web.ApplyProvisioningTemplate(template, ptai);
I have applied Tenant level permission to app, so i am able to create site collection as well.
Permission applied to App is as per below:

Let me know where i am missing.

Hi,
Could you please give a little bit more of context? Where do you call the ApplyProvisioningTemplate method? It is code coming from the PnP Partner Pack (reference file and line, if that is the case) or is it your custom code somewhere else? Or do you have a stacktrace to share? Thanks.

Yes, I am using complete code in windows service, so i have not customised
a single line just changed web.config and using clied id and client secret
of app to make connection with sharepoint online.
On Jul 26, 2016 10:17 PM, "Paolo Pialorsi"<EMAIL_ADDRESS>wrote:

Hi,
Could you please give a little bit more of context? Where do you call the
ApplyProvisioningTemplate method? It is code coming from the PnP Partner
Pack (reference file and line, if that is the case) or is it your custom
code somewhere else? Or do you have a stacktrace to share? Thanks.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OfficeDev/PnP-Partner-Pack/issues/133#issuecomment-235330174,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMO9C45LoRYljYV4KGZEz4QXBlnmM8m4ks5qZjopgaJpZM4JVOBM
.

Hi
I am using  SubSiteProvisioningJobHandler.cs class and below method to create sub site and provision sub site.
private void CreateSubSite(SubSiteProvisioningJob job)
{
// Determine the reference URLs and relative paths
String subSiteUrl = job.RelativeUrl;
String siteCollectionUrl = PnPPartnerPackUtilities.GetSiteCollectionRootUrl(job.ParentSiteUrl);
String parentSiteUrl = job.ParentSiteUrl;
        Console.WriteLine("Creating Site \"{0}\" as child Site of \"{1}\".", subSiteUrl, parentSiteUrl);

        using (ClientContext context = PnPPartnerPackContextProvider.GetAppOnlyClientContext(parentSiteUrl))
        {
            // Get a reference to the parent Web
            Web parentWeb = context.Web;

            // Create the new sub site as a new child Web
            WebCreationInformation newWeb = new WebCreationInformation();
            newWeb.Description = job.Description;
            newWeb.Language = job.Language;
            newWeb.Title = job.SiteTitle;
            newWeb.Url = subSiteUrl;
            newWeb.UseSamePermissionsAsParentSite = job.InheritPermissions;
            newWeb.WebTemplate = "STS#0";

            Web web = parentWeb.Webs.Add(newWeb);
            context.ExecuteQueryRetry();

            Console.WriteLine("Site \"{0}\" created.", subSiteUrl);

            // Apply the Provisioning Template
            Console.WriteLine("Applying Provisioning Template \"{0}\" to site.",
                job.ProvisioningTemplateUrl);

            // Determine the reference URLs and file names
            String templatesSiteUrl = job.ProvisioningTemplateUrl.Substring(0,
                job.ProvisioningTemplateUrl.IndexOf(PnPPartnerPackConstants.PnPProvisioningTemplates));
            String templateFileName = job.ProvisioningTemplateUrl.Substring(job.ProvisioningTemplateUrl.LastIndexOf("/") + 1);

            // Configure the XML file system provider
            XMLTemplateProvider provider =
                new XMLSharePointTemplateProvider(context, templatesSiteUrl,
                    PnPPartnerPackConstants.PnPProvisioningTemplates);

            // Load the template from the XML stored copy
            ProvisioningTemplate template = provider.GetTemplate(templateFileName);
            template.Connector = provider.Connector;

            // We do intentionally remove taxonomies, which are not supported in the AppOnly Authorization model
            // For further details, see the PnP Partner Pack documentation
            ProvisioningTemplateApplyingInformation ptai =
                new ProvisioningTemplateApplyingInformation();
            ptai.HandlersToProcess ^=
                OfficeDevPnP.Core.Framework.Provisioning.Model.Handlers.TermGroups;

            // Configure template parameters
            foreach (var key in template.Parameters.Keys)
            {
                if (job.TemplateParameters.ContainsKey(key))
                {
                    template.Parameters[key] = job.TemplateParameters[key];
                }
            }

            // Apply the template to the target site
            web.ApplyProvisioningTemplate(template, ptai);

            Console.WriteLine("Applyed Provisioning Template \"{0}\" to site.",
                job.ProvisioningTemplateUrl);
        }
    }

Any update on above issue, i am still facing the issue.

Hi,
Unfortunately I don't have any update for you. I would double-check the permissions for the app in Azure AD. In fact, the code that raises the issue, usually works properly.

Hi,
Any news about this topic? Have you double-checked the permissions for the app in Azure AD? Thanks.

Hi,
It's working fine with azure AD now.
Thanks
On Aug 27, 2016 12:51 PM, "Paolo Pialorsi"<EMAIL_ADDRESS>wrote:
Hi,
Any news about this topic? Have you double-checked the permissions for the
app in Azure AD? Thanks.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/OfficeDev/PnP-Partner-Pack/issues/133#issuecomment-242901735,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMO9C9lJEaqn_U9hDB5ZA8ZxvT-iAZkRks5qj-WHgaJpZM4JVOBM
.

Thanks for the update. I will close this issue.


Add parameters scope and syncMode

New parameters in Publish-NavContainerApp:

scope - to enable publish and install as tenant extension, which is similar to how AL extension in VS Code works.
syncMode - to enable Add, Clean or Development mode for database schema synchronization. The default sync mode used by VS Code is Development, to enforce database synchronization without increasing the version number of the app.

Looks good, thanks

After this merge, there is error when using the code>

My fault.... I was quickly redoing the changes after a clean clone of the repo. Saw Sync-..... and put the Mode in the wrong place.

I have checked in a fix for this to make the new parameters optional instead of defaulted.


Fix build warning

Definition\ToolsetConfigurationReader.cs(15,7): warning CS0105: The using directive for 'Microsoft.Build.Construction' appeared previously in this namespace [D
Introduced here: https://github.com/Microsoft/msbuild/commit/0a3eb9b25c3ee9f3692d5fe83fcec80ae0698d9c#diff-9166d838beb43a2c911aa6d163edd91dR13

D'oh! :shipit:


Fix display for declining/improving pages

When clicking the number of declining or improving pages, we are taken to a generic report for them, not to a list of pages according to the previous filter (date, etc.).
Followup to #19. See also #28.

Fixed in https://github.com/nischayn22/PageQuality/commit/6f56379e12adc170e90862242bb56b12636f5512

Excellent.


AttributeError: module 'tensorflow' has no attribute 'contrib'

It seems the project is not compatible with tensorflow 2.0, is there any plan for updating?

Wrong Tensorflow version, get yourself the 1.15

Wrong Tensorflow version, get yourself the 1.15

Thank you!

Thank you!


Assignment 1

drift : https://video.drift.com/v/abSxoBb4UY20zYwLTsSeTJa9qMXCxdRMQcwwKXqcgH04/
screenshot :

Metric
Value

alert_status
:white_check_mark: OK

bugs
4

code_smells
47

reliability_rating
D (at least 1 Critical Bug)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


Missing library-level docs for dart:ui

We'd love at least a one-liner for dart:ui, now that we're generating docs. But, more than a one-liner is also helpful, too! :)

Great, thanks!


fix web app dev build

The instructions for running web in BUILD.md no longer work. Running bin/go-run web from the root of the repo fails because it cannot find the template and static dirs, as the default params assume the process is started from the web subdir:
$ bin/go-run web --help
...
  -static-dir string
    	directory to search for static files (default "app/dist")
  -template-dir string
    	directory to search for template files (default "templates")

This results in a null pointer exception, as the template var is nil:
https://github.com/runconduit/conduit/blob/a9d4a3d74e6912889a8056a3b788d281720a3fa2/web/srv/server.go#L115
Action items:

Update BUILD.md with correct build/run instructions:

cd web
../bin/go-run .

Modify loadTemplate to return an error if the template is not found:
https://github.com/runconduit/conduit/blob/a9d4a3d74e6912889a8056a3b788d281720a3fa2/web/srv/server.go#L103


Do not update if the only change is timestamps

txn({id:'foo', create:true, timestamps:true}, noop, done)
txn({id:'foo', create:true, timestamps:true}, noop, done)

function noop(doc, to_txn) {
  return to_txn()
}
function done(er, doc, txr) {
  console.log('Store attempts', txr.stores)
}

Seems like the output should be 1, then 0, not 1, then 1.

Actually this already works as I describe.


4.x: Use Helidon copyright module for generated code

Relates to https://github.com/helidon-io/helidon/issues/7062
I don't see matches for helidon-pico-processor, or helidon-pico-configdriven-processor, although in the original issue it says we should apply it there too.

Now renabled to helidon-inject-processor and helidon-inject-configdriven-processor

Now renabled to helidon-inject-processor and helidon-inject-configdriven-processor

I have updated that too


Wrap cells in tables

1. Prevent table overflow in desktops
I like how my table looks in the ghost editing page:

However, the table overflows when shown on the website:

I like that there's more space separating each column when displayed on the website, but when there are too many columns, I think a better behavior will be to condense the table with narrower gaps and wrap contents in cells more if necessary to avoid overflow
2. Wrap cells in mobiles
I like your design of a fully responsive table in mobile which holds the headers stationary.

However, I think it would be better if all content in one cell be wrapped so that they are all visible without horizontal swiping.

@AlienKevin as you posted, the default ghost editor is much wider than the post content area. It would be difficult to see if we squeeze everything into the content area. However, for those posts have wide content you might want to use the "Full Width" layout. To enable that, simply go to the post editing page, click the gear icon at the top right corner. Then scroll down to select the Full Width from template.
Actually, it would be a bad idea to show tables in mobile devices. But sometimes we have to do that, so for mobile devices I used the horizontal slide as you have seen.
I am planning to improve the post display after v1.0.0 (e.g. horizontal scrolling in desktop too). In the meanwhile, please feel free to implement other better table layouts and discuss in here.

Thanks for your detailed reply! I will try your suggestions.

Thanks for your detailed reply! I will try your suggestions.

@AlienKevin You are welcome. And for such a long post, you might want to enable Table of Content for the page or even enable for the whole website. doc here


[CodeGen] Add a pass to canonicalize HAL interface load/store

Right now this only contains one pattern that folds tensor reshapes
into the loaded subspan.
After HAL interface materialization, outlined dispatch regions
become modules to be compiled into executables run on a specific
target. Those modules uses HAL interface binding ops to access
buffers holding input/output data. From IREE's perspective,
buffers just contain a bag of bytes. So the executable translation
is free to reinterpret the buffer in whatever shape that fits.
Therefore we can fold reshapes.
This enables turning on depthwise convolution vectorization patterns
in SPIR-V CodeGen path.

Looks good overall, but why separate pass? I am weary having passes for specific things. This seems like it could just be a canonicalization. We are planning to use linalg on tensors as the front end for IREE anyway....

Yeah. I was debating for a while where to put this actually. It's a pattern that involves 3 dialects: Flow/HAL/Linalg. It's matching against a linalg.tensor_reshape op. If we want to set this as a canonicalization pattern, it should be on linalg.tensor_reshape ops. That clearly cannot happen. Making it a canonoicalization pattern for flow.dispatch.tensor.load or hal.interface.binding.subspan ops means we need to check backwards on their uses, which is contradictory to what MLIR patterns generally do too. And it means pulling in 2 dialects as dependencies. All these sounds not proper to me. So a separate pass.
Taking another look of existing passes, we actually have another pass, RemoveDeadMemAllocsPass, that also just contain on simple pattern. I think one way to save yet another pass might be putting the pattern here into it and rename that pass as BufferAllocViewCleanupPass, given they are all performing clean ups on buffer allocations/views. We can collect more patterns in that pass later if more pop up. WDTY?

Taking another look of existing passes, we actually have another pass, RemoveDeadMemAllocsPass, that also just contain on simple pattern. I think one way to save yet another pass might be putting the pattern here into it and rename that pass as BufferAllocViewCleanupPass, given they are all performing clean ups on buffer allocations/views. We can collect more patterns in that pass later if more pop up. WDTY?

Sounds good to me.


Fix composite instructions for empty program

I found a problem when a composite has a glyph program which is empty.
When I generate a PDF via InDesign, which contains a subset of such font, composite glyphs with empty programs still have the "WE_HAVE_INSTRUCTIONS" flag set, but there is no instruction data to decompile. This causes the affected glyphs to disappear from the PDF text, and make Adobe Reader show a warning about damaged fonts.
This patch makes sure the flag is only set if there actually is a non-empty glyph program.
It also adds a warning on decompilation of a broken font extracted from such PDF (instead of failing decompilation).

How was the subset generated? I thought pyftsubset would take care of adjusting the flags when dropping hinting, does it not do that?

So the question is who or what generated the supposedly broken font to begin with?

The subsetted font was generated by Adobe InDesign PDF export. When we remove the warning, the subsetted font will throw a traceback on decompilation with ttx. But maybe that's what we prefer?
The original font was generated by ufo2ft with hinting from my branch of htic causing the problem by adding empty glyph programs to composite glyphs. The issue is fixed there now.
FontValidator sees nothing wrong with the original font btw…
I stumbled across this before, maybe it could be made more consistent in FontTools?

simple glyphs always need a program attribute, even if the program is empty (could be made non-requirement)
composite glyphs may or may not have a program attribute, which has influence on the WE_HAVE_INSTRUCTIONS flag even when the program is empty, which may lead to problems as seen above

Here's the broken subsetted font if you would like to have a look: broken.zip

The original font was generated by ufo2ft with hinting from my branch of htic...

so, the font was already broken before it was subsetted by indesign?
What you describe is already what fonttools is doing. Simple glyphs always have program (even if empty). Composite glyphs may or may not have the program, depending on the flag.
The problem here is that, even if the flag is set, the composite glyph data ends abruptly. It should at least have the numInstructions set to 0 (useless but still valid program).
If the flag says there are instructions but in fact there aren't and the data is insufficient, then sure we could fail more nicely than raise an exception. I suppose you could still add the empty program just after issuing the warning, instead of returning early. The message could be similar to the one we log just after that, about "too much data" (in your case it would be "not enough data"). Maybe instead of if not data check if len(data) < 2, for the numInstructions.
And I would prefer not to "fix" it upon compile, but leave it to user to drop empty programs.

so, the font was already broken before it was subsetted by indesign?

No. It had <instructions/> on composite glyphs. FontValidator doesn’t complain about this, ttx decompiles/roundtrips it without issue. The numInstructions field is there (0000).
Only when the font is subset and embedded into a PDF by InDesign this becomes a problem, because the Adobe PDF export apparently throws away the numInstructions field but keeps the WE_HAVE_INSTRUCTIONS flag.
I don't know yet if the subsetting matters, or the instantiation of the variable font, or if any font embedded in a PDF will have this problem.
So it really may be an Adobe bug, but apparently a longstanding and hidden one.

And I would prefer not to "fix" it upon compile, but leave it to user to drop empty programs.

Because this error is so hard to detect, I thought we could do something to avoid it by changing the logic on compilation of when to set the WE_HAVE_INSTRUCTIONS flag (= set it only if there are actual instructions). Can you think of any use case where having an empty program would be preferred? It just takes up unnecessary space in the file.
The decompilation is a minor issue, because it only occurs when extracting the subsetted font from the PDF and trying to decompile it. And that font actually is broken.

I have tried to make sense of the font binary code to see what happens when the font is embedded:
FFFF  numContours = -1
0037  xMin = 55
FFF8  yMin = -8
01A3  xMax = 419
02E4  yMax = 740
0222  flags USE_MY_METRICS & MORE_COMPONENTS & ARGS_ARE_XY_VALUES
01EF  Glyph index 495
00    xOffset = 0
00     yOffset = 0
0106  flags WE_HAVE_INSTRUCTIONS & ARGS_ARE_XY_VALUES & ROUND_XY_TO_GRID
06FC  Glyph index 1788
77    xOffset = 119
00    yOffset = 0
0000  instructionLength = 0
(next glyph)
FFFF  numContours = -1

After embedding:
FFFF  numContours = -1
0037  xMin = 55
FFF8  yMin = -8
01A3  xMax = 419
02E4  yMax = 740
0222  flags USE_MY_METRICS & MORE_COMPONENTS & ARGS_ARE_XY_VALUES
01EF  Glyph index 495
00    xOffset = 0
00     yOffset = 0
0107  flags WE_HAVE_INSTRUCTIONS & ARGS_ARE_XY_VALUES & ROUND_XY_TO_GRID & ARG_1_AND_2_ARE_WORDS
06FC  Glyph index 1788
007A  xOffset = 122
0000  yOffset = 0
(next glyph)
0002  numContours = 2

I have no idea why the xOffset of the 2nd component changes… but it looks like the PDF generator just cuts off the instructionLength uint16.

I see, so it seems like a bug in adobe pdf font embedding. But you could work around it on your end by ensuring you don't assign empty programs with 0 numIstructions to composite glyphs.

Can you think of any use case where having an empty program would be preferred? It just takes up unnecessary space in the file.

I don't see a use case, but it is valid..
I don't know, I'm -0 on this, but I could be swayed.

I'm leaning towards closing this.

I'd merge: it is a safe recovery from a broken font, which we could otherwise not read.

FWIW, I reiterate my comment from 2 years ago

you could still add the empty program just after issuing the warning, instead of returning early. The message could be similar to the one we log just after that, about "too much data" (in your case it would be "not enough data"). Maybe instead of if not data check if len(data) < 2, for the numInstructions.
And I would prefer not to "fix" it upon compile, but leave it to user to drop empty programs.


Don't shell out to tar on Windows

When running in git bash (and you have tar in your path), this will fail.

Also, looks like shelling out to tar breaks the test fixes introduced in #2

Thanks, @viovanov! Prioritizing for review by the Diego team.
Best,
Eric, CF Runtime Diego PM

thnx @ematpl

Hi, @viovanov,
Could you give us a little more context on how you're using the archiver library, and when you're encountering these errors? We're aware of this library being used in support of some of the components in diego-release. Are you seeing this error when doing development on those components, or is there an independent project that also has this library as a dependency?
Thanks,
Eric

Closing due to inactivity.


Adds a script that collects all profile meta-data into a CSV

it's a python script. run it with python3, from the project root, and it will generate profiles.csv in the same dir as the script.

python3 extract.py

hab nen pull reuqest gemacht: https://github.com/ASKnetCommunity/LEAD/pull/119/commits/958360659f5c95885d6e076f42d7f73fa62e993f

nice, funzt alles einwandfrei! Vielen Dank!


Updates to support complex validation

This PR improves validation options so that it is now possible to use isNot and is to compare values of a field (as a simple alternative to matchesRegEx.
It is now also possible to build rules in the form...
validWhen: {
  allAreTrue: {
     message: 'Error message when all are not true',
     conditions: [
        {
           field: 'FIELD1',
           matchesRegEx: {

(where you can swap matchesRegEx with any of the other validators (is, isNot, lengthIsGreaterThan, fallsWithinNumericalRange, etc).
This allows you to create validation rules where the validation is conditional based on the state of other fields.
The specific use case this addresses was an example where an option in a drop-down menu should not be allowed if another field has a certain value. A workaround would have been to have removed the option (using a custom optionsHandler) but the value here is in being able to provide a message that explains the problem).
You can also use someAreTrue if you just need to check that at least one condition matches.
Where a field is not specified the value of the current field (i.e. the field that this rule has been configured for) is tested.

Following this PR I also made an update in #12 to provide support for 'noneAreTrueto go withsomeAreTrueandallAreTrue`.
I have to admit that I didn't find it as intuitive as I hoped when creating the example but that might be because it was somewhat contrived.


Very slow comparative performance

I was adding RXJS support into my prime-lib library, and ran into some unexpected performance-related issues...

Changing from a regular for-of for an iterable to from(iterable) results in huge > 100x times performance drop.
Changing from an index iteration to a manual RXJS observable results again in ~20x performance loss.

I'm not sure what performance overhead RXJS is expected to create in its latest version, but I thought the figures that I got are way on the outside,  that's why I decided to open this issue.
Here's complete test code:
import {from, Observable} from 'rxjs';
import {cachePrimes} from 'prime-lib';

const cache = cachePrimes(1e7);

function test1() {
    const start = Date.now();
    let prime;
    const {fastIndex} = cache;
    for (let i = 0; i < fastIndex.length; i++) {
        prime = fastIndex.get(i);
    }
    console.log('test1 - index loop:', Date.now() - start);
}

function test2() {
    const start = Date.now();
    let prime;
    for (const p of cache) {
        prime = p;
    }
    console.log('test2 - for-of loop:', Date.now() - start);
}

function test3() {
    const start = Date.now();
    let p;
    from(cache).subscribe(a => {
        p = a;
    });
    console.log('test3/rxjs - from(cache):', Date.now() - start);
}

function test4() {
    const primes = new Observable(obs => {
        const {get, length} = cache.fastIndex;
        for (let i = 0; i < length; i++) {
            obs.next(get(i));
        }
        obs.complete();
    });
    const start = Date.now();
    let p;
    primes.subscribe(a => {
        p = a;
    });
    console.log('test4/rxjs - primes:', Date.now() - start);
}

test1();
test2();
test3();
test4();

Output:
test1 - index loop: 36
test2 - for-of loop: 27
test3/rxjs - from(cache): 3431
test4/rxjs - primes: 711

Test Environment:

RXJS v7.4.0
TypeScript v4.4.4
prime-lib v0.4.1
OS: Windows 10
NodeJS: v16.13.0
CPU: Ryzen 9, 5900X, 3.7Ghz

UPDATE
And if we increase the number of items to 100mln at the top: cachePrimes(1e8), then the results are these:
test1 - index loop: 346
test2 - for-of loop: 262
test3/rxjs - from(cache): 42118
test4/rxjs - primes: 6475

i.e. from(iterable) is 160 😮  times slower than for-of for the same iterable. And custom RXJS observable is 18 times slower than the same loop directly.

Out of curiosity, I did a re-run of the above tests with the last v6.x of RXJS, for 1e8 items:
test1 - index loop: 307
test2 - for-of loop: 262
test3/rxjs - from(cache): 27612
test4/rxjs - primes: 1657

It shows us that v7 is ~2x slower processing a regular iterable, and ~4x slower processing a manual iterable, than v6.x

I changed the  test removing external dependencies, and also writing a test that represents "what I think Observable should minimally do as a black box" to better compare when closures & stuff is in the middle.
import { from } from 'rxjs';

function* myGenerator() {
  for (let i = 0; i < 1e7; i++) {
    yield i
  }
}

function test1() {
  const start = Date.now()
  let prime
  for (const p of myGenerator()) {
    prime = p
  }
  console.log('test2 - for-of loop:', Date.now() - start)
}

function test2() {
  const wrapIterable = <T extends any>(iterable: Iterable<T>) => {
    return {
      subscribe: (callback: (value: T) => void) => {
        for (const p of iterable) {
          callback(p)
        }
      },
    }
  }

  const start = Date.now()
  let p
  wrapIterable(myGenerator()).subscribe(a => {
    p = a
  })
  console.log('test5/custom - wrapIterable:', Date.now() - start)
}

function test3() {
  const start = Date.now()
  let p
  from(myGenerator()).subscribe(a => {
    p = a
  })
  console.log('test3/rxjs - from(cache):', Date.now() - start)
}

test1()
test2()
test3()

I think something worth noting here though is that we're talking about 10,000,000 synchronous emissions here. Any tiny overhead will definitely add up to a few milliseconds, and Observables do have some overhead.

I think something worth noting here though is that we're talking about 10,000,000 synchronous emissions here. Any tiny overhead will definitely add up to a few milliseconds

Worth noting (from my perspective):

RXJS is designed to handle infinite streams, and it shouldn't chock on 1e7 data emissions.
That tiny overhead, reaching over 100x times in performance loss, doesn't look so tiny.
Getting 2x - 4x worse performance for my tests by going from v6 to v7 of RXJS looks bad

Sorry if I didn't express myself correctly - I was just pointing out that even a tiny overhead per message on that scale is going to have a large impact on the overall duration.
A microsecond of overhead per emission on a 10M-emission test would result in 10 seconds of total overhead.
On my machine, running against 10M emissions it adds an overhead of about 1 second (490 on for loop vs 1400 on RxJS), which means it's a 10th-million of a second of overhead per each emission: around 100 nanoseconds per emission. I agree that's a lot of overhead on applications where you need to deal with milions of events per second.
On another note,

RXJS is designed to handle infinite streams, and it shouldn't chock on 1e7 data emissions. Consider piping data from a large file.

I'd say RxJS was more designed to work with I/O (e.g. asynchronous calls, which have lots of overhead per notification) rather than fast and efficient computing. Synchronous observables are often a pain point of RxJS.
Also, reading data from a large file has a way longer overhead than what RxJS have. I just tested reading a large file with node's file createReadStream default chunk size of 64KB, it takes 1300ms on my machine to read a 15259-chunk file (1GB). Imagine now a file with 10 milion chunks, it would probably take around 15 minutes, compared to the second of overhead that RxJS would add on that case.

That's god to know :)
In the meantime, since a lot of time passed from when I asked, I wrote my own processor for iterables - iter-ops, is what I've been using in my projects. But I'm still using RXJS with Angular, because it is part of it.


Ability to get sorted arrays when fuzzing

Component
Forge
Describe the feature you would like
As discussed in https://github.com/foundry-rs/foundry/discussions/3948, my protocol has some business logic that is dependent upon the end user sending a sorted array as a function argument.
I've been bashing my head against the wall trying to fuzz the input arrays in a way that is scalable (tests don't take ages to run), to no fruition.
I pulled together an implementation of the quicksort algorithm in Solidity based on the sources I found on the Internet. The issue is that sorting a fuzzed arrays slows down test run times.
It would be nice to be able to instruct Foundry to sort the array on our behalf. I'm thinking of something like this (echo-ing the proposal I left in https://github.com/foundry-rs/foundry/issues/4085):
/// @custom:sort-array
function test_Something(uint256[] memory arr) external {
    // ...
}

That is, whenever the custom NatSpec tag above is specified, Foundry would provide the user with a sorted array arr, every time. It would be cheaper to let Foundry do this in Rust rather than sorting the array in memory in Solidity.
As an alternative to the above, we could consider using a specific prefix for the array variable names:
function test_Something(uint256[] memory sortedArr) external {
    // ...
}

The idea being, every time Foundry sees a function param that is an array type and its name starts with sorted, it would automatically sort the array.
Sorted arrays should be a common enough use case for a feature like this to be worth considering and implementing.

This sounds interesting.
Technically this is feasible
We can use proptest::prop_map to generate a sorted array out of a proptest strategy.
We could also extend the input of the fuzz_param function to accept some kind of metadata associated to param.
Such metadata would let us generate more sophisticated compound strategies (i.e. for sorted arrays).
https://github.com/foundry-rs/foundry/blob/8307d6dc09dbd99d64239b901413869dc33cfa3e/evm/src/fuzz/strategies/param.rs#L14
The config part
imho the NatSpec approach is probably more flexible than the param name. Given though we should define some meta language to convey strategy configs to the fuzzer i.e.
/// forge-config:fuzz:strategy:sort(arr, desc)
function test_Something(uint256[] memory arr) external {
    // ...
}

Wondering if what lacks from current Foundry fuzz testing framework is a corpus, just like we have with libfuzzer for instance, see the Corpus enum https://docs.rs/libfuzzer-sys/latest/libfuzzer_sys/macro.fuzz_target.html


Adds TimedDespawn component to Invisible Walls

About the PR
fixes: #8430
Replaces the component on Mime's invisible walls with the one made in the magic PR.
Screenshots

Changelog

:cl:

this doesnt remove the old component, just the references to it in yaml

this doesnt remove the old component, just the references to it in yaml

I couldn't find an Invisible Wall component specifically. I think sloth nuked that one already.

this doesnt remove the old component, just the references to it in yaml

I couldn't find an Invisible Wall component specifically. I think sloth nuked that one already.

i think she's referring to the DeleteAfterTimeComponent.

this doesnt remove the old component, just the references to it in yaml

I couldn't find an Invisible Wall component specifically. I think sloth nuked that one already.

i think she's referring to the DeleteAfterTimeComponent.

I can remove that too but I found the PR that nuked the invisible wall component:
https://github.com/space-wizards/space-station-14/pull/8433/files


Gogs

Guys, look at https://github.com/gogits/gogs

I am already aware of gogs. Its just that I wanted my git server to be light weight and run without any database and prior configuration.
Anyhow, I don't see any point of opening this issue.
@makhov , Feel free to reply to my concern here.

I just read "Motivation" section in readme about your troubles with GitLab and I guess, that maybe you don't know about Gogs.


[$500]  Workspace - Workspace name character limit is 80 instead of 100

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: .4.40-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Issue found when executing PR https://github.com/Expensify/App/pull/33601
Action Performed:

Go to staging.new.expensify.com
Go to workspace settings
Select a workspace
Go to Profile > Name
Enter text more than 100 words

Expected Result:
The workspace name character limit is 100
Actual Result:
The workspace name character limit is 80 instead of 100
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/ec321b3e-b41d-44a4-b124-2a4a7c4ced6c
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~016db8b2a4859b7008
Upwork Job ID:<PHONE_NUMBER>969716224
Last Price Increase: 2024-02-12

We think that this bug might be related to #wave5
CC @dylanexpensify

Proposal
Please re-state the problem that we are trying to solve in this issue.
Workspace - Workspace name character limit is 80 instead of 100
What is the root cause of that problem?
It is set to WORKSPACE_NAME_CHARACTER_LIMIT: 80
https://github.com/Expensify/App/blob/4ff57926cd5edb60c60082c13618cfcf787dcbc0/src/CONST.ts#L1574
What changes do you think we should make in order to solve the problem?

set the WORKSPACE_NAME_CHARACTER_LIMIT: 100
Working Image
Before

After

Update Proposal

This should be fixed as part of this. Closing this.


Reenable domainslib/task_parallel test

This fixes #10.
It pin-depends the development version of domainslib until the next release containing ocaml-multicore/domainslib#67.

Merging as the MacOSX CI failure is unrelated.


update check causes ssl exception sometimes

Breakdown
Client

[x] use the github main branch version.txt file to get the current version
[x] remove the current version checking code from client
[x] remove Beautiful Soup Dependencies if not being used elsewhere
[x] add exception handle to version checking if not successful

unable to repro this issue, but we do want to remove the web scraping part and let fishy fetch the current version from the web instead

done


Suppress HipChat Notifications if Nothing Reaped

If termination completes without error and there are no instances terminated, this will stop the reaper from notifying HipChat.  This is to reduce the noise, making it easier to identify when something important occurs.

Closed this as I'm addressing it in another PR. Thanks for the contribution!


Enable custom transforms for declaration emit

I try to use absolute paths aliases for libraries. Output d.ts with aliased paths breaks type resolving, when package usesd as external package. Problem not resolved in typescript (see #18972).
Example:
my-lib/src/index.ts
export * from 'my-lib/some'

my-lib/dist/index.d.ts
export * from 'my-lib/some'

my-app.ts
 import some from 'my-lib'
 // ts does not check types here:
 some.bla-bla

I wrote ts-transform-paths transfomer, which rewrites aliased import paths accordingly tsconfig baseUrl and paths.
With my trasformer my-lib/dist/index.d.ts
export * from './some'

It's works for npm packages and applications.
Problem:
Ts language service service.getEmitOutput(key, true) ignores transformers in dts generation mode:
performance.mark("beforeEmit");
const transformers = emitOnlyDtsFiles ? [] : getTransformers(options, customTransformers);

In my transformer chain helper i use a emitFiles hack to keep some dts-related transformers. I use dts flag to indicate that plugin works for d.ts.
export interface CustomTransformer {
    dts?: boolean
    before?: ts.TransformerFactory<ts.SourceFile>
    after?: ts.TransformerFactory<ts.SourceFile>
}

May be add posibility to filter dts related trasformers in typescript if emitOnlyDtsFiles given?
Something like this:
performance.mark("beforeEmit");
const transformers = getTransformers(options, customTransformers, emitOnlyDtsFiles);

Angular needs this also for the Ivy renderer compiler to be a ts.CustomTransformers
Discussed with @mhegazy a proposal where we add a property named afterDeclaration:
interface CustomTransformers {
        /** Custom transformers to evaluate before built-in transformations on .js emit. */
        before?: TransformerFactory<SourceFile>[];
        /** Custom transformers to evaluate after built-in transformations on .js emit. */
        after?: TransformerFactory<SourceFile>[];
        /** Custom transformers to evaluate after built-in transformations on .d.ts emit. */
        afterDeclaration?: TransformerFactory<SourceFile>[];
    }


[CT-2156] [Feature] Add dbt-redshift connection methods - Auth Profile and IdP Credentials(Azure and Okta Identity Providers)

Is this your first time submitting a feature request?

[X] I have read the expectations for open source contributors
[X] I have searched the existing issues, and I could not find an existing issue for this feature
[X] I am requesting a straightforward extension of existing dbt-redshift functionality, rather than a Big Idea better suited to a discussion

Describe the feature
Provide additional authentication methods to connect to dbt-redshift. The new code changes will allow users to connect to dbt-redshift using authentication profiles and Identity Provider (IdP) Plugins for Azure and Okta. Users will need to provide required parameters specified in this Redshift documentation when configuring profiles.yml in order to authenticate using these new methods.
Describe alternatives you've considered
No response
Who will this benefit?
No response
Are you interested in contributing this feature?
No response
Anything else?
No response

Thanks for opening @jiezhen-chen !
I'm assuming you created this issue to link to https://github.com/dbt-labs/dbt-redshift/pull/323 (per request of @Fleid) ?

Thanks for opening @jiezhen-chen !
I'm assuming you created this issue to link to #323 (per request of @Fleid) ?

yes!

Awesome!
I added the issue number here to link it with the pull request:

@dbeatty10 @jiezhen-chen I don't see it covered in the feature request, but it would be really crucial to also support the generic plugin:

Any update on this?

bump

bump


Horizontal scrolling issue in Preview mode

Environment: Visual Studio Code 1.84.2, D2 VS Code Extension v0.8.8, MacOS 14.0
Steps to reproduce:

open a d2 file with a horizontally long diagram
zoom in (with both "+" or Ctrl+Scroll)

Expected result: horizontal scrolling will also "zoom" - so it's possible to scroll to the end of a diagram
Actual result: horizontal scrolling stays as before and it's not possible to scroll to the very end of a diagram
Workaround: after resizing windows (by moving the vertical splitter) - scrolling will be fixed ("zoomed" to scale that allows to scroll to the very end)

This bug was fixed in the #117 branch.  Hopefully we can get that PR accepted soon.

Can we reopen this issue as no fix has been implemented yet?


document failure/retry modes in distributed use

Glow looks really elegant and simple to get started with and cool!
As a new potential user, my biggest question is how error handling and re-try (if any) works in distributed mode.  Specifically, I was hoping to find either "at most once" or "at least once" delivery referenced in the documentation.  (I've browsed the wiki, readme, and skimmed some of the godoc so far -- I might've missed it, but if so, consider this a request for a more central link to the info :) )
I'm not sure if the "at-[most|least]-once" delivery terminology is universal, but here's a description if I'm speaking gobbygook: http://bravenewgeek.com/you-cannot-have-exactly-once-delivery/
Based on the functional intentions of glow, I'm guessing it's at-least-once delivery semantics, but I'd really like to know for sure -- it's important in case I want to call other functions that may have side effects (such functions would have to be carefully designed to be idempotent, obviously).

Good point. I feel "at most once" or "at least once" sounds very professional when I hear someone else using these terms, because I always have to pause a bit to think about what it really means. I think glow can be classified to "at most once", for now.
Actually glow does not try to use these terms. Glow runs just like a common program. It does not try to auto-recover from any actual machine shutdown. It just breaks like having an exception.
So this in a sense just give back the retry decision to the user. The user can decide to run it again, or fix some real issue with the code. This would not work for google/facebook scale clusters, but should work fine for 10 ~ 20 nodes.
You are welcome to adjust the readme in a better way to explain this.


Add support for readonly

Please add readonly property / attribute for paper-chip-input and paper-chip-input-autocomplete.

Done https://github.com/ThomasCybulski/paper-chip/pull/58

When set to readonly, it is still possible to remove chips via close button.

For your case, you can change  the closable to false


Added TLS secret to KubernetesV1 task.

Task name: KubernetesV1
Description: Added the possibility to add TLS secrets with the KubernetesV1 task.
Documentation changes required: Y
Added unit tests: N
Attached related issue: N
Checklist:

[X] Task version was bumped
[X] Checked that applied changes work as expected

@rohit-batra Can you take a look at this?

Still nothing on this. @rohit-batra


Exceptions during libertyRun will now correctly cause the build to fail

Closing this pull request since recent changes to libertyRun have fixed this issue.


Fixing the git attrs for all the people and all the files and all future 🙌

Summary
We have had problems with .gitattributes, .bat and .pbxproj (Xcode) files for a while. The two main concerns were:

Xcode project files not diffing correctly.
Windows files having messed up line endings.
This PR fixes both issues, hopefully forever.

After seeing the diffs from v0.63 -> v0.64 and the changes in https://github.com/facebook/react-native/pull/29792, I, again, felt that this is going to cause problems, so I looked into both issues.
I started with git check-attr -a Artsy.xcodeproj/project.pbxproj after removing the .gitattributes file that contained *.pbxproj -text and there are no "guessed" attributes that would break things, and diffing and checking in worked well with the current git version. I agree this is not needed, so I left it out.
I looked into what it was doing before, and it was telling git (for the xcode project file) to "unset text", which means (according to https://git-scm.com/docs/gitattributes#_text) that it should not try to do any line ending changes when checking in that file. At some point git must have done this, and that's why it was needed, but no more, so it's safe and good to get rid of this, as it helps with nothing anymore.
Now for the bat files. We don't need any extra instructions for gradle and *.sh files as they are guessed correctly, so these are also safe to keep removed (https://github.com/facebook/react-native/pull/29792/files#diff-618cd5b83d62060ba3d027e314a21ceaf75d36067ff820db126642944145393eL5).
But we do need the *.bat instruction. I noticed that when working on macOS there were two problems that made things funky.

One, is that the editor (usually vscode but not the important) would convert line endings to lf when editing a bat file.
Two, is that git thought the files are lf line endings.

To fix the first one, I added a rule in .editorconfig (that's whats important, when any editor just supports editorconfig, but all my editors do). I can't believe how we missed that for sooooo long 😅!
To fix the second, I added the .gitattributes instruction and renormalized the files (https://git-scm.com/docs/git-add#Documentation/git-add.txt---renormalize and https://docs.github.com/en/github/using-git/configuring-git-to-handle-line-endings#refreshing-a-repository-after-changing-line-endings). I think the problem all along was that even though the files had crlf, git still thought they were using lf.
After the editorconfig change and the renormalization, everything behaves correctly and as expected. Changing bat files on macOS and Windows is fine now, producing only the smallest change needed, no random line ending diffs. Also here is a screenshot of one of the files actually crlf. It's these tiny things at the end of each line 👓.

I have tested this on macOS and Windows, doing changes in both bat and xcode files, and verified that diffing and checking in files works well.
Changelog

[General] [Added] - Added an .editorconfig file to help with default line endings for Windows files.
[Internal] [Fixed] - Added a rule in .editorconfig and .gitattributes to help with default line endings for Windows files.
Test Plan

Feel free to go on a macOS or Windows machine (or both) and, using any editor that supports editorconfig, do any change in a .bat file. Then look at your git diff in terminal or gui or whatever you use, and then look at the sky and smile. It's fixed. The diff is just your change. Everything is as it should 💜.

Thanks for the PR @pvinis - Before merging this, I would like to understand the problems you were facing a bit better. Let's have a quick look at the Gradle Wrapper scripts on the current master branch in this repo:
$ git ls-files | grep gradlew | xargs file
gradlew:                                           a /usr/bin/env sh script text executable, ASCII text
gradlew.bat:                                       DOS batch file text, ASCII text, with CRLF line terminators
packages/react-native-codegen/android/gradlew:     a /usr/bin/env sh script text executable, ASCII text
packages/react-native-codegen/android/gradlew.bat: DOS batch file text, ASCII text, with CRLF line terminators
template/android/gradlew:                          a /usr/bin/env sh script text executable, ASCII text
template/android/gradlew.bat:                      DOS batch file text, ASCII text, with CRLF line terminators

Everything looks correct to me.
So first question: Why is there a need to "renormalize" the files, and why do they show up as changed in the PR diff?

Also just a minor addition regarding *.pbxproj -text (@matt-oakes) - To my knowledge, a .pbxproj files does not normally contain a NUL character in its first 8000 bytes (i.e. Git would not treat it as binary), so that configuration would have no effect.

The normalization is something that apparently git needs.

Sorry I don't quite understand. Can you explain in more detail? If you check my message above, you can see that these files already have the correct line endings.
What I think is happening here is your editor is converting entire files when you are only editing single lines as a side effect. That's clearly not what should happen.
Can you please try:

Start with a fresh/clean version of the repo
Remove the line end_of_line = lf from .editorconfig
Edit some files, and verify that everything is working correctly

Again, as I mentioned, all files are already in their expected standard format - there is no need for any conversion and/or addition of new files that configure settings to the default value.

I can try tomorrow. Are you in the RN discord or somewhere else where we could talk faster, so I can try and then we can talk and see what's up?

@pvinis @friederbluemle did you get a chance to discuss this PR? Let us know if we should consider it for merging, or if there's any more work that needs to be done.

Considering the contents of this PR have already been incorporated onto 0.64 and no issues have been reported, we are going to proceed with merging this PR.

@hramos - Thanks for the reminder. Can you please check my comment above? As explained - The files already had the correct line endings in the repository (there is no need to add gitattributes or editorconfig). Now that it's merged, the Windows .bat files have their CRLF endings removed, which is incorrect. I've reverted it here: #31398
@pvinis - Please confirm you followed the steps in my previous message and everything is working for you locally. Also make sure your editor does not change line endings as a side effect of editing single lines in a file (some editors might have an option in settings).
It looks like the one thing that might be useful are the three lines in the existing .editorconfig in the root of the repo:
# Windows files
[*.bat]
end_of_line = crlf

Again, @pvinis to confirm if that works locally. Thanks!

I'll check this right now.

Ok let's go.
I have commented out all custom git configs and editor configs.

Cloned rn repo fresh, on master, with the changes in this PR merged.
First thing I did, confirm the files are correct right now.

They are. gradlew has LF, gradlew.bat has CRLF.

As extras, I will try to edit these files and commit, and see if they stay with the correct line endings. I will also take a look at your new PR.

Editing the files. I edited the bat file with clean neovim, and it kept all line endings, with a line removed and a line added.

Git shows the diff correctly, not changing the whole file like before.

I will also edit this file with vscode, to hopefully get some line ending breakage, to see if git handles it correctly. First thing, is that vscode correctly understands it's CRLF and things work as before with neovim, but I will force it to change to LF.

So here we see the line endings are now LF.

Git diff correctly shows only the changes, not making the diff 91 lines like the whole file. That is already a gain for diffing. To force it, I had to change the editorconfig, so I would say with the right editorconfig we are pretty safe, and even if that breaks, git still handled it well.

So my final thoughts here are:

We keep the editorconfig rule for bat files. In the root of the repo for people working on RN, and in the template dir for people init-ing an RN project.
We keep the gitattributes rule for bat files. That way git will handle the diffs well, no matter what the line endings end up being. editorconfig will keep them correct, and even if they are not correct because of a broken editorconfig, it will still handle the diffing correctly.

I think the new PR you made is not actually needed, but please, if you try to replicate all the above in a fresh master with my changes in there, and maybe even in a fresh repo on your branch, and something is handled in a better way on yours, then let me know! I am also happy to check stuff together on discord or wherever else.

@pvinis - Thanks a lot for the detailed response and analysis :+1:

First thing I did, confirm the files are correct right now.

I admit, it's not immediately obvious, but what you checked here are the files in your working directory, not the files stored in the repository. That's because now that there is a .gitattributes file, Git performs an additional conversion when the files are placed in the working directory, hiding the fact that they are committed with the wrong line endings.
If you want to see how these files are actually stored:

Remove .gitattributes (so that no conversion happens)

git checkout -b temp
git rm .gitattributes
git commit -m"Remove .gitattributes"

Now, delete and restore the existing gradlew.bat file in the working directory

rm gradlew.bat
git checkout gradlew.bat

Check line endings using file (or use bat -A, as in your examples)

$ file gradlew.bat
gradlew.bat: DOS batch file text, ASCII text

The file only has LF line endings. Expected would be:
$ file gradlew.bat
gradlew.bat: DOS batch file text, ASCII text, with CRLF line terminators

Alternatively, if you use something like diff-so-fancy the removed carriage return characters will also show up in git diff:
$ git -c core.pager='diff-so-fancy | less --tabs=4 -RFX' show -p 73844712b62 -- gradlew.bat

-@rem^M
-@rem Copyright 2015 the original author or authors.^M
-@rem^M
...
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
...

^M represents CR, which was removed in 73844712b62 (not visible on GitHub's UI).

I will check these again and report back.
But just as a quick response, I definitely care in order:

easy and small diffs (just the actual diffs, not the whole file)
setup that doesn't break easily for users (rn devs and/or rn project creators)
"correct" line endings for windows (especially when things work with editorconfig. I have seen a few "best practices" that actually suggest to store everything with LF and only locally on windows machines make sure to keep them with CRLF, which is happening with git.)