Implementing #944 (Feature request: texture rotation)

I didn't implement the rotate function, as described in #944. Something about it seems off.
While it makes sense to have a generic rotate function, I don't like introducing confusing behavior.
Better to keep each function separate and call them as needed.

I agree with @victor-rene, despite having made the proposal for the general rotate function.
In praxis one would probably not use integers such as (0, 90, 180, 270), but (0, 1, 2, 3) or, if the texture is an arrow, ('left', 'right', 'top', 'down'). Also, writing such a mapping is trivial.

@victor-rene Any news on this? Maybe you could modify this pull request to remove the generic rotate function..

@inclement Have you thought about the naming?
I think adding a generic rotate function is a bad idea. (One can easily write such a mapping, or use an if-else-if-chain.)

This issue was already addressed with this merge: https://github.com/kivy/kivy/pull/1996
Thanks anyway :-)


Dark Prismarine slab shows as water even if it's not waterlogged

A build with dark prismarine blocks and slabs shows as water in minutor even if there's no water visible or waterlog at the surface. Minutor seems to be rendering dark prismarine slabs as water for some unknown reason

when looking into the Block definition file:

prismarine_lab should be #699f8a
dark_prismarine_lab should be #3f5ce4

so this is obviously wrong . . .

#36604f would be the right color

@Delvin4519 please force an definition update and report if it is fixed now.

I can't seem to find a way to force a definition update. I've tried the settings option and clicking check for definition update, and reinstalling minutor and again trying to force a definition update, but it still shows a block definition of 1.20 23w12a.

@Delvin4519 The definitions are downloaded to %appdata%\Local\seancode\Minutor (on the Windows version, at least). That folder can safely be deleted and Minutor will download a new version of the definitions the next time it starts up.

I've done that now resetting/deleting the definitions folder location, and minutor is still re-downloading the old definitions file from 1.20 23w12a. So the fix doesn't show up yet.

Looking at the definitions source file, we can see that it is tagged with the version of 1.20.23w12a, which corresponds to the last Minecraft version where new blocks were added, so what you are seeing is likely correct. Have you tried opening the world file in your original message to see if the colours have been updated?

Yes, my fault. I forgot to increment the version number.

Should work now.
You can always download the latest definition and overwrite the local file in %appdata%\Local\seancode\Minutor with it.

Too fast changes increase the chance for errors ... next one is checked in.

Closing this issue as resolved


Consider adding an auditory indication for start/stop

Right now it brings itself to the foreground but I have seen it not do this. Also you then must check if its in the recording state if you keep it on another window. A setting to have a subtle enable/disable chime like the iOS and Mac dictation would be nice, and also a good indication of when the microphone is in use.

I ended up making a script in the programming language AutoHotKey to do just that whenever I hit the transcribe button that I assigned to my mouse. Definitely a worthy suggestion. The audio feedback is helpful. It would be particularly great if audio feedback was supported by the Whisper program itself.

There is this fantastic fork of Whispering which should at least help with this issue!
https://github.com/braden-w/whispering/issues/69

Hey guys! There is now a tray icon and audio cues for start and stop. This was closed in #108 and the latest version so I will be closing now :) thank you very much!


Token metadata (links)

What is a proper way to provide links in the token?

What do you mean links? Like a URI for the metadata?

yeah like telegram, twitter and website

Add them to the create params for the token metadata:
https://github.com/rckprtr/pumpdotfun-sdk/blob/main/src/types.ts#L13


UVC non compliance - GET_DEF(PROBE) not supported

From @CarlFK on March 31, 2015 22:45
so that v4l2-compliance doesn't error:
$ v4l2-compliance -d /dev/video1
    fail: v4l2-test-controls.cpp(513): g_ext_ctrls worked even when no controls are present
test VIDIOC_G/S/TRY_EXT_CTRLS: FAIL

And we don't get the note in dmesg:
[ 5188.310191] usb 2-1.3: new high-speed USB device number 7 using ehci-pci
[ 5188.403409] usb 2-1.3: New USB device found, idVendor=1d50, idProduct=60b7
[ 5188.403417] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5188.403422] usb 2-1.3: Product: HDMI2USB
[ 5188.403425] usb 2-1.3: Manufacturer: JANI
[ 5188.403900] uvcvideo: Found UVC 1.00 device HDMI2USB (1d50:60b7)
[ 5188.404196] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.

https://github.com/timvideos/HDMI2USB/blob/master/cypress/uvc.c#L94
             // case UVC_GET_DEF:
             // FIXME: Missing this case causes the following errors
             // uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.

Copied from original issue: timvideos/HDMI2USB-jahanzeb-firmware#120

Work to fix this problem has been done in following branch -> https://github.com/mithro/HDMI2USB-misoc-firmware/commits/fx2-refactor
It required quite a lot of rewriting the FX2 firmware.
This is also surprisingly complicated see comments at https://github.com/mithro/HDMI2USB-misoc-firmware/blob/fx2-refactor/firmware/fx2/uvc.c#L773

This issue was moved to timvideos/HDMI2USB-fx2-firmware#9


Nodes magically moves to bottom of tree hierarchy

Godot version:
0afdc5c559520204987544d30560745dbf29a390
OS/device including version:
Windows 10, 64-bit, GTX 960
Issue description:
With an instance scene and "editable children" selected, add a Particles2D node to the child of that instance scene, and place it somewhere in the hierarchy, press F6 to scene preview. Then, switch to a different scene, then switch back and you will notice that Particles2D node is at the bottom.
This does not happen on 3.0.6
Example:

I did some more testing.
It actually moves to the bottom of the tree list, right when you scene preview (I checked remote tree). The mere act of scene switching doesn't cause this

Does it happen with other nodes?

@bojidar-bg Just tested it with Spatial, Control, Node2D, AnimPlayer, AudioStream, CanvasLayer, Timer, Tween, CanvasLayer and Spatial. Basically all of them so far

I've experienced this many times.
I've considered that Godot does not allow reorder the added node between children of instanced node.
It happens also with 2.x

So it happens with 2.x and the master branch, but did not happen with 3.0.6? That would be weird.

to be more precise,
it can be moved between children node of instanced node in editor.
but it's moved to the bottom of instanced node when run, can be checked by remote inspector.
I believe this happens all version.
so I had workaround in _ready()
func _ready():
    instanced_node.move_child(wanted_node, wanted_index)

Not critical for 3.1, kicking to 3.2. Sorry :(

Still valid in 3.2.2


Trait bound is not satisfied (external impl of a trait)

I am trying to specify the following code:
use vstd::prelude::*;

// Cannot be put in the verus!{} block because
// error: The verifier does not yet support the following Rust feature: &mut types, except in special cases
impl<T: 'static> ForeignOwnable for Box<T> {
    type Borrowed<'a> = &'a mut T;
}

verus!{
pub trait ForeignOwnable: Sized {
    type Borrowed<'a>;
}

struct A { a: i32 }
struct B {}

pub trait Operations: Sized {
    type QueueData: ForeignOwnable;
}

impl Operations for B {
    type QueueData = Box<A>;
}

fn main() {
    let a = Box::new(A { a: 1 });
}
}

Which gives the following error:
error: the trait bound `C<6, (std::boxed::Box<A>, std::boxed::Box<C<13, ()>>)>: T41_ForeignOwnable` is not satisfied
  --> test7.rs:20:1
   |
20 | impl Operations for B {
   | ^

error: aborting due to 1 previous error

Is there any way to make Verus realize that the ForeignOwnable trait is implemented for Box? I tried playing with external_trait_specification, but got nowhere...

Looks like another lifetime-generate error


go get exited with error

while doing go get as mentioned in read me got following error
go get github.com/paulsmith/gogeos/geos
In file included from ../../pkg/mod/github.com/paulsmith/gogeos@v0.1.2/geos/coordseq.go:4:
./geos.h:1:10: fatal error: 'geos_c.h' file not found
#include <geos_c.h>
         ^~~~~~~~~~
1 error generated.

I am also getting the same error.
Kindly help or give us some guidance.


Integration of Azure DevOps datapath

Reference Issues/PRs

Fixes #199
What does this implement/fix? Explain your changes.

[ x ] Add datapath to get data from Azure DevOps

Any other comments?
Please feel free to comment and make suggestion, it's my first PR.
🧡 Thanks for contributing!

Thank you for your work, really appreciated. However, I need to close this, see comments in #199.


Open pinned gis libraries and update calls to remove shapely to_wkt() calls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.002%) to 88.717%

Totals

Change from base Build<PHONE_NUMBER>:
0.002%

Covered Lines:
5032

Relevant Lines:
5672

💛  - Coveralls


hlae image injection failed

hlae image injection failed
help

See https://github.com/ripieces/advancedfx/issues/35

I guess it's solved then :-)


haskell.compiler.ghc961: init at <IP_ADDRESS>30111

xhtml seems to be built unconditionally now which is at least one thing improved by hadrian.
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Thank you for this work.
I've tested it and the compilers works perfectly. However, ghcWithPackages is not working.
Initially, it fails because of:
ghc> rm: cannot remove '/nix/store/jfk7c17xgyfvxjbf9cg3mmcwc9rwh5sm-ghc-<IP_ADDRESS>30128-with-packages/lib/ghc-<IP_ADDRESS>30128/package.conf.d/package.cache.lock': No such file or directory

Looks like the package.cache.lock file does not exists anymore. I tried to "fix" in a backward compatibly way the rm call by adding -f:
diff --git a/pkgs/development/haskell-modules/with-packages-wrapper.nix b/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 77ccd301b43..9aa326a8b5b 100644
--- a/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -156,8 +156,8 @@ symlinkJoin {
      # to another nix derivation, so they are not writable.  Removing
      # them allow the correct behavior of ghc-pkg recache
      # See: https://github.com/NixOS/nixpkgs/issues/79441
-     rm ${packageCfgDir}/package.cache.lock
-     rm ${packageCfgDir}/package.cache
+     rm -f ${packageCfgDir}/package.cache.lock
+     rm -f ${packageCfgDir}/package.cache

      $out/bin/${ghcCommand}-pkg recache
      ''}

But now it fails with:
hc> WARNING: settings file doesn't exist "/nix/store/1mf5mh65drkwpp77l8l2a0h0rl8d3h1d-ghc-<IP_ADDRESS>30128-with-packages/lib/ghc-<IP_ADDRESS>30128/settings"
ghc> cannot know target platform so guessing target == host (native compiler).
ghc> WARNING: settings file doesn't exist "/nix/store/1mf5mh65drkwpp77l8l2a0h0rl8d3h1d-ghc-<IP_ADDRESS>30128-with-packages/lib/ghc-<IP_ADDRESS>30128/settings"
ghc> cannot know target platform so guessing target == host (native compiler).
ghc> There are problems in package hspec-2.9.7:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package HUnit-<IP_ADDRESS>:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "deepseq-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package temporary-1.3:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "directory-<IP_ADDRESS>" doesn't exist
ghc>   dependency "exceptions-0.10.7" doesn't exist
ghc>   dependency "filepath-<IP_ADDRESS>" doesn't exist
ghc>   dependency "transformers-<IP_ADDRESS>" doesn't exist
ghc>   dependency "unix-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package hspec-core-2.9.7:
ghc>   dependency "array-<IP_ADDRESS>" doesn't exist
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "deepseq-<IP_ADDRESS>" doesn't exist
ghc>   dependency "directory-<IP_ADDRESS>" doesn't exist
ghc>   dependency "filepath-<IP_ADDRESS>" doesn't exist
ghc>   dependency "ghc-<IP_ADDRESS>30128" doesn't exist
ghc>   dependency "ghc-boot-th-<IP_ADDRESS>30128" doesn't exist
ghc>   dependency "stm-<IP_ADDRESS>" doesn't exist
ghc>   dependency "transformers-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package hspec-discover-2.9.7:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "directory-<IP_ADDRESS>" doesn't exist
ghc>   dependency "filepath-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package hspec-expectations-0.8.2:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package QuickCheck-2.14.2:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "containers-0.6.6" doesn't exist
ghc>   dependency "deepseq-<IP_ADDRESS>" doesn't exist
ghc>   dependency "template-haskell-<IP_ADDRESS>" doesn't exist
ghc>   dependency "transformers-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package call-stack-0.4.0:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package random-<IP_ADDRESS>:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "bytestring-<IP_ADDRESS>" doesn't exist
ghc>   dependency "deepseq-<IP_ADDRESS>" doesn't exist
ghc>   dependency "mtl-2.3.1" doesn't exist
ghc> There are problems in package ansi-terminal-0.11.4:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package clock-0.8.3:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package quickcheck-io-0.2.0:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package setenv-<IP_ADDRESS>:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "unix-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package tf-random-0.5:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "time-1.12.2" doesn't exist
ghc> There are problems in package splitmix-<IP_ADDRESS>:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "deepseq-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package colour-2.3.6:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc> There are problems in package primitive-<IP_ADDRESS>:
ghc>   dependency "base-<IP_ADDRESS>" doesn't exist
ghc>   dependency "deepseq-<IP_ADDRESS>" doesn't exist
ghc>   dependency "template-haskell-<IP_ADDRESS>" doesn't exist
ghc>   dependency "transformers-<IP_ADDRESS>" doesn't exist
ghc> The following packages are broken, either because they have a problem
ghc> listed above, or because they depend on a broken package.
ghc> hspec-2.9.7
ghc> HUnit-<IP_ADDRESS>
ghc> temporary-1.3
ghc> hspec-core-2.9.7
ghc> hspec-discover-2.9.7
ghc> hspec-expectations-0.8.2
ghc> QuickCheck-2.14.2
ghc> call-stack-0.4.0
ghc> random-<IP_ADDRESS>
ghc> ansi-terminal-0.11.4
ghc> clock-0.8.3
ghc> quickcheck-io-0.2.0
ghc> setenv-<IP_ADDRESS>
ghc> tf-random-0.5
ghc> splitmix-<IP_ADDRESS>
ghc> colour-2.3.6
ghc> primitive-<IP_ADDRESS>

(that's for one specific package db, the error may vary depending on the ghcWithPackages call).
I'll try to investigate later, I wanted to report this breakage, but this does not block the merge of the compiler from my point of view.

@guibou That is fixed in #212107, this branch is just not based on a new enough haskell-updates. When rebased, that issue should go away (you can probably try yourself easily).

I've rebased and applied the following diff:
diff --git a/pkgs/development/compilers/ghc/9.6.1.nix b/pkgs/development/compilers/ghc/9.6.1.nix
index f9c9a4b1e6a..574ff88cf46 100644
--- a/pkgs/development/compilers/ghc/9.6.1.nix
+++ b/pkgs/development/compilers/ghc/9.6.1.nix
@@ -1,5 +1,5 @@
 import ./common-hadrian.nix rec {
-  version = "<IP_ADDRESS>30128";
-  url = "https://downloads.haskell.org/~ghc/9.6.1-alpha2/ghc-${version}-src.tar.xz";
-  sha256 = "531f58dc0e352987a637095c18252e5d6fef260969eb9cb3d8447888b0922da2";
+  version = "<IP_ADDRESS>30210";
+  url = "https://downloads.haskell.org/~ghc/9.6.1-alpha3/ghc-${version}-src.tar.xz";
+  sha256 = "sha256-3vSnSFFiJm6R70YA38yoQki+1kFHF91+66za2WogT0c=";
 }

For alpha 3 support.

@guibou Thanks, did so on my branch as well. Also tested ghcWithPackages which seems to work after rebasing.


change typo index to azure

What this PR does / why we need it:
fix typo index to Create Shoot Clusters in Azure Cloud
Which issue(s) this PR fixes:
Fixes https://github.com/gardener/documentation/issues/230
Special notes for your reviewer:
Release note:

This site is autogenerated. Please make your changes to the relevant repos.


Fix: library returning any by default

I tried to use the library with Typescript, but Typescript is returning "any" value type for all exported values.
I see an error in the last lines. Apparently, the "Object.assing" is returning "any" because the  type of the "templateFunctionFactory" is "any".
const tw = Object.assign(templateFunctionFactory, intrinsicElementsMap);
//tw is any

In Styled Components exists an advanced typescript reference to return by default the map off all elements in the DOM and pass like as a function the same value.
But, I not understand her. So I passed the "templateFunctionFactory" like as an attribute.
const tw = Object.assign
  ({
    factory: templateFunctionFactory
  }, intrinsicElementsMap);

//tw is  { factory: any; } & IntrinsicElementsTemplateFunctionsMap

Now it's possible to pass the props:
tw.button<{ variant: string }>`
  ${props => props.variant}
`

/*
props is Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<...>> & {
    ...;
}

and props.variant is a string
*/

Hello @L-Marcel,
I'm not sure to understand the code you submitted and it doesn't pass the tests.
It looks like this is just a hacky way to get rid of a typing issue without solving it, so I can't merge this as is.
I think the other PR might solve your issue though.
Please feel free to reopen if you think this is addressing the issue and not just going around it
Many thanks


How to share WebSocketTask between components

The idea is to reuse same WS connection between components. I believe it should be done via properties but it is kinda hard to implement clone and partial eq for it. Any help?

WebSocket connections works this way, because you can't predict a lifetime of a component. It means a component could be dropped in an inconsistent state of a connection.
It;s better to create a connection in the main (app) component and save a task into a context to share it between other component if you want to send messages from other components.
You could also rewrite a service to make a task for every request/response interaction, but keep a connection globally in a background. This practice has not yet been established. It's open for different approaches.

If I got your point correctly - one connection per component is safer and more consistent?


Typo in "Important" section

Minor change (missing letter disguised as broken grammar). Originally seen in VS 2013 offline documentation.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: HelderMagalhaes sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Not sure why the source diff displays more than intended, as no formatting configurations were changed while forking and editing the source. Still, the rich diff properly displays the intended change.

(Pressed the wrong button and unintendedly closed the issue. Sorry for the noise. Reopening...)


snakemake --dag fails if there are ambiguities because workflow.execution_settings is None

Snakemake version
8.10.6
Describe the bug
I am trying to troubleshoot why SnakeMake thinks my rules are ambiguous, so I am trying snakemake --dag, but this fails here:
 File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/dag.py", line 983, in update
    if ambiguities and not self.workflow.execution_settings.ignore_ambiguity:
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: 'NoneType' object has no attribute 'ignore_ambiguity'

because execution_settings is None.
Logs
it23677> snakemake --dag -s workflow/playpen.smk
Building DAG of jobs...
Traceback (most recent call last):

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/cli.py", line 2028, in args_to_api
    dag_api.printdag()

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/api.py", line 598, in _handle_no_exec
    return method(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/api.py", line 646, in printdag
    self.workflow_api._workflow.printdag()

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/workflow.py", line 907, in printdag
    self._build_dag()

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/workflow.py", line 1037, in _build_dag
    async_run(self.dag.init())

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/common/__init__.py", line 94, in async_run
    return asyncio.run(coroutine)
           ^^^^^^^^^^^^^^^^^^^^^^

  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^

  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/nix/store/gd3shnza1i50zn8zs04fa729ribr88m9-python3-3.11.8/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/dag.py", line 178, in init
    job = await self.update([job], progress=progress, create_inventory=True)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/dag.py", line 930, in update
    await self.update_(

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/dag.py", line 1047, in update_
    selected_job = await self.update(
                   ^^^^^^^^^^^^^^^^^^

  File "/nix/store/m6fr507c2z16hp1k9kj2p33s84ahn75r-snakemake-8.10.6/lib/python3.11/site-packages/snakemake/dag.py", line 983, in update
    if ambiguities and not self.workflow.execution_settings.ignore_ambiguity:
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: 'NoneType' object has no attribute 'ignore_ambiguity'

Minimal example
I made a tiny repo with it all in.  Then:
$ echo "Wahoo!" > wahoo.a
$ gzip wahoo.a
$ snakemake -s workflow/playpen.smk --cores 1

Additional context
I suspect there's a simple solution to my ambiguous rule problem.  But I think SnakeMake should be able to produce a DAG even if there are ambiguous rules?  Because, very useful tool for troubleshooting!

I did fix this particular ambiguity problem (PR in my repo), but the underlying bug in SnakeMake remains. 😄


1.9 train 265

High-level description

#2104 - Bumped Mesos to latest 1.2.x (f8706e5).
#2130 - java: bump java package to the latest patchlevel

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@mesosphere-mergebot override-status teamcity/dcos/test/upgrade-from-previous-major https://jira.mesosphere.com/browse/DCOS_OSS-1901

The upgrade failure for teamcity/dcos/test/upgrade can be overridden using this JIRA: https://jira.mesosphere.com/browse/DCOS-19208

@mesosphere-mergebot label ready for review

CI run teamcity/dcos/test/docker/smoke failed (https://teamcity.mesosphere.io/viewLog.html?buildId=874825):
[05:39:34]	[Step 5/6] Polling app (oinker) instance health...
[05:39:40]	[Step 5/6] App (oinker) unhealthy -- Timed out after 300 seconds.

Rerunning.

@mesosphere-mergebot override-status teamcity/dcos/test/upgrade-from-previous-major https://jira.mesosphere.com/browse/DCOS_OSS-1901

@mesosphere-mergebot override-status teamcity/dcos/test/upgrade https://jira.mesosphere.com/browse/DCOS-19208

The docker smoke test passed after rerunning. I have created https://jira.mesosphere.com/browse/DCOS_OSS-1902 for tracking that instability.

@mesosphere-mergebot pr-status-checks

@mesosphere-mergebot merge-it


Tech debt/rationalise colour names

Originated from Issue #1418

Renamed the colours using the following structure: ${component}__{element}__{property}--{state}
Removed most of the duplicate colours from _colour-language.scss. Removed completely $cads-header and $cads-footer from the colour language
Updated the Storybook colour section with the new colour names

At its current state this PR introduces a BREAKING CHANGE - any $cads colours that are used in products would need to be renamed as some projects use the colour variables directly.
I wanted to get your opinion on the colour names first and then proceed with the following:

[ ] Update the Changelog
[ ] Add a file that contains the old colour names mapped to the new ones (this will ensure we avoid the breaking change)
[ ] Add information for the users about how to rename the colours using the new naming conventions

Couple of thoughts here:
Backwards compatibility:
This is likely a pretty big breaking change as projects use variable names directly. It's worth doing but we might want to look at a backwards compatible way of changing things, so we can still keep aliases of the old names around.
Naming conventions:
I wonder if we should use a simpler naming convention here rather than a BEM inspired one. From the Sass docs:

💡 Fun fact:
Sass variables, like all Sass identifiers, treat hyphens and underscores as identical. This means that $font-size and  $font_size both refer to the same variable. This is a historical holdover from the very early days of Sass, when it only allowed > underscores in identifier names. Once Sass added support for hyphens to match CSS’s syntax, the two were made ? equivalent to make migration easier.

— https://sass-lang.com/documentation/variables
This means that the following are all equivalent:
$cads-language__background-colour--hover
$cads_language--background-colour__hover
$cads_language_-background-colour-_hover
$cads_language__background-colour__hover
$cads-language--background-colour--hover

Based on this I think a simple hyphen based naming convention would make sense e.g. $cads-language-background-colour-hover. Would minimise the number of possible variations.

Just realised this was still draft 🙈 carry on.

naming conventions - I see your point, tbh I wouldn't normally bemify variable names. In my opinion thought this can be a good case for using BEM as it makes the variables easier to read and follow. It also makes it easier to keep colours consistent in the future - if a dev needs to add a new colour, they would need to follow the naming convention. Happy to have a further chat

Yeah, we also technically use a BEM-ish style now. So maybe the difference I mentioned isn't a big deal? I think as long as we have a consistent pattern that's the most important thing. Another route might be to do something with maps (see https://github.com/biglotteryfund/blf-alpha/blob/master/assets/sass/_vars.scss#L70-L104) and write a helper function to access colours (https://github.com/biglotteryfund/blf-alpha/blob/master/assets/sass/_functions.scss#L12-L14)
Using a wrapping function might help with backwards compatibility as this is how GDS do things too https://github.com/alphagov/govuk-frontend/blob/main/src/govuk/settings/_colours-applied.scss#L33

@davidrapson those links are super useful, thank you! I'll have a further think about how to structure the colours, I'm beginning to lean towards the blf approach as it seems quite clean to me. I'll also think about how to simplify the header/footer colours without wiping the theming functionality. For now I'll move the PR back to draft but will let you know when I reopen it.

Reopening this PR - changed my approach and edited the description to reflect. Happy to have a discussion about it once we are all back from holidays etc. but also feel free to post any immediate thoughts and I will have a look.

UPDATE
Based on our discussion I've:

replaced $cads-language with $cads-color
decided it makes more sense to unbemify the colours. The fact that we have $cads-color as a base of the var name made the rest of the variable cleaner
added !default to the header and footer colours

If you are happy with the colour names, I'll also update them in the new design-system-docs colour page. I'm also planning to add the red warning/important colour and the green success colour to the colour page as well, based on our post recent monthly meeting as designers mentioned it would be useful.
We also discussed ubemifying the $cads-palette. I had a check in public website and we do use $cads-palette vars. I'll wait to see what is the outcome of the current PR before starting on working on unbemifying the palette

Closing this as the PR is very stale (pre Storybook removal). I'll raise a new PR with the updated files


Timestamp on Traffic WebUI row seems not right

Stratux version:
6b1 plus the first 29 commits since it.

Stratux config: single/dual SDR, GPS yes/no (type?), AHRS yes/no, battery, battery cable.
Dual SDR Nano 2.  RY835AI via GPIO.  AHRS is disabled.  Line power via Turnigy 5.1V 3A battery eliminator powered by 12 VDC.  From "tail -f /var/log/stratux.log" I can see the R Pi system time is set to UTC.

EFB app and version (e.g., WingX Pro7 8.6.2). EFB platform (e.g., iOS 9.2). EFB hardware (e.g., iPad Mini 2).
N/A for this issue.

Description of your issue. If possible, enable "Replay Logs", reproduce the problem, and provide a copy of the logs in http://<IP_ADDRESS>/logs/stratux/ and http://<IP_ADDRESS>/logs/stratux.log.
On the WebUI traffic display, for each traffic row, the last column seems to be a time stamp of some kind, for example, 04:31:38Z and increasing.  But the value printed is not a UTC timestamp nor is it a local timestamp.  There is some speculation that maybe it is the hh:mm:ss amount of time that has transpired since the R Pi was booted.

Please use the issue template: https://github.com/cyoung/stratux/blob/master/CONTRIBUTING.md (linked at the top of the "New issue" page).
Some relevant information needed: version you're running and GPS or not (since the clock of the RPi is set off of the GPS when connected, not set at all if not connected).

Not a big deal to me, but I've got the GlobalSat GPS. Internal Pi time synchs (per date command) to GPS. But the Traffic time stamp does not. My time stamps reset to 00:00Z on each reboot. Did it on v0.6r1 and still on v0.7b1.

As noted on reddit, this is time since boot, and is on my to-do list.
Stratux has used time since boot over the last few releases to track all time-critical activities. These include timing out old traffic, determining if GPS fix is recent, sending log messages, etc. This approach is used because the RPi lacks a realtime clock, and "jumping" the time forward or backward (as might happen with a GPS or UAT uplink providing time data) has caused odd problems in the past.

We're not saving the incoming timestamps on traffic reports. Would you just use those?

Well, there are two ways I could go about this.
One is to change the presentation from timestamp to traffic age. That approach, I'd update traffic.js to convert the traffic timestamps to seconds, subtract from uptime, and display seconds since last seen.
The other would be as you suggest, and add a ti.Timestamp variable to show the actual time seen,
Any preference?

Whatever would make it easy to sync between the GPS, UAT, and 1090ES logs to aid in analysis.  I currently use the "since boot" time stamp that is at the start of each line in the respective logs and convert the nanoseconds to minutes.

I think most people are looking at the traffic page to see traffic flows, and the timestamp serves as an indirect indicator of how fresh each record is. Showing age directly both simplifies the problem and shows what is really needed.
Parsing the timestamps from UAT packets has future value, but showing the age is easier and satisfies our current needs. Up to you - I'll assign this ticket to you and defer to you on it.

If the "Zulu" reference in the time stamp were removed, it would eliminate most of the confusion .And perhaps change the title in the time column to "Rel. Time" or "Time since Boot."

Related issue with same root cause: #254

https://github.com/AvSquirrel/stratux/commit/367dedc5a6d316ecbf7efadc939cbd92d760ae5e
This commit restores the "old" behavior (traffic displayed with UTC time from the RPi clock) using ti.Timestamp, and adds a few minor cleanup / enhancements to GPS parsing and the traffic generation routine.
@cyoung  - I still have a few things to do before I pull it into the master branch. I'm only starting to get up to speed with JS, but as I'm learning how to deal with its time functions, it seemed natural to add Stratux and local device time to the status page. I'm still planning to add  a "freshness" of traffic data indicator.

Also, keep in mind while looking at the 1090ES Time Stamp UTC time IS NOT downlinked in any of the ADS-B DF messages from the target aircraft.  The "UTC" time stamp comes from the OS and is appended to the dump1090 data during post processing.  If the clock is off in the computing device, the Time Stamp will not reflect the actual time the target information as received.

@Axtel4 -- yes, thank you. I saw how time and date was recorded in the dump1090 code, and I should have known better, having previously looked at the DF messages. Time isn't sent with 978 traffic messages (ADS-B or TIS-B) either, so I'll pull out all of the time-related "to-dos" from traffic.go.
I'll poke around with FIS-B decoding this evening.

ironically, the traffic page initially showed "how old" traffic was - aka a delta. Users complained. So, the traffic page was changed to attempt to compute an actual time-stamp for traffic.

What I sunny know is how long Stratux or a flight app hold on to a target.  If compaired to TCAS it would put the targets in "coast" after approximately 4 interrogation misses (4 seconds).  After 10 interrogation misses (10 seconds) it will drop the target if no interogations are received.  I think what confuses people is Stratux / Flight App continues to display stale Targets for 10s of seconds.

We do keep a track list and hold targets for 60s. After that it is held by the EFB, usually 10s or more (depends on the app).

Yeah, iFly will show missed / lost traffic sliding down its Direction Vector for about a minute until it disappears. Not so good if Traffic is turning. Perhaps consider tweaking the Stratux timer to 30 seconds? (Or less?)

Yeah, iFly will show missed / lost traffic sliding down its Direction Vector for about a minute until it disappears.

That is how TCAS behaves except it drops the Intruder after 10 seconds instead of a minute.  Once it puts an intruder in coast it will extrapolate the projected trajectory based in the last know trajectory. It will continue to do so until either it reacquires the target or the coast times out.

Fixed with PR #259.

#259 is in the master branch now. This switches the UI from showing a timestamp to traffic age.
Unlike previous attempts at using relative age, this is based solely on monotonic timer and is set within traffic.go as ti.Age. The JSON marshaller is now called once per second on all targets, whether valid or invalid, to make sure that their status is pushed to the webUI. By moving all of the time functions out of the client, this makes us insensitive to clock difference between Stratux and the connected device. Net result is that the UI refreshes cleanly and consistently -- if you see a 5 second age on a target, you can trust that it was updated five seconds ago.
Regarding comments by @Axtel4 , @cyoung , and @Ergonomicmike on traffic age, ForeFlight times out traffic after 20 seconds of no updates. It doesn't coast traffic either, based on testing with my traffic demo code. Even with the GDL90 timeout cut to 0.9 sec (guaranteeing I never sent "double" messages at the same location), targets stalled out exactly where I expected them to.
Anyway, I did cut the Stratux GDL90 timeout to 6 seconds to give other EFBs a fighting change in case they do trend traffic. The UI will now keep data in its table for 60 seconds before it's purged (down from 180 seconds), matching the purge timer in traffic.go.
That said, adding a traffic coast routine would be a worthwhile addition for a future commit.

Thanks for all. I just updated to v0.7b2, both via a git pull, and then a .sh, just to see how it worked.
Interestingly, I am still seeing "Time" for a heading in the rightmost column, with the "Z" label. (I was surprised, 'cause I thought it was going to be Age. And so I was going to suggest "Z" to "Pi."
Also, since we're talking about time, any value in having GPS time (to the nearest minute) display on the GPS page, just under Heading?

The changes above came in just after I made the cut for v0.7b2. So if you use the .sh to "update" after doing the git pull, you're actually rolling back. Sorry for the confusion.

Okay, I did the git pull. The web UI still came up with Time. It took a shutdown of the browser (clear the cache? Reset fields?) for Age to show.
Wow. Everything looks cool. But I can see users bitching now about why their Stratux time doesn't match their device time. And they're going to think it's important that the match exactly, since the difference is shown. So  I predict they're going to ask you all for a synch function.
And I see that Stratux time is now GPS time if one has GPS. So that kinda moots my suggestion for GPS time on the GPS page. Still ..

Did you do a make ; make install ?

That would not be a bad thing, labeled as "real time" or "time of day"
or somesuch.  RPi2 system time should be set via GPS time, in more
cases.  However, there is that position lock time to consider...
The MTK3339 GPS, and others, do have battery backup capability and I did
discover that not only does it keep the ephemeris and last know
position, it also maintains a real-time clock in itself!  Yay.
(Same GPS that Adafruit calls it's "Ultimate GPS."  I like it a lot.
Sadly, only an RS-232 serial interface to it.)  It also give a one pulse
per second on one of it's lines if that would be handy for anyone.
Accurate to +- 10 nsec at each pulse.  So there you have your GPS and
RTC for the stratux to set it's time with during boot.  Woohoo.  Even
without sats being visible or not lock yet.
Call me crazy but I like having my files and other things labeled with
the correct time of day, plus having the much more accurate system ticks
for, among other things, traffic data.  No real need to keep both but if
there is only one, let it be the system ticks.  :)  Unless some EFB is
not compatible.
Will have to try with iFlyGPS when a stable release has it.
Thanks, all!
Skypuppy
P.S.  Going way out on a limb.  Agreed to the Qt 30-day commercial
evaluation.  Monster download to the PC but where will I get $3,000 to
pay for the dang thing if it comes to that?
On 02/17/2016 11:48 PM, Ergonomicmike wrote:

Thanks for all. I just updated to v0.7b2, both via a git pull, and
then a .sh, just to see how it worked.
Interestingly, I am still seeing "Time" for a heading in the rightmost
column, with the "Z" label. (I was surprised, 'cause I thought it was
going to be Age. And so I was going to suggest "Z" to "Pi."
Also, since we're talking about time, any value in having GPS time (to
the nearest minute) display on the GPS page, just under Heading?
—
Reply to this email directly or view it on GitHub
https://github.com/cyoung/stratux/issues/251#issuecomment-185554079.

@cyoung, yes, I did the make, make install.
Also, here in Phx, where there's only one Air Transport flying tonight. I watched as he passed out of range. Age climbs to 60 seconds - and then holds indefinitely. In the "old days" the traffic page refreshed itself every now and then. Now I need to move to another page to refresh the traffic page. Not a big deal. But will it populate to infinity if a user doesn't clear it?

@skypuppy - iFly is very near a public release of v9.4. (Like a week or two.) I'll post in the reddit when it's available for trying.

Age climbs to 60 seconds - and then holds indefinitely

Traffic older than 59 seconds and less than or equal to 60 seconds wasn't triggering it to clear. Try https://github.com/AvSquirrel/stratux/commit/9ad3a7e333768e41eb5bf41d6c15c604e68ed86e

That was quick. I'll try it tomorrow. Midnight now.

@AvSquirrel, the fix works. (Yeah, I shoulda gone to bed. Guess you can tell I'm an engineer at heart.)
But, now that it's after midnight, the Statux time is off by one hour. (And about 30 seconds too.) I thought it was supposed to lock to GPS time? (I did the make; make install on the Pi by SSH'ing in over Wi-Fi. So I disabled the GPS and the SDR's in the Settings page first. When I re-enabled everything, the Stratux time was hosed. Reboot/Shutdown don't fix it. Disabling/Enabling GPS didn't fix it. Will investigate more tomorrow.

Nice work @avsquirrel. Someone will ask so I'll ask - what are the units for "age"? I assume it's "seconds" but the UI does not make it obvious.

On my Win 7 + Chrome machine this morning, the UI incremented two target rows' ages up to 59.x seconds and then quit updating them.  The two rows are still sitting there.  It's been at least 10 minutes since the rows stopped aging.

Pull and make https://github.com/AvSquirrel/stratux/commit/9ad3a7e333768e41eb5bf41d6c15c604e68ed86e?
On February 18, 2016 7:18:41 AM CST, bkwny<EMAIL_ADDRESS>wrote:

On my Win 7 + Chrome machine this morning, the UI incremented two
target rows' ages up to 59.x seconds and then quit updating them.  The
two rows are still sitting there.  It's been at least 10 minutes since
the rows stopped aging.

Reply to this email directly or view it on GitHub:
https://github.com/cyoung/stratux/issues/251#issuecomment-185713818

I have it already.  git pull says "Already up-to-date."

One of my stuck rows is displaying age 60.0.  I thought that might be relevant so I am posting it.

@bradanlane - units are seconds. Traffic help file is updated to state that, but units are not listed on the main traffic page.
@Ergonomicmike - can turn on logging (if it's not already on) and pull some recent stratux.log and  nnnn-gps.log data from the latest commit? I don't have a BU-353 and would like to see exactly what output the @iposva configuration is giving us work with. I suspect that the GPRMC messages isn't formatted like I think it is, and that it's stumbing when parsing the time. I'll be able to look at it tonight.
@bkwny -- the fix isn't in the main branch yet; you'd have to pull it from the commit listed above, or manually edit or copy that traffic.js onto your Pi.

I manually made the change to the .js file and thought that would work without doing a make. But it didn't. I had to do a make; make install.
@AvSquirrel, Wilco.

@AvSquirrel, I tried to make it easy for you. I deleted the old stratux.log so that the new is short. And a short gps.log.
https://www.sendspace.com/filegroup/jAM9YcHsgKmnEahc%2Bw%2Fsbw

iFly is painting Traffic motion a lot smoother since all these changes. UAT direct traffic that used to flicker between Call Sign and xpnder code on the Stratux status page (per a video I posted a while ago) are less flickery.

@AvSquirrel Logged into my Pi, stopped stratux and dumped the raw serial output from the BU-353. Log is below. Let me know if you need more...

root@raspberrypi:~# /etc/init.d/stratux stop
[ ok ] Stopping Stratux ADS-B Receiver: stratux.
root@raspberrypi:~# cat /dev/ttyUSB0
$GPGGA,170937.000,3725.0786,N,12204.3421,W,2,07,3.0,28.9,M,-25.6,M,2.0,00007A
$GPGSA,M,3,22,11,01,08,27,03,48,,,,,,4.2,3.0,2.933
$GPRMC,170937.000,A,3725.0786,N,12204.3421,W,0.36,34.33,180216,,,D47
$GPVTG,34.33,T,,M,0.36,N,0.7,K,D3D
$GPGGA,170937.20$GPGGA,170938.000,3725.0786,N,12204.3422,W,2,07,3.0,28.5,M,-25.6,M,2.0,00007A
$GPGSA,M,3,22,11,01,08,27,03,48,,,,,,4.2,3.0,2.933
$GPRMC,170938.000,A,3725.0786,N,12204.3422,W,0.37,34.33,180216,,,D4A
$GPVTG,34.33,T,,M,0.37,N,0.7,K,D3C
$GPGGA,170938.200,3725.0786,N,12204.3423,W,2,07,3.0,28.5,M,-25.6,M,2.2,00007B
$GPGSA,M,3,22,11,01,08,27,03,48,,,,,,4.2,3.0,2.933
$GPRMC,170938.200,A,3725.0786,N,12204.3423,W,0.43,34.33,180216,,,D4A
$GPVTG,34.33,T,,M,0.43,N,0.8,K,D30
$GPGGA,170938.400,3725.0786,N,12204.3423,W,2,07,3.0,28.4,M,-25.6,M,1.4,000079
$GPGSA,M,3,22,11,01,08,27,03,48,,,,,,4.2,3.0,2.933
$GPRMC,170938.400,A,3725.0786,N,12204.3423,W,0.17,34.33,180216,,,D4D
$GPVTG,34.33,T,,M,0.17,N,0.3,K,D3A
$GPGGA,170938.600,3725.0786,N,12204.3423,W,2,07,3.0,28.4,M,-25.6,M,1.6,000079
$GPGSA,M,3,22,11,01,08,27,03,48,,,,,,4.2,3.0,2.933
$GPRMC,170938.600,A,3725.0786,N,12204.3423,W,0.12,34.33,180216,,,D4A
$GPVTG,34.33,T,,M,0.12,N,0.2,K,D3E
$GPGGA,170938.800,3725.0786,N,12204.3422,W,2,07,3.0,28.3,M,-25.6,M,1.8,00007F
$GPGSA,M,3,22,11,01,08,27,03,48,,,,,,4.2,3.0,2.933
$GPRMC,170938.800,A,3725.0786,N,12204.3422,W,0.03,34.33,180216,,,D45
$GPVTG,34.33,T,,M,0.03,N,0.1,K,D3D

Since all the other data in the traffic list have appropriate units, we should add "s" for seconds. I realize it uses up space but having only one column sans units makes for an inconsistent display.

Fixes for the "sticky" 59.x second traffic and GPS time updates are in #264 .
@Ergonomicmike , @iposva -- thanks for the data. I missed a "%" in the string used to set GPS time after parsing an RMC message, and didn't catch it during debug.

@bradanlane - fine by me. Do you want to get that one, or should I pick it up in my next commit?

I'll add the units.
I should probably also do a test with that handy new traffic simulation code :-)

Capital S or no? https://www.unc.edu/~rowlett/units/symbol.html

from that URL, I would say "lower case 's' is correct".

I agree. I get confused because they suggest "A" for amps. But not "S" for seconds.
Even if cap S was correct, most Americans probably wouldn't recognize that as seconds. Whereas we see yymmss, so know that s = seconds.

@AvSquirrel Yea, it works! Pi time instantly updated to GPS time. Thanks.


Feature/get all time entries

@kylesuss Thanks for making this API wrapper. I started using it in my project and needed a new feature, so I implemented it. Please review my PR when you have a moment. Thanks! :smile:

Hey @conorliv , glad you made use of the wrapper. Unfortunately, I don't have access to this github org anymore, so you'll have to wait for approval from someone else at TackMobile.

@kylesuss  Thanks for your response. Who from TackMobile would be the best person to ping about a PR on this repo?

Probably @thillerson

I heard my name. @kylesuss Is this PR good? I'm not familiar with what's going on enough to tell...

@conorliv I haven't looked at the 10k API in a while so I wanted to double check that the endpoint you created exists. All the time entry endpoints I can find are namespaced by user or project. Do you have a link to the docs so I can verify?

@kylesuss You're right - the endpoint that I added doesn't exist in 10kft's documentation, but it exists in reality. I contacted their support about a faster way to get all of my company's employee's time entries than making a separate request to get each employee's time entries and they told me about this endpoint. This endpoint provides a way to get all time entries in a single API request.

Sure, thanks for the info @conorliv . @thillerson the actual codes looks good to me, though I don't have the credentials to test this anymore.

Ok. Cool, thanks for looking at it, Kyle, and thanks for the code, Conor!


Web compatibility fails

Report

[x] I have searched existing issues and this is not a duplicate

Issues and Steps to Reproduce
This compatibility fixture fails

Expected Behavior
Expected yoga to follow Chrome behaviour, providing layout for second child with 50 + 16 + 16 px.

Gentle bump to @mdvacca @jonathandann as you are active contributors to native core. Sorry for direct mention, but i'm wondering if you have any timeline for core layout algorithm bugs.
Thanks for your time!


Integrate the busybox tests suite results

Just like we are doing with GNU, we should store and publish the results.
make prepare-busytest
        bindir=$(pwd)/target/debug
        cd tmp/busybox-*/testsuite
        output=$(bindir=$bindir ./runtest 2>&1 || true)
        printf "%s\n" "${output}"
        n_fails=$(echo "$output" | grep "^FAIL:\s" | wc --lines)
        if [ $n_fails -gt 0 ] ; then echo "::warning ::${n_fails}+ test failures" ; fi

is that is executed in the CI

GNU tests:
https://github.com/uutils/coreutils/blob/main/.github/workflows/GnuTests.yml
Used by
https://github.com/uutils/coreutils-tracking

Do you still find this interesting, should I look into it?

We did a bunch of the work. It is published here:
https://github.com/uutils/coreutils-tracking/blob/main/busybox-result.json
but i would be happy to get a comment like GNU when we are fixing a test or regressing one
See
https://github.com/uutils/coreutils/blob/main/.github/workflows/GnuComment.yml

GH also supports file:line_number-based PR comments: https://github.com/ammaraskar/sphinx-action/blob/c61ac11d9ee097caf8983c10c8b5af5861b32b54/sphinx_action/status_check.py#L30 :
 "::{command} file={file},line={line}::{message}".format(


add reprs to common user-facing classes

Went with non-evalable scheme:

CosmosClient may have long/complicated args, including credentials
Other classes are not intended to be instantiated directly by users

Yields e.g.
In [10]: c
Out[10]: <CosmosClient [https://brvandev-cosmos.documents.azure.com:443/]>

In [11]: c.get_database_client("foo")
Out[11]: <DatabaseProxy [dbs/foo]>

In [12]: c.get_database_client("foo").get_container_client("bar")
Out[12]: <ContainerProxy [dbs/foo/colls/bar]>

In [13]: PartitionKey("stuff")
Out[13]: <PartitionKey [stuff]>

Can one of the admins verify this patch?

/azp run python - cosmos - ci

Linter is failing with

azure/cosmos/cosmos_client.py:197: [C4729(client-method-name-no-double-underscore), CosmosClient.repr] Client method name should not use a double underscore prefix. See details: https://azure.github.io/azure-sdk/python_introduction.html#public-vs-private

@johanste is it really the intention  of the guidance to prevent all under methods on clients?

@bryevdv, correct. The rule is intended for name mangling only.

@bryevdv, correct. The rule is intended for name mangling only.

@johanste OK I'll just put in a pylint disable comment for now. Who is the best person to ping about updating the custom linter rules?

/azp run python - cosmos - ci


Model and Migration

New Features 🥇

Added the Migration.
Added the Model.
Added the devise.
Added model test.
Fix N+1 problem

Before fixing N+1 problem 👎

After fixing N+1 problem 👍

Splash screen

A simple page with the name of your app (yes, you need to choose one), and links to the sign up and log in pages.

Sign up and log in pages

The user should be able to register in the app with full name, email and password (all mandatory).
The user can log into the app using email and password.
If the user is not logged in, they can't access pages that require the user to be logged in (all the pages described below).

Home page (categories page)

When the user logs in, they are presented with the categories page.
For each category, the user can see their name, icon and the total amount of all the transactions that belongs to that category.
When the user clicks (or taps) on a category item, the application navigates to the transactions page for that category.
There is a button "add a new category" at the bottom that brings the user to the page to create a new category.

Transactions page

For a given category, the list of transactions is presented, ordered by the most recent.
At the top of the page the user could see the total amount for the category (sum of all of the amounts of the transactions in that category).
There is a button "add a new transaction" at the bottom that brings the user to the page to create a new transaction.
When the user clicks on the "Back" button (<), the user navigates to the home page.

"Add a new category" page

The user fills out a form to create a new category, indicating their name and icon (both mandatory).
The user clicks (or taps) the "Save" button to create the new category, and is taken to the home page on success.
When the user clicks on the "Back" button (<), the user navigates to the home page.

"Add a new transaction" page

The user fills out a form to create a new transaction with:

name (mandatory)
amount (mandatory)
categories (mandatory at least one)

The user click (or taps) the "Save" button to create the new transaction, and is taken to the transactions page for that category.
When the user clicks on the "Back" button (<), the user navigates to the transactions page for that category.

Tests are passed 👍

Hello @skyv26 thanks for your nice review 👍


Add info about patch strategy.

Addresses #6222

This change is

@danwinship

@xiangpengzhao Thanks for the review. I think I've addressed all of your comments.

/assign @chenopis

/approve

@xiangpengzhao Can you give this an LGTM? Thanks.

/lgtm
:100:


build: reduce targets that are exported

Realizing that not all targets should be imported by external CMake
projects, I've narrowed down the list of targets to the following:

opae-c
opae-cxx-core
opaemem
ofs
opaeuio
opaevfio
bitstream
fpgaconf

For this, I've modified the opae_add_executable and
opae_add_shared_library functions to take in an optional one-value
argument to indicate the export name. I've modified the CMakeLists.txt
that are used for building the targets listing above to add the EXPORT
argument in the add target directive.
Signed-off-by: Rodrigo Rojo<EMAIL_ADDRESS>

Coverage decreased (-0.03%) to 65.335% when pulling 5c9c01f2806c5149d5e7d3e0683c189a5cece3bd on rrojo/reduce-exports into 9bb2889aa25a84aa54fd55402027059accf5ebf0 on master.


Domain validation

Proposed changes:

validates the domain yaml file and raises an exception if the file has an improper format (prevents strange errors if e.g. the utterance templates are an array instead of a map)

Status (please check what you already did):

[x] made PR ready for code review
[x] added some tests for the functionality
[x] updated the changelog

@akelad btw. this PR includes #44 so if you reviewed this one, you can skip the other one

This breaks something for me:
When I run a training, TemplateDomain looks fordomain_schema.yml in the current execution path, not the rasa_core path and can't find it. Any idea how to come around that?

@znat that should be fixed in the latest master


Slack room link in README is broken

The README for this project says

We have slack room as well. Get yourself invited: here

But this just leads to a Heroku "There's nothing here, yet." error page.

Oof. I guess this repo isn't being watched very closely.

I had the same problem, found the .NET foundation discord...but I don't think that is the right forum either.

This is still broken. I'd love to understand what kind of help y'all need.


Fix cloudflare record fetching error

This is a fix for issue #4
Skipping records update if too many retries in fetching DNS record.
@skftn Could help to review this?

Give me a few days, ill look at it :)

@skftn Sure, thank you so much.

@skftn I put all the issues I found so far. It works good with these changes now. But just like previous commit, I don't know if they are good stratgey in current architecture. So I put here for review when you have free time.

I put mass-scan loop issue to another PR.


events.put_permission requires incorrect Action parameter, should require fully qualified events:PutEvents value

Affects version 1.3.3 of Moto, with botocore 1.10.5, installed using pip using with python 2.7.14 and python mocks.
As per http://boto3.readthedocs.io/en/latest/reference/services/events.html#CloudWatchEvents.Client.put_permission
The Action parameter for put_permission should be fully qualified as "events:PutEvents". "PutEvents" should not be accepted.
import boto3
from moto import mock_events

mock = mock_events()
mock.start()

moto_events = boto3.client('events')
mock_bus_policy_json = moto_events.describe_event_bus()['Policy']

# This should fail, but is accepted
moto_events.put_permission(
    Action="PutEvents",
    StatementId="testing",
    Principal="123456789012")

# This should work but is rejected:
moto_events.put_permission(
    Action="events:PutEvents",
    StatementId="testing",
    Principal="123456789012")

botocore.exceptions.ClientError: An error occurred (InvalidParameterValue) when calling the PutPermission operation: Action must be PutEvents

This is hopefully fixed in PR: https://github.com/spulec/moto/pull/1641

Closed with https://github.com/spulec/moto/pull/1641


Test if the error is "Opening in existing browser session"

When chromedp.Run() fails and returns Opening in existing browser session as the error,

Is there something errors.Is() instead of err.Error() == "Opening in existing browser session"? I didn't find the error declaration in the code.
Is it safe to ignore this error since the browser is actually working

There is not a sentinel error for Opening in existing browser session. It's OK to use err.Error() == "Opening in existing browser session" to check this error.
It depends.


Associate Entity Doesn't Work

Hi,
I'm trying to use the Associate Entity option but it doesn't create an association.  The workflow executes correctly and displays no errors.  Do you have any suggestions as to why this might not be working?

Hi MicioGatto,
please explain me the type of relationships you have, the names of the two entities, and I can check.
Please also chck that the parameters are ok following the tdetails explained here: https://github.com/demianrasko/Dynamics-365-Workflow-Tools/blob/master/docs/Associate Entity.md
regards

Thanks for your reply.
The two entities are called "rs_support" and "rs_issue".  There is an N:N relationship between them.
Support:

Issue:

The relationship parameters are as follows:

The relationship name is "rs_support_issue".
The relationship Entity Name is "rs_rs_support_rs_issue".
These are then the values that I entered as parameters in the workflow.
The workflow runs when the rs_support entity is created:

The update statement in the workflow just adds text to a field to show that the workflow executed.
The associate entity step parameters are as follows:

Is there any other information that I can provide?

Hi,
I see that you have the version number <IP_ADDRESS>.
I fixed an issue in a newer version:
<IP_ADDRESS>: Bug Fixed on AssociateEntity. (you can see it in the commit change log)
Please update the version and it should work fine ;)

Thanks Demian, that's fixed it.
Also, thank you so much for these tools.  They've been vital for keeping our solutions simple but powerful.

Thanks MicioGatto!!
kind regards!


[Docs] add link to API documentation on semantic scholar query

This PR aims to address #85

Great work. Thanks for the contribution!!
If you find more issues with the documentation (typos, undocumented parameters, unclear behavior) let us know!


FLAKE: //test/cpp/end2end:hybrid_end2end_test[x64_windows-opt]

https://source.cloud.google.com/results/invocations/9cd09af0-5851-44f3-bf8e-c7bcca9c0f8a/targets/%2F%2Ftest%2Fcpp%2Fend2end:hybrid_end2end_test/log
[ RUN      ] HybridEnd2endTest.GenericEchoAsyncRequestStream_SyncDupService
I1126 20:14:37.140000000  5124 src/cpp/server/server_builder.cc:307] Synchronous server. Num CQs: 1, Min pollers: 1, Max Pollers: 2, CQ timeout (msec): 10000
E1126 20:14:37.163000000  5124 src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc:40] {"created":"@1574799277.162000000","description":"No address added out of total 2 resolved","file":"src/core/ext/transport/chttp2/server/chttp2_server.cc","file_line":395,"referenced_errors":[{"created":"@1574799277.162000000","description":"Failed to add port to server","file":"src/core/lib/iomgr/tcp_server_windows.cc","file_line":512,"referenced_errors":[{"created":"@1574799277.162000000","description":"OS Error","file":"src/core/lib/iomgr/tcp_server_windows.cc","file_line":203,"os_error":"An attempt was made to access a socket in a way forbidden by its access permissions.\r\n","syscall":"bind","wsa_error":10013}]},{"created":"@1574799277.162000000","description":"Failed to add port to server","file":"src/core/lib/iomgr/tcp_server_windows.cc","file_line":512,"referenced_errors":[{"created":"@1574799277.162000000","description":"OS Error","file":"src/core/lib/iomgr/tcp_server_windows.cc","file_line":203,"os_error":"An attempt was made to access a socket in a way forbidden by its access permissions.\r\n","syscall":"bind","wsa_error":10013}]}]}

Hopefully this will be fixed by https://github.com/grpc/grpc/pull/22363.

#22363 was merged.


TemplateNotFound on Window OS

On Window, this line fails :
https://github.com/pallets/jinja/blob/main/src/jinja2/loaders.py#L30
The path separator on Window is \
Jinja version 3.1.4

Forward slashes are perfectly fine and valid on Windows.
And template paths are not filesystem paths even though they may map to such paths. They always use forward slashes.


add codecov to main branch

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main@216f8db). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage        ?   52.78%
=======================================
  Files           ?       16
  Lines           ?      934
  Branches        ?        0
=======================================
  Hits            ?      493
  Misses          ?      378
  Partials        ?       63

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Reddit Fetch to Discord

We are aware of Reddit not posting correctly and we will work on a fix tomorrow

working now

FIXED

FIXED


Give me all your lovin' ..err votes

The existing file is corrupted. Remove the lingering data so the service can run.
I'm not sure if the migration tool is working yet, so just putting the patch here.
The code is working, you can see detected commands here, however one item is corrupted and has to be removed.
Last PR for this to work I swear.

@rudehn migration tool should be up and running, but never used yet...

😄 it works!


Add env var to check if inside a cross container

Checklist

[X] I've looked through the issues and pull requests for similar request
[ ] This feature could be solved with a custom docker image (optional)

Describe your request
cross can set a environment variable CROSS_INSIDE to tell users that the context the build it's running is within a cross container.
Describe why this would be a good inclusion for cross
Useful for special cases when using bindgen, etc etc

There seems to be a CROSS_RUNNER env var which is used for some cross internals, which I found will facing the same issue.
I just check if its set or not.


Be able to export/store files

Some layer of persistent storage for large files would be useful.
Use cases:

Download MOSS urls and serve them locally.
Serve exports of student code (instead of using scripts)
Jobs could store files and provide the user a download.

I think the only viable way to do this is to use the cloud storage system (gcloud storage buckets or S3).
Ideally we would not be too dependent on GCloud specific features for storage.
Current approach:

Create a new table to store exported file metadata:
URL to access (or Gcloud ID), Gcloud bucket, Course (nullable), Assignment (nullable), Creator, Filename, Time Created

Another Idea:

What if exported files were not persistent? Could we store them in a temporary KV store?
(not a fan of this - but I thought I'd put it out there)

Do you think this FileMetadata table should also support files from backups? (FWIW - I don't think so)
I'm thinking that we want two tables if we support backups having files sent to Google Cloud Storage.
Another approach is to go for three tables (I think this is overkill)

ExternalFile (storing gcloud relevant info)
BackupFile -> points to a ExternalFile
ExportFile -> points to a ExternalFile

I've started to implement this and realized it would be best to just have one model with multiple types (Backup, Export, ...)  - the types will determine the security level.

How would backups that have multiple external files work? Or a mix of external files and ok-client-like text files?


Review Person schema

The property Person.personId is currently a random ID generated by MongoDB.
I was considering making Person.email the primary ID of Person, however this would entail that all challenge platform can provide "automatically" an email for the organizers of a challenge. Considering that the organizers of challenges are usually "users" of the challenge platform with a complete account, this seems plausible.
Pros of using email as primary of of Person

Reduce the number of Person objects in the DB, which leads to better performance

Cons

We may not have the email of all past DREAM challenge organizers

@vpchung Have you collected email addresses for the Persons from past DREAM challenges?

I have not... but I can do it if needed. It looks like synapseclient has a getUserProfile() I could take advantage of:
>>> syn.getUserProfile("Verena Chung").get('emails')
<EMAIL_ADDRESS>

On second thought, the above tactic may not work. I just tried with a couple names (who I know have accounts on Synapse), and they either don't have the emails item pair or there are no returned results at all.

The only potential issue is that there might be more than one email per person (so we'll have to choose one -- which could then run into the issue of not properly linking Person to the correct User) or the email might not be updated.

I see.. (https://rest-docs.synapse.org/rest/GET/userProfile.html). If only we could get access to the primary email address, but that's something that Synapse is protecting. So we need to keep the dedicated Person.personId.

In the future and in production release, we could automatically send an email to Person objects that have an email address to invite them to create a User account on the registry.
At some point we may then have Challenge.organizers that looks something like that:
description: Challenge object
properties:
organizers:
oneOf:
- $ref: Person.yaml
- $ref: User.yaml

We've got the Person schema nailed down.


PCCE: 30.03 and latest updates

Description
Compute Maxwell Update 3 output
Motivation and Context
New minor release
How Has This Been Tested?
Tested locally
Types of changes

New feature (non-breaking change which adds functionality)

Checklist

[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes if appropriate.
[x] All new and existing tests passed.

@sserrata and @blindaa121 : Need your approval for Compute (PCCE) Maxwell Update 3 output.


Add virtual to DateField and NumericField's Value property.

Very small  change. I plan on overriding these properties and noticed I hadn't made them virtual like all the other interface implementations.
So here it is! Absolutely no rush to merge or publish the nuget package, I'll use the new keyword for now.

Ok maybe I'd like a new package soon! :P


Improve InputSelector

improve scaling down
improve scaling of very big / very small images

done together with #2108


KEB instance delete capture User-Agent header

Description
Alternative proposal to https://github.com/kyma-project/control-plane/pull/2514 on resolving https://github.com/kyma-project/control-plane/issues/2512. Instead of using force URL parameter, @PK85 recommended setting the HTTP header identifying the caller of DELETE instance endpoint. Using User-Agent header for this purpose.
closes: https://github.com/kyma-project/control-plane/issues/2512

/retest

/retest

/hold

Feel free to unhold when tests will pass.

/retest

/retest


Refactor dielectric material class

[x] Try to incorporate bool frontFace from HitRecord into calculations to reduce duplicate dot product computations.
[x] Reuse computed trigonometric values.
[x] Remove potential circular dependency between HitRecord and Material.

Completed in https://github.com/jx124/raytracer/commit/3a014eb9f0dbdc1240da6155941d1a33f4c8f1e0.


Use newly introduced types at the edges of application

Finalising a stack of PRs that introduce separate types for Timeout, ValidatedBlock and ConfirmedBlock we should start using them in client and validator code where these types are hashed and signed over (voted for).
This issue might be done as a single PR, or a series of them, but it's worth to note that it will be a breaking change as we will change the resulting hashes and the API schemas.

Done in #2988


Role assignment fails if  assignment already exists

Role assignment fails if  assignment already exists causing the entire play book to fail.  Using "state" to create or update is not working as expected.
See attached code and error message.
RoleAssignment.txt
exists(item=/subscriptions/xxxxxxxxxxx/resourceGroups/xxxxxxxxxxx/providers/Microsoft.Storage/storageAccounts/xxxxxxxxxxx) => {"ansible_loop_var": "item", "attempts": 5, "changed": false, "item": "/subscriptions/xxxxxxxxxxx/resourceGroups/xxxxxxxxxxx/providers/Microsoft.Storage/storageAccounts/xxxxxxxxxxx", "msg": "Error creating role assignment: Azure Error: RoleAssignmentExists\nMessage: The role assignment already exists."}
FAILED - RETRYING: Create a role assignment (5 retries left).
FAILED - RETRYING: Create a role assignment (4 retries left).
FAILED - RETRYING: Create a role assignment (3 retries left).
FAILED - RETRYING: Create a role assignment (2 retries left).
FAILED - RETRYING: Create a role assignment (1 retries left).
failed: [localhost] (item=/subscriptions/xxxxxxxxxxx/resourceGroups/xxxxxxxxxxx/providers/Microsoft.Storage/storageAccounts/xxxxxxxxxxx) => {"ansible_loop_var": "item", "attempts": 5, "changed": false, "item": "/subscriptions/xxxxxxxxxxx/resourceGroups/xxxxxxxxxxx/providers/Microsoft.Storage/storageAccounts/xxxxxxxxxxx", "msg": "Error creating role assignment: Azure Error: RoleAssignmentExists\nMessage: The role assignment already exists."}

See also https://github.com/ansible/ansible/issues/67529


Are you sure this project support opencv2.4.13?

I am sorry to bother you  @AlexeyAB
But I used the Opencv2.4.13. it did not work:

i did not found fast_math.hpp
could you please tell me how to fix this ?
Thank you！

@AlexeyAB


The back to search results action doesn't have the icon.

In the single result page, the Back to search results action does not have the arrow icon as the mockup indicates.
Expected design

@panchovm @kgodey I believe I fixed the issue at this pull request here #819 please do review Thanks

made a minor tweak for the issue and I believe i have fixed it as desired at #819


Incorrect Cases in Yavatmal, MH

Number of cases as shown for YAVATMAL DISTRICT OF MAHARASHTRA does not tally with Government data.
Government Data shows 13-15 cases viz a viz 5 cases on this website.
The same needs correction for proper presentation of data.

Please report data discrepancies using this form https://forms.gle/7NRSrbspW2a6pbm58, thanks :)


Dropdown Component adding a caret

I left an answer on stackoverflow.
I'm closing this issue in favor of the conversation over there.


Mac OS X 10.11 Support

Does Docker Toolbox have issues on OSX?
I tried the command line to 'docker pull repo' and Kitematic, I have been getting an error "Error while pulling image: Get https://index.docker.io/v1/repositories/gogs/gogs/images: dial tcp: lookup index.docker.io on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:49279-><IP_ADDRESS>:53: read: connection refused" Any reason what this could might have been?
Thanks

Looking at the IP it seems you're behind a vpn or have customized something beyond the original toolbox - I would look at the wiki pages:
https://github.com/docker/kitematic/wiki/Common-Proxy-Issues-&-Fixes


no reply on odas issues

Dear developers,
I at texting here again because after your suggestion to post my latest issue on the Odas repository, I see that since 20 days there is nobody who is replying. This is happening not only for my post but also for others.
Is anyone of your team still following Odas's issues?
Thanks for your help

Hi Kimchi,
We are doing our very best to reply, but are a small team and sometimes have a hard time to give you fast feedback. Odas in its actual form is a beta version, and we hope that the first release will be stable and well documented, so that users can find direct answers from the documentation. Sometimes, assigning the issue to a specific developer can also help speed this up as many issues are configuration/application issues and are answered by other Odas users who did experiment with a similar hardware, and Odas developers are often out of the loop.


Locale request: ru-KZ

Which locale do you wish to add?
First check if your locale has already been requested. If so, go and add an emoji to that request to show your support.
For new requests, write the locale identifier in the subject after the colon.
Example: "Locale request: nb-NO".
We use BCP-47 with region subtags, see "IETF language tag".
Maintainer
Sanity will bootstrap and keep the locale updated using AI. We would like human contributors to help maintain the locales by improving them and/or reviewing pull requests from the AI and from other contributors as they come in. Check the box below if you want to be added as a maintainer of this locale. As a maintainer you will be automatically added as reviewer to future PRs that improve it.
If you are not the author of this issue, but would still like to be added as a maintainer, please add a comment to the thread.

[x] I want to be added as maintainer

Hello @yenbekbay , thank you for your request. I have added an autogenerated locale plugin for ru-KZ in PR https://github.com/sanity-io/locales/pull/110. Could you please help review it?


Caused error

TODO:

[ ] doc
[ ] name?

I tried to compile this change against my code for a test, but I had trouble updating my code to correspond with some recent commits (I think the relevant merge is https://github.com/brson/error-chain/commit/519a2c22abd4565b7794f501a8f7ffad0d69ce31). I get errors like this: "the method chain_err exists but the following trait bounds were not satisfied: diesel::result::Error : error_chain::ChainedError". This seems odd, as I have indeed declared ::diesel::result::Error, DieselError; in the foreign links section of the error_chain! macro.

Could you show me your code?

https://github.com/golddranks/ganbare Here you are. (I'm working on nightly.)

Note that I used to use a custom version of error-chain for some weeks, so I don't even expect that to build straight away – but the many "following trait bounds were not satisfied: std::env::VarError : error_chain::ChainedError" errors confuse me.

What changes did you make to error-chain? Maybe I can merge them?

Also, could you tell me one example about a line which fails to compile? I don't want to setup a db to compile your crate ^^

I just used my own custom version of "caused error", but shouldn't be nothing relevant. I'll try to strip away the fluff to make a smaller example, just a moment.

https://github.com/golddranks/ganbare/tree/test_errors How's this? Check the lib.rs.

Rebased

Thanks, that got fixed.
However, now I get very strange inference errors that look like downright inference bugs to me:
pub fn check_session(conn : &PgConnection, session_id : &str) -> Result<(User, Session)> {
    use schema::{users, sessions};
    use diesel::ExpressionMethods;
    use diesel::result::Error::NotFound;

    let (session, user) : (Session, User) = sessions::table
        .inner_join(users::table)
        .filter(sessions::sess_id.eq(sess_to_bin(session_id)?))
        .get_result(conn)
        .map_err(|e| {
            let a: () = e; // Just added this line for testing
            match e {
                e @ NotFound => e.caused_err(|| ErrorKind::NoSuchSess),
                e => e.caused_err(|| "Database error?!"),
        }})?;

    Ok((user, session))
}

errors with:
error[E0277]: the trait bound `(): error_chain::ChainedError` is not satisfied
   --> src/lib.rs:280:35
    |
280 |                 e @ NotFound => e.caused_err(|| ErrorKind::NoSuchSess),
    |                                   ^^^^^^^^^^ the trait `error_chain::ChainedError` is not implemented for `()`

()?! what the heck! e shouldn't be (). And indeed, when I uncomment the line let a: () = e;, it rightly says: "expected (), found enum diesel::result::Error". (Btw. my toolchain is nightly-2016-11-06-x86_64-apple-darwin). I'm baffled.

I pushed a new test case that demonstrates the error. https://github.com/golddranks/ganbare/commit/50624b883201cb3490c4afbed51275c871ffc97b

There's actually two cases of inference behaving strangely. The first one is demonstrated by test_function, and the second one by get_file.

For the first one, you can do
let res: Result<_> = env::var("GANBARE_RUNTIME_PEPPER").chain_err(|| "Environmental variable GANBARE_RUNTIME_PEPPER must be set!");
let run_pepper = res?;

For the second one, it works it I do
    let file: String = get_result().map_err(|e| {
        let e2: Error = match e.kind() {
            io::ErrorKind::NotFound => e.caused_err(|| ErrorKind::FileNotFound),
            _ => e.caused_err(|| "Database error?!"),
        };
        e2
    })?;

In either case, it's an inference problem...

Same problem with
    let file: String = get_result().map_err(|e| {
        e.caused_err(|| Error::from(ErrorKind::FileNotFound))
    })?;

Btw, made a better version of the test cases that show the inference bugs, I accidentally had borked the second one, it didn't make any sense. https://github.com/golddranks/ganbare/commit/10bb75d081a9e4432e42915c4589290dc375de33
To me, these look like bugs in inference

Yeah, it knows that get_file returns an Error, so it should infer the return value of map_err.

Do you happen to know if these are known bugs? Are they recent ones or have they existed for a long time?

That's what I'm searching. Keep me informed!

What I think is happening is that the inference engine can't find the return value of get_result().map_err() since try! returns the Result with map_err(Into::into). Since you can have multiple CE: ChainedError that implements Into for our Error, it can't choose which to use.

    let res = get_result().map_err(|e| {
        e.caused_err(ErrorKind::FileNotFound)
    });
    //let _: () = match res {
    //    Ok(o) => o,
    //    e => return e.into(),
    //};
    //let _: () = try!(res);
    let _: () = res?;

The first let _: () compiles, not the last two.

The () inference is probably https://github.com/rust-lang/rust/issues/37181

thanks


c8d/prune: Handle filters, don't delete used

Support the same filters as the non-c8d docker for image prune -a.
Also no longer remove the content from ContentStore ourselves - let c8d do that when deleting Image with SynchronousDelete (triggers GC immediately), and check afterwards which blobs are no longer in the store.
Not sure if there's anything meaningful from our side to do in docker image prune, as there is no dangling images in c8d due to GC. So currently the only sensible thing is to just trigger the GC, in case there were performed some actions without SynchronousDelete option.
Signed-off-by: Paweł Gronowski<EMAIL_ADDRESS>
- What I did
- How I did it
- How to verify it
- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

I removed the checkPresentPlatforms that I brought from other PR because it was actually a convoluted way to perform a recursive walk on the blobs that are present in the Store.
Changed it to a simpler ImageHandler that actually does the correct thing.

Should be combined when upstreaming:

https://github.com/rumpl/moby/pull/20


Updated struct value in map

What version of Go are you using (go version)?

$ go version 1.20.6

Does this issue reproduce with the latest release?
Sorry, I don't know
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOMODCACHE="/Users/pc/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/pc/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.20.6"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/pc/dev/test/backend/go.mod"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/cr/10sy8pl574s35c7v0njtxpxm0000gn/T/go-build3112415207=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?
Backend service with some endpoints without database. Three endpoints with working with http protocol and one with websoket.
Structs in service
type Clients struct {
	Clients map[string]*Client
	Rooms   map[string]ClientRoom
}
type ClientRoom struct {
	RoomID   string `json:"roomId"`
	Name     string `json:"name"`
	ClientID string `json:"clientId"`
}
type Room struct {
	ID   string
	Name string
	JoinClients map[string]string
}
type Client struct {
	ID             string
	Rooms          map[string]*Room
	Username       string
}

func NewClients() *Clients {
	cls := &Clients{
		Clients: make(map[string]*Client),
		Rooms:   make(map[string]ClientRoom),
	}

	return cls
}

func main(){
        app := fiber.New()
	cls := NewClients()

//Register route just for create client
app.Post("/register", func(c *fiber.Ctx) error {
               id := "test"
               username := "some_username"
               c := NewClient(username, id)

	       cls.Clients[id] = c

		return c.Status(200).JSON(&fiber.Map{
			"success":    true,
			"clientUUID": client.ID,
			"username":   registerClient.Username,
		})
	})

//Just for create room
app.Post("/rooms/:user_uuid", func(c *fiber.Ctx) error {
		uuid := c.Params("user_uuid")

		cl := cls.Clients[uuid]
		id := "test"
		r := &Room{
		   ID:          id,
		   Name:        name,
		   JoinClients: make(map[string]string),
	        }

	        cl.Rooms[id] = r

		cls.Rooms[roomId] = ClientRoom{ClientID: uuid, RoomID: roomId, Name: name}

		fmt.Println("CREATE_ROOM", cls.Clients)
		fmt.Println("CREATE_ROOM", cls.Rooms)

		return c.Status(200).JSON(&fiber.Map{
			"success":  true,
			"roomUUID": r.ID,
			"roomName": r.Name,
		})
	})

//For get all rooms
app.Get("/rooms/:user_uuid", func(c *fiber.Ctx) error {
		uuid := c.Params("user_uuid")

		fmt.Println("GET_ROOMS", cls.Clients)
		fmt.Println("GET_ROOMS", cls.Rooms)

		return c.Status(200).JSON(&fiber.Map{
			"success": true,
			"rooms":   []
		})
	})

//Websocket endpoint
app.Get("/ws/:roomId", websocket.New(func(c *websocket.Conn) {
		defer func() {
			c.Close()
		}()

		fmt.Println("WS", cls.Clients)
		fmt.Println("WS", cls.Rooms)
	}))
}

If look at scheen in the end of the terminal cls.Rooms changed client id from test to YFUF. I can't understand this behavior, because  in all of the endpoints I don't have any domain logic that can change in cls.Rooms ClientID in Room struct. After some of time I realized that YFUF is peace of RoomID. I don't have any idea how peace of RoomID replaced client id in map.

What did you expect to see?
WS map[VGJYFUFDYAUC:{VGJYFUFDYAUC asdf test}]
What did you see instead?
WS map[VGJYFUFDYAUC:{VGJYFUFDYAUC asdf YFUF}]

Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions

@seankhliao sorry for that. But I didn't ask a question, just represent the bug case with data structure map.

that sounds like a problem from the poor choice of http framework doing unsafe things, not a go problem

@seankhliao Thanks.


How to handle input events with Command.Input?

I wanted to make a basic functionality with show/hide Command.List if the input is focused or not, but none of any default events are working, I tried to pass them inside Command.Input like in other Input components in shadcn library, but with no luck.
So basically I have this code, but events are not working. Can I make them work somehow? Thank you in advance!
<Command.Root>
        <Command.Input
		bind:value={search}
		on:input={() => {
			console.log('input');
		}}
		on:blur={() => {
			console.log('blur');
		}}
	/>
	<Command.List open={isInputFocused}>
	</Command.List>
</Command.Root>

Whoops! Forgot to forward those events up! Will add that as soon as I get the chance!

Thank you!

@huntabyte This is still not working for me in<EMAIL_ADDRESS>

@huntabyte This is still not working for me in<EMAIL_ADDRESS>

Hello, is there any update here? Still closed but not fixed.
Thank you

To make it work I added on:input (or any event supported here) into the command-input.svelte

		<IconSearch />

	<CommandPrimitive.Input
		class={cn(
			"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
			className
		)}
		{...$$restProps}
		bind:value
		on:input
	/>

And then used like this:
<Command.Input
        on:input={(e) => {
            test(e);
        }}
    />


API v2 proposal: remove PinResults.count

Prompted by https://github.com/ipfs/ipfs-webui/issues/1900 – this is BREAKING CHANGE for v1 API, so marking this as something we can discuss if we ever want to create v2.

PinResults.count is used for  two things:
(1) Reading pin count per status (used in ipfs pin remote service ls --stat):
GET /pins?limit=1&status=queued
GET /pins?limit=1&status=pinning
GET /pins?limit=1&status=failed
GET /pins?limit=1&status=pinned

(2) pagination (where it acts as an equivalent of more: true:

If the value in PinResults.count is bigger than the length of PinResults.results, the client can infer there are more results that can be queried.

Problem

Calculating PinResults.count is expensive, especially when running expensive filters like cid, name or status

ipfs-desktop/webui is checking CID status  via GET /pins?cid=Qm1.Qm2...Qm10 which

Proposed change

remove PinResults.count
add PinResults.more (true/false bool)
add /service/pins/healthcheck that allows inexpensive health check
add /service/pins/stats that returns total pin counts for each status
switch ecosystem to new fields

This would be a breaking change that requires v2.x.x of this spec and coordinated effort across the stack:
go-ipfs, js-ipfs, ipfs-webui, ipfs-desktop and Pinata.
Is it really breaking? Needs analysis.
I've been thinking a bit about a way to do this in backward compatible way and we could have  PinResults.count as an optional field, and always return 1 so the pagination and health checks in old clients still works.
:point_right: Before we consider doing this, the main question is how old client in go-ipfs will react to an unexpected PinResults.more – if it is ignored and nothing crashes, then we have a better  path forward.
If not, we would break our users, and need to coordinate go-ipfs/ipfs-webui/ipfs-desktop and Pinata to make the change around the same time to limit the damage. TBD is this is acceptable, considering the performanc benfits in the long run.
cc @obo20 @aschmahmann

Yes, if we every do this, then we would introduce this breaking change as v2 + versioning scheme.
I've updated the title of this issue + created topic/v2 for changes like this one.
So far this proposal got no  feedback from any pinning service – let's  park this until there is interest and/or we gather more items under topic/v2

Besides being expensive, looking at the count while paginating has problematic edge cases, e.g. pins being added/deleted while paginating.
If we're going to make a breaking change, we should consider using an opaque pagination token instead of the created timestamp, which makes less assumptions about the capabilities of the underlying DB and can include arbitrary info to help the DB paginate better.

@lidel I would also add here that getting rid of count would allow us to raise our rate limits, which is something I know the PL team has been asking for on this specific endpoint

We could pretty easily implement things right away if we did time based pagination, as we already switched the rest of our application over to doing this, but I'm guessing opaque token pagination might be a lot bigger of a lift.
@SgtPooki @guseggert could you both elaborate on what you have in mind here? Any example articles you could point to?

@obo20 absolutely. First here's a quick summary in my own words:
I think of pagination tokens like nextToken as a sort of ephemeral API key for a search/query. Basically, it's a pointer(see: cursor in cursor-based-pagination) to a certain record. You could map this back to a time-based token if that's how your service is implemented. When you receive a request with a nextToken, you know exactly where to start searching, instead of always searching/filtering through all records for each query.
Those records can be sorted/filtered however you wish, and you can encode any sorting/filtering/pages/users/etc.. within that token.  This flexibility is great, but does come with drawbacks that I've personally experienced and complained about plenty during my time at Amazon, but for service owners, it gives you a lot more control over how your resources are consumed no matter how many consumers or objects to consume you have.
I believe @guseggert implemented more than a few APIs at Amazon where we were required to use this pagination strategy when dynamoDB was our backend (it was most of the time), so he can correct me or speak further to the details if you need more info from someone who's got more experience.
Below are some great articles I've found that should help the discussion here for anyone interested. The writeup by slack is a fantastic read that goes into the pros and cons of many approaches.

Apollo GraphQL
Not as good as the others, but informative in a basic sense. Very specific to apollographql

Since numeric offsets within paginated lists can be unreliable, a common improvement is to identify the beginning of a page using some unique identifier that belongs to each element of the list.
If the list represents a set of elements without duplicates, this identifier could simply be the unique ID of each object, allowing additional pages to be requested using the ID of the last object in the list, together with some limit argument. With this approach, the requested cursor ID should not appear in the new page, since it identifies the item just before the beginning of the page.
--- https://www.apollographql.com/docs/react/pagination/cursor-based/

hackernoon article
Great writeup covering unidirectional and bidirectional pagination from the view of an engineer.

For unidirectional pagination, my preferred approach is to use a simple cursor. The important detail here is to make the cursor meaningless.
As far as the client is concerned, it’s just a blob the server returns in the response when there are more results to fetch. The client shouldn’t be able to derive any implementation details from it, and the only thing it can afford to do with this cursor is to send it along in the next request.
--- https://hackernoon.com/guys-were-doing-pagination-wrong-f6c18a91b232

Slack
An extremely thorough writeup of slack's considerations when upgrading their pagination API

Cursor-based pagination works by returning a pointer to a specific item in the dataset. On subsequent requests, the server returns results after the given pointer. This method addresses the drawbacks of using offset pagination, but does so by making certain trade offs:

The cursor must be based on a unique, sequential column (or columns) in the source table.
There is no concept of the total number of pages or results in the set.
The client can’t jump to a specific page.

--- https://slack.engineering/evolving-api-pagination-at-slack/

At a high level, you can encode whatever state you need to fetch the next page in the pagination token (you might want to encrypt it too, so clients can't reverse it). E.g. for a relational database, you can encode a JSON object like {"limit":20,"offset": 100}, for key-value stores that paginate with their own tokens, use that token. Some folks need to add extra data like a timestamp, so that the token will eventually expire.
Concretely, GET /pins would return something like:
{
    "nextToken": "eyJsaW1pdCI6MjAsIm9mZnNldCI6IDEwMH0K",
    "results": [...]
}

and then the subsequent request would be like GET /pins?nextToken=eyJsaW1pdCI6MjAsIm9mZnNldCI6IDEwMH0K, repeat until you decide to stop or nextPageToken is null.
The downside from a client's perspective is that you can't parallelize queries. That's an upside from a server's perspective, generally a desirable thing for a multitenant API. But I'm not sure how this would impact existing impls.
Essentially though, I think we should decouple the query params / filters from the pagination mechanism, so that we don't need to make assumptions about the query capabilities of the DB in order to paginate, and the most general way that I know of to do that is with an opaque token.

@SgtPooki @lidel did we want to make official the decisions form ipfs-thing?

iirc we were discussing backward-compatible ways of removing the cost of returning exact count value to avoid breaking existing clients.
Removing or changing type of count will break existing clients which use it for pagination (docs). However, if we keep it, but relax the requirement around its value to be something like  "equal to results or results+1 (or MAX_INT?)  to indicate there are more records" then you no longer need to pay the cost of calculating the exact size.
Next steps here (I have no bandwidth for this, but happy to review PRs):

propose a PR against this repo that updates Pagination-and-filtering section.
test if https://github.com/ipfs/go-pinning-service-http-client  (used by Kubo) will correctly paginate if count value is no longer exact.


Add an option to hide the "timeline type" overlay bar

Today Twitter updated the timeline selection in such a way that:
Home -> For you
Latest tweets -> Following
Many (can't confirm if all) accounts were reset to the "For you" timeline and now there's a wasted space above the screen showing the timeline selector bar.
Please update the extension to account for this latest update.
Example:

Good catch @dangpzanco, added to the next release! https://github.com/typefully/minimal-twitter/pull/141/commits/ed412625faae2e9e86663a03e8ea7010a29ad9a5


Incorrect input for headerbar set custom title

The input for set_custom_title under headerbar should take in a widget not an option.

According to the docs:

You should set the custom title to NULL, for the header title label to be visible again.

This NULL naturally translates to Rust's Option::None although it's slightly complicated by the function being generic, so you have to spell None as None::<Widget>.

@gkoz This function can also be used to set other gtk widgets, like a gtk box, to be centered in the headerbar.  I have seen it used this way in other languages such as vala.
Right now when I use it in that way it errors out with expected core::option::Option<&_>, found &gtk::widgets::progress_bar::ProgressBar.  If it is to be this way by taking in an option, how would I fix this?

Put the reference into an option: Some(&your_widget)

@gkoz Thnak you