Stack empty exception

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win 10

Platform
PC

SDK Version
<IP_ADDRESS>3

Language
C#

Segment
Machine Vision

I am working on a multi-camera multi-threaded application using the C# wrapper and I get sporadic 'Stack empty' exceptions from librealsense. Sometimes on pipeline.WaitForFrames() but more often on depthFrame = fs.DepthFrame.DisposeWith(fs) or colorFrame = fs.ColorFrame.DisposeWith(fs) lines. The exceptions seem to be non terminal in that I can catch them and skip that frame and the application continues to capture frames and perform as expected.
I gather that the ObjectPool is related to how librealsense reuses memory to avoid garbage collection overhead. I also wonder if perhaps the way I am using the library is a bit unusual in that I am capturing frames, extracting several small regions of interest and then packing them back into Frames before running the depth filtering process. Benchmarking it shows a significant speed up over trying to process the full frame for my application but it probably means I am using more objects at any one time than the average realsense application. Could this be related?
The stack trace from Visual Studio looks like this:
   at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   at System.Collections.Generic.Stack`1.Pop()
   at Intel.RealSense.ObjectPool.Get(Type t, IntPtr ptr)
   at Intel.RealSense.ObjectPool.Get[T](IntPtr ptr)
   at Intel.RealSense.Frame.Create[T](Frame other)
   at Intel.RealSense.Frame.Cast[T]()
   at Intel.RealSense.FrameSet.FirstOrDefault[T](Stream stream, Format format)
   at Intel.RealSense.FrameSet.get_ColorFrame()
   at RealSenseTrial.Orientation.RotationUnit.onFrameReceived(Object sender, FrameEventArgs args)

The realsense logs aren't much help:
 09/02 21:57:12,132 DEBUG [28076] (sync.cpp:526) fps 60 Color 7 8818<PHONE_NUMBER>106.993164
 09/02 21:57:12,132 DEBUG [28076] (sync.cpp:539) (TS: I Depth I Infrared I Infrared I Color )Color 7 8818<PHONE_NUMBER>106.993164 fps 60 gap 16.666666 next_expected:<PHONE_NUMBER>123.659912
 09/02 21:57:12,132 DEBUG [28076] (sync.cpp:526) fps 60 Color 7 8818<PHONE_NUMBER>106.993164
 09/02 21:57:12,132 DEBUG [28076] (sync.cpp:598) next expected of the missing stream didn't updated yet
 09/02 21:57:12,132 DEBUG [28076] (sync.cpp:343) (TS: I Depth I Infrared I Infrared I Color ) Color 7 8818<PHONE_NUMBER>106.993164  Wait for missing stream: 4 next expected<PHONE_NUMBER>106.664307
 09/02 21:57:12,132 DEBUG [28076] (frame-archive.h:148) CallbackFinished,Color,8818,DispatchedAt,1612861032132.675781
**Exception thrown: 'System.InvalidOperationException' in System.dll**
 09/02 21:57:12,140 DEBUG [20472] (global_timestamp_reader.cpp:123) librealsense::CLinearCoefficients::calc_value: 3715521.497000 -><PHONE_NUMBER>106.795166 with coefs:0.999895, -11.540764, 3567007.826000,<PHONE_NUMBER>620.263184
 09/02 21:57:12,140 DEBUG [20472] (sensor.cpp:348) FrameAccepted,Depth,Counter,8793,Index,0,BackEndTS,1612861032121.000000,SystemTime,1612861032140.320313 ,diff_ts[Sys-BE],19.320313,TS,1612861032106.795166,TS_Domain,Global Time,last_frame_number,8792,last_timestamp,1612861032089.997559
 09/02 21:57:12,140 DEBUG [20472] (archive.cpp:293) CallbackStarted,Depth,8793,DispatchedAt,1612861032140.740723
 09/02 21:57:12,140 DEBUG [20472] (archive.cpp:293) CallbackStarted,Depth,8793,DispatchedAt,1612861032140.771484
 09/02 21:57:12,140 DEBUG [20472] (sync.cpp:147) DISPATCH (TS: )--> Depth 4 8793<PHONE_NUMBER>106.795166 `

Hi @cdrose   If you have a multicam C# application and suspect that your object pool may be filling up, a RealSense user in a case in the links below who was trying to optimize their application's speed had similar concerns.
https://support.intelrealsense.com/hc/en-us/community/posts/360049434593-Object-Pool-Size
https://github.com/IntelRealSense/librealsense/issues/7201
The link below is also a useful C# reference about disposal.
https://github.com/IntelRealSense/librealsense/issues/5369
It nay be helpful to review the above links to see whether it provides useful insights for your own case and return here with any new questions that this research creates.
I would also add that if you have created a single application that handles multiple cameras (in the style of the rs-multicam example program) then it is recommended to use poll_for_frames() instead of wait_for_frames() for reasons described in this link:
https://github.com/IntelRealSense/librealsense/issues/2422#issuecomment-423254709

Hi @MartyG-RealSense, thanks for the speedy reply. I had already read the first two issues you mention, and have now read the third also.
#7201 does sound like a similar issue although it is not mentioned what exception was actually thrown when the ObjectPool is empty, I am only guessing that is what has happened at this point. If that is the case then "Keep - bypass SDK frame pool to have more frames in memory" sounds like it may be a solution. I will try and work out how Keep should be used (I see there are a few references in the github issues).
#5369 seems unrelated unless I have missed something important in that thread.
#2422 I understand the discussion here but it is not relevant for my application. I can see how WaitForFrames() would be messy to use if one required multiple frames to be available before processing could continue, but in my case the cameras are used independently so I am free to process individual frames as they arrive with no need to syncronise the multi-camera setup.
So for me the main questions to answer are:
a) Am I correct that the objectpool has been exhausted and that is what is causing the Stack Empty exception?
b) Assuming the above is correct is Frame.Keep() the correct method to free up the object pool
c) If so how should Keep be used and is there any documentation or relevant examples

I researched the Stack Empty Exception thoroughly and can find no other cases of it in librealsense.  The link below is the best information that I could find about dealing with it, and suggests that it may be happening due to the multi-threading.
https://stackoverflow.com/questions/14121799/stack-empty-exception
There is no other information relating to use of Keep() with C# and so I do not feel that I can recommend it, simply because there is insufficient information to conclude whether it is appropriate for your C# project.
I will say though that Keep() has the limitation that because the frames are stored in the computer's memory until the pipeline is closed and the frames processed, it is best suited for recording durations of up to 30 seconds.  This is because the computer's memory capacity is consumed by the frames as the seconds pass.
I do not know of C# scripting examples for Keep() though, only C++ and Python ones.  A C++ example of using Keep(), in case you wish to consider accessing C++ from C#, is in the link below,
https://github.com/IntelRealSense/librealsense/issues/6865#issuecomment-661024268

The lack of other librealsense issues relating to the Stack Empty exception does imply that its something particular to my current project. A concurrency issue due to multi-threading would make sense, I will look into it further.
If the Stack Empty exception is not actually related to reaching the capacity of the ObjectPool then Keep is not the solution so I will see if I can solve my issue without using it. It would seem odd though that the frames are stored in memory until the pipeline is closed, surely one can still Dispose() of frames which have been stored with Keep() once they are no longer required.

OK I'm not sure I'm totally qualified to fix this, but looking in ObjectPool.cs some things look a bit suspicious. The ObjectPool class is static and there is one PooledStack for each type. This means all Frames across all threads will be trying to use the same stack. The underlying stack is a System.Collections.Generic.Stack which is not inherently thread safe. Locks are used in the ObjectPool methods so it was clearly intended to work in a multithreaded environment.
The Stack Empty exception that I get comes from ObjectPool.Get() which in turn calls System.Collections.Generic.Stack.Pop(). The lock is acquired before checking the stack count, it is then released and reaquired before the object is popped off the stack. To me that looks like an opportunity for another thread to pop an object, leaving the original thread with an incorrect count and then attempting to pop an object from an empty stack. Releasing the lock in between checking the count and carrying out the Pop() looks like a bug to me.
private static object Get(Type t, IntPtr ptr)
        {
            var stack = GetPool(t);
            int count;
            lock ((stack as ICollection).SyncRoot)
            {
                count = stack.Count;
            }

            if (count > 0)
            {
                Base.PooledObject obj;
                lock ((stack as ICollection).SyncRoot)
                {
                    obj = stack.Pop();
                }

                obj.m_instance.Reset(ptr);
                obj.Initialize();
                return obj;
            }

            return CreateInstance(t, ptr);
        }

Given that the exception has been occurring sporadically for you (as reported in the opening comment of this discussion), the best way forward may be to continue catching the exceptions as you are already doing.

Or, perhaps we should fix it?!
I have recompiled the C# wrapper with the following change. Will test and confirm if it works. Is anyone still actively maintaining this project who could review a PR?
private static object Get(Type t, IntPtr ptr)
        {
            var stack = GetPool(t);
            int count;
            Base.PooledObject obj;
            lock ((stack as ICollection).SyncRoot)
            {
                count = stack.Count;
                if (count > 0)
                {
                    obj = stack.Pop();
                    obj.m_instance.Reset(ptr);
                    obj.Initialize();
                    return obj;
                }
            }
            return CreateInstance(t, ptr);
        }

Okay, thanks very much for the possible PR contribution!

Hi @cdrose  Do you have an update that you can provide about your case, please?  Thanks!

@MartyG-RealSense sorry been busy with other things last week, have yet to fully test my changes. Should be back on it later this week.

Thanks very much for the update!

I have tested my patched version of the C# wrapper and have not observed anything unexpected. I have also not seen a StackEmpty exception since making the change. As far as I can tell this change has fixed the issue.

Excellent news @cdrose  - thanks!

Case closed due to successful outcome achieved and no further comments received.

I had the same problem, it was a multi camera, multi treaded projected, resulting in the following stacktrace:
Exception Info: System.InvalidOperationException
at System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource)
at System.Collections.Generic.Stack`1[[System.__Canon, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Pop()
at Intel.RealSense.ObjectPool.Get(System.Type, IntPtr)
at Intel.RealSense.ObjectPool.Get[System.__Canon, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089]
at Intel.RealSense.Sensor+<>c__DisplayClass21_0.b__0(IntPtr, IntPtr)
Recompiling the Intel.Realsense wrapper with the Get method as shown by @cdrose fixed it, but I'm surprised this hasn't been implemented as the issue is closed, but it still is an issue in the software.

Thanks so much @PorschefanRoel for sharing your confirmation of successful use of the @cdrose method on this discussion!


[Feat]Deal with single file

Sometimes, I just need to deal with a file instead of a folder.

I have upgraded to 2.2.0, but still report an error:
Error: ENOTDIR: not a directory, scandir './icon.svg'

@RayJason can you please show me how you use the module?

Okay, I need to investigate this. Unfortunately, I can do this as early as Tuesday.

Have a good weekend

hey, @RayJason, I've published 2.2.1 and tested it - it works for me. Can you please check if it does the job for you as well?

hey, @RayJason, I've published 2.2.1 and tested it - it works for me. Can you please check if it does the job for you as well?

It's working!🎉


Unable to create an Author Page : java.lang.NullPointerException at com.cognifide.qa.bb.aem.touch.data.pages.Pages.getPath

Env: Local
Bobcat version: 1.3.0
Bobcat modules used:

bb-aem-touch-ui

Browser: Chrome
Problem:  In spite of having entries in the YAML file (pages.yaml) in config folder, the author page is not created programmatically.
Issue mail.pdf

No This is not the case. There is no implementation for the method "create" declared in "AuthorPage" Interface. The author pages doesn't get generated. Else Please advise if there is a way to use this in google.guice framework which seems to be plagued with proprietary problems.

In which way or Is the below piece of code related to invoking the create method which is not implemented?

It is a set-up issue where I did not include the AemTouchUIModule in the GuiceModule. Sincere Apologies. I am closing the issue.


controller modules (suggestion from the meta-review)

Error Instruments Raw Spring, Intellijel Planar and Tetrapad, and Mutable Instruments Ears come to mind. The authors already allude such modules this by mentioning Buchla’s touch plate controllers. One could then imagine virtual modules that could be similarly struck, scratched or bent. Given the stated ambition of this system to harness the unique capabilities of VR, one hopes that the design of more expressive modules is in the roadmap.

see also the wand.gendsp


Create 0000-01-02-TharshanSM.md

Add TharshanSM's file

Add TharshanSM's file

Add TharshanSM's file


Silvershower Heartstrings duplication in Add New Weapon modal on the Weapons page

When adding a new weapon, toggling the weapon type filters causes Silvershower Heartstrings to be duplicated on every toggle. As far as I can tell, the newly created duplicate sometimes seems to be correctly filtered out when the selected weapon types don't include bow, and toggling bows only will display every duplicate created up to that point. The duplicates do not persist across different instances of the modal but are fully functional.
https://github.com/user-attachments/assets/0103a327-7c12-4c96-98a0-208e4405d659
It also has two identical weapon cards from the get-go no matter where the modal is accessed from:

I can try looking into this myself but will need to refamiliarize with the repo first (and familiarize with the relevant code path), so if this is already on someone's radar, please let me know.

This can happen when the imports are not sorted correctly

https://github.com/frzyc/genshin-optimizer/blob/751f7c1b16cf62cc92b8703f84a7acdd0f3494ca/libs/gi/sheets/src/Weapons/Bow/index.ts

The array at the end needs to be sorted

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."


MM-12841 Fix for unread muted channels sorting

Update mm-redux hash

Ticket Link
MM-12841

Added hash commits to release branch


Unable to join session on Linux (Kubuntu)

Issue Type: Bug

Install VS Live Share Extension Pack
Attempt to join a session hosted by someone else

I am able to host sessions and people are able to join without issues. When I try to join a session it is never able to load. I have been able to join sessions on Windows.
Extension version: 0.3.1326
VS Code version: Code - Insiders 1.33.0-insider (c1d001a915fe85cac93492393ea69fdb0c49ec0d, 2019-03-13T06:13:28.579Z)
OS version: Linux x64 4.18.0-16-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz (4 x 3429)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: enabled_onvideo_decode: unavailable_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
15.53GB (7.09GB free)

Process Argv
--unity-launch

Screen Reader
no

VM
0%

Hey @FlippyDuck, thanks for the feedback! That's very interesting, are you usually join by opening the live share link in a browser, or you use VSCode to initiate join?

I have done both and there seems to be no difference.

@FlippyDuck that's good to know, trying to repro on my end now. Wondering if you've tried the stable version of VSCode, does it make any difference?

I haven't tried stable.

@FlippyDuck could you try stable it when you have a chance? It might help us a lot to investigate.

Ok I just tried both stable and insiders and they both worked this time. As far as I'm aware I didn't change any of my settings so I guess a recent update must have fixed my issue.

I see, thanks for checking. Sounds the issue is solved for you so I'm closing the issue. If you hit it again, please let us know. Thanks!


Fix README image (white/dark theme)

Fixed in https://github.com/elmasy-com/elmasy/commit/6ea941a9600b73cc53a813cb5b139d2e77b35ba6


LintDiff reporting success when it got canceled

Teams post
LintDiff log

This log: "Process() cancelled due to failure " originates from this source

Pull Request 530722: Fix bug with AutorestResultParser not parsing any errors; add diagnostic logs; do a lot of refactoring


Inconsistent handling of whitespace in string in template literal types

Bug Report

🔎 Search Terms
template literal types
template literal whitespace
template literal spaces
template literal strings
🕗 Version & Regression Information
This changed between versions 4.0.5 and 4.1.5.  I think this variety of type definition was not supported prior to 4.1.5.
⏯ Playground Link

Playground link with relevant code
💻 Code

type StringWithNumberX = `${string} ${number}x`;
type CommaSepStringWithNumberX = `${StringWithNumberX}, ${StringWithNumberX}`;
type CommaStringSepStringWithNumberX = `${StringWithNumberX}, ${string}${StringWithNumberX}`;

const commaSepStringWithNumberX: CommaSepStringWithNumberX = 'foo 4x, bar 5x';
const stringWithNumber: StringWithNumberX = 'foo 5x';

const emptyString: StringWithNumberX = ' 5x';
const moreSpacesBetween: StringWithNumberX = 'foo    5x'; // seems consistent given https://github.com/microsoft/TypeScript/issues/46109
const suffixSpaces: StringWithNumberX = 'foo 5   x' // seems consistent given https://github.com/microsoft/TypeScript/issues/46109

// Tabs and new lines are included with string, but spaces are not
const prefixNewLine: StringWithNumberX = '\nfoo 5x';
const newLineInString: StringWithNumberX = 'foo\nbar 5x';
const newLineBetween: StringWithNumberX = 'foo \n 5x'
const suffixNewLine: StringWithNumberX = 'foo 5x\n'; // new line is not ignored
const prefixTab: StringWithNumberX = '\tfoo 5x';
const tabInString: StringWithNumberX = 'foo\tbar 5x';
const tabBetween: StringWithNumberX = 'foo \t 5x'
const suffixTab: StringWithNumberX = 'foo 5x\t'; // tab is not ignored

// Cases that seem inconsistent
const spacesInString: StringWithNumberX = 'foo bar 5x'; // spaces in string are not allowed?
const prefixSpaces: StringWithNumberX = '   foo 5x'; // spaces at start of string are not allowed?

const extraSepSpace: CommaSepStringWithNumberX = 'foo 4x,  bar 5x'; // extra space isn't included with second string?
const extraSepSpace2: CommaStringSepStringWithNumberX = 'foo 4x,  bar 5x'; // adding the string in the separator lets me add exactly one space in between
const twoExtraSepSpace: CommaStringSepStringWithNumberX = 'foo 4x,   bar 5x'; // adding the string in the separator lets me add exactly one space in between

🙁 Actual behavior
${string} in a template literal type will accept tabs and/or new lines anywhere in the string, but does not accept spaces within the string.
🙂 Expected behavior
${string} should allow spaces within the string.

Maybe I'm missing some part of your examples - but I think this just has to do with greedy string matching. When TypeScript encounters a template string type like
`${string}FOO...`

there is no back-tracking involved in trying to solve for all places where a FOO will occur. The first one wins, and everything up until that point will be matched against that string.
So please correct me if I'm missing something, but I don't think this has anything to do with whitespace.

@DanielRosenwasser Maybe I am missing something, but take the example of const spacesInString: StringWithNumberX = 'foo bar 5x';.... I'm not sure how this would involve backtracking at all?  It appears to me there is only one instance of
 ${number}x, and for some reason "foo bar" is not then matching for string.

@DanielRosenwasser  I wonder, are you looking at the playground and not just the code sample in the issue?  The playground shows several type errors for several cases where I would not expect type errors.  The lines with type errors are 16, 20, 23, 24, 26, and 28.  Lines 16 and 20 failing seems consistent.  The others do not, specifically because of the way spaces are being treated.

The space makes a difference because your pattern contains one.  Daniel is saying that TypeScript is matching foo  (with the space) with ${string} , it is then unable to match bar 5x with ${number}x and gives up.  It won’t go back and try to match with a larger ${string}.


Issues having same config run on windows/linux

Benthos people. Any way I can avoid this when switching between windows/mac
when on mac:
import "./src/npimap.blobl"
when on windows:
import ".\src\npimap.blobl"
Thanks, David.

As far as I can tell this is the same situation covered in https://github.com/Jeffail/benthos/issues/1020, closing this one in favour of it as it has more information.


Support for Svelte Query v5

Are there any plans to support Svelte Query v5?
One change is that Svelte Query v5 has a new model for reactivity.
Orval has been very valuable for my team, so thank you for your work!

PRs are welcome!


Pokemon Omega Ruby: Issues with Exporting and Importing Greninja's model

Issues:

Greninja model's colors become more lit and less saturated when exported as DAE and re-imported (whether directly or indirectly), unsure if this is an issue with Materials
If the model is passed through Blender, the Head will detach from the rig and float in the air, and some of the body will be distorted

How to reproduce both issues at the same time:

Extract Greninja's model from Omega Ruby (a/0/0/8/7131/pm0725_00.bch)
Open in CTR Studio, export the model as .dae
Open the .dae in Blender 3.3 and export as .dae
While back in CTR Studio, replace the model with the .dae file exported from Blender
Save the BCH and repack
Use the repacked GARC container as a LayeredFS mod in Citra

Fixed https://github.com/MapStudioProject/CTR-Studio/commit/c9f50ad582c2aa00ac5ad2016f3be6af8a87272c
Rigging being a blender problem (buggy dae exporter) so I will close this for now. Hopefully blender will play nicer if gltf gets added


Fixes Ember version speed (fixes #153)

The grep was too slow, so I made it faster.

Thanks for contributing!
Published as v2.7.2!


Unable to load model (or very very slow)

Hi,
Loading models on the IOS. However, when I try to load it on my developer Iphone (IOS17, iphone 13 pro), it doesn't work. It seems to get stuck on Loading audio encoder. I'm loading openai_whisper-large-v3-v20240930_turbo.
I'm also getting:
ANE model load has failed for on-device compiled macho. Must re-compile the E5 bundle. @ GetANEFModel E5RT: ANE model load has failed for on-device compiled macho. Must re-compile the E5 bundle. (13) E5RT encountered an STL exception. msg = MILCompilerForANE error: failed to compile ANE model using ANEF. Error=Couldn’t communicate with a helper application.. E5RT: MILCompilerForANE error: failed to compile ANE model using ANEF. Error=Couldn’t communicate with a helper application.  Is there any build configuration I'm missing ?
Thanks,
Hugo

Some models are simply too large to load on an iPhone 13 Pro, this one in particular is one of them. Luckily we've spent a lot of effort quantizing and optimizing many of the biggest models to work on the smallest devices, and created a list for all the models that are supported per device. It is directly accessible in WhisperKit via this handy function, and the example app also shows how they can be utilized here.
This method pulls from https://huggingface.co/argmaxinc/whisperkit-coreml/blob/main/config.json#L40-L57, which we have done extensive benchmarks to verify performance and functionality - viewable in this huggingface space: https://huggingface.co/spaces/argmaxinc/whisperkit-benchmarks. This will help you choose the best accuracy / performance tradeoff for all the phones we support. Hope that helps!


Remove deprecated SODAR_API_* settings

This requires an update to SODAR Core v1.0.3. See bihealth/sodar-core#1495.

Done.


Syntax highlighting is not following any language

It is highlighting the same text in the same manner, regardless of the language.
For example, write code in any language and save it as .py .m and .txt. All will have the same syntax highlighting, not really specific to any language. For example, it even highlights Python code (that are not part of Matlab) while editing an .m file.

Currently, the syntax highlighting feature has been implemented using prismjs. Generally, it uses keyword-based approach to highlight when no language is specified. I kept the language unspecified as we allow users to create new files.
My proposed solution for this issue is as follows -

If the user opens an existing file, it'll be highlighted based on the file extension.
If the user creates a new file, we can have two different approaches -
2a. Keep the current general keyword-based highlighting. When the user saves and reopens it, it'll show correct highlighting.
2b. Put a dropdown to select a language in the create a new file modal.

Please let me know which either 2a or 2b works.

2a is better. It is less coding for you and less confusing for the user.
Once the user saves the file, with your approach (step 1), it will show the correct syntax highlighting, which is sufficient.


Move mapping and location list to reactJS

This was done in another, optional, module.
https://github.com/dynamic/silverstripe-locator-frontend-react/


Profile Page

Implement a basic profile page with gallery of user's posts
Users must be able to view other users.
Use .htaccess and GET method for /user/index.php?profile=username -> /user/username

this would be useful, however if you are going to work on it please work on the other one first


Actually assumed input range is [0, 1]?

In your MSRGAN model, it seems the output is not normalized to [0, 1].
This will not affect the output quality so much if the output passes post-processes, however, it is not valid as the input for VGG networks as you said here:
# Assume input range is [0, 1]

If I missed the normalization processes, please point it out.

The model will be trained to output images in [0, 1]


x/tools/gopls: consider a -utf8 flag to talk UTF8 offsets

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

$ go version
go version devel +801cd7c84d Thu Apr 2 09:00:44 2020 +0000 linux/amd64
$ go list -m golang.org/x/tools
golang.org/x/tools v0.0.0-20200402175326-9fc00b0a7ff6
$ go list -m golang.org/x/tools/gopls
golang.org/x/tools/gopls v0.1.8-0.20200402175326-9fc00b0a7ff6

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/myitcv/.cache/go-build"
GOENV="/home/myitcv/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/myitcv/gostuff"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/myitcv/gos"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/myitcv/gostuff/src/github.com/myitcv/govim/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build775712682=/tmp/go-build -gno-record-gcc-switches"

What did you do?
For editors like Vim that natively speak the encoding of the files they are editing (e.g. UTF8 for Go files), there is an overhead in translating to/from UT8/UTF16. This same cost applies on the gopls side.
Whilst exploring the addition of the workspace symbol method to govim this became particularly apparent. In the approach laid out in that linked issue, a child instance of govim can ask questions of a parent (the instance being used within an editor session). For example, the child can ask the parent to return the results of a call to the gopls.Symbol method. However, because the []SymbolInformation results from gopls are in terms of UTF16 code points, all the responses have to be re-evaluated against the contents of buffers in Vim or files on disk (if those files are not open). This places yet another unnecessary processing cost on the client.
If instead gopls had a -utf8 flag that instead talked UTF8 offsets then all of this overhead, on both sides, would be entirely obviated.
This being a flag it would be entirely opt-in and so have no effect on existing integrations like VSCode.

cc @stamblerre @findleyr
FYI @leitzler @bhcleek

While I am sympathetic, I don't think this is the right answer.
At the moment the utf-16 is specified at the protocol level, so switching to utf-8 makes it non compliant, the benefits would have to be truly huge to be worth doing that.
Doing so with a command line flag when you have client server modes would almost inevitably result in two clients operating against the same server in competing modes.
We could make it negotiate per connection (although if we add that we should probably try to add it to the initialization dance and get it added to the spec) but that also means we cannot share cached results between two clients that disagree about what a position means, which would be kind of horrible, or we have to pick one format, and then do the dance at the protocol layer to convert all the positions (in which case we are not any better off than leaving it utf-16 and having the client do it instead).

Thanks @ianthehat. I'm very aware this proposal is not without its downsides! So appreciate the discussion.

At the moment the utf-16 is specified at the protocol level, so switching to utf-8 makes it non compliant, the benefits would have to be truly huge to be worth doing that.

Agreed. The most recent motivation has been the work to add fuzzy-finder driver symbol searching to govim. There we use the Symbol method as an input to the Vim fuzzy finder/selector. Whilst the gopls results are incredibly fast because they are cached in memory, the client needs to read file contents from disk for every match not open in the editor. Whilst not a huge cost on an individual basis, this starts to add up if you have hundreds of results per keystroke.
This same overhead applies to diagnostics returned by LSP (although the numbers there are generally far less).
It also makes it much harder to write a "plain old LSP client" for things like scripting (cc @findleyr).

Doing so with a command line flag when you have client server modes would almost inevitably result in two clients operating against the same server in competing modes.

Under what conditions do you see this as being "inevitable"? Do many people have two editors running against the same LSP?
Would it not be the case that for those people who are not using -remote right now there would be no impact because they are not sharing the same remote instance?
For those people who are using remote, you could also automatically add the result of the -utf8 flag to the key that determines which remote instance to select. Worst case you end up with two remote instances in auto mode.
Whilst it would always be possible for people to find edge cases, it feels like it would be entirely possible to prevent foot-gun incidents entirely if people use the forwarder to connect to gopls, remote or otherwise (that design has, incidentally, been worth its weight in gold).

although if we add that we should probably try to add it to the initialization dance and get it added to the spec

This is a good point. I struggle imagine that I'm the first person ever to bring this up.

I'dd add refererence of https://github.com/microsoft/language-server-protocol/issues/376

@mattn thanks, I had not seen that one, very relevant
@myitcv I expect in the future that everyone will be using -remote, it should be the default, and as for picking a different client, we already use far to much memory we don't want to double it.
The common case I would expect is something like you are using vim, it runs up the shared server, but sets it to utf-8 mode, then you run a command line tool, which tries to use the same server because then it gets to run fast on the results already sitting there thanks to vim being open on the same project.... but the tool was compiled only knowing about utf-16 because that is the protocol standard.
I just think that is far too much of a foot gut waiting to happen, if we do it then it absolutely has to go into the protocol negotiation.

I think we should close this issue in favor of microsoft/language-server-protocol#376. Like Ian said, we won't make any changes like this unless they are supported in the protocol.


Re-enable 'build --all --ut' command to build unit tests

Originating Project/Creator

Affected Component

Affected Architectures(s)

Related Issue(s)

Has Unit Tests (y/n)

Builds Without Errors (y/n)

Unit Tests Pass (y/n)

Documentation Included (y/n)

Change Description
fprime-util used to have a build --all --ut target to build all your unit tests. This PR re-exposes that target to fprime-util.

Yes! The cmake target has always existed, it looks like somehow the target was just accidentally removed from fprime-util.


Expression refactor

⚠ Do Not Merge Yet ⚠
This pull request refactors how chisel handles evaluation. There are two improvements:

Evaluate user input in the currently active language, presumably either swift or objc
Perform evaluation of generated code using lldb APIs, instead of workarounds like eobjc

Currently, the first issue is an existing bug in chisel. When stopped at some swift code, the user will rightly expect to call chisel commands with code expressions written in swift, not objc.
The second issue is more of preference. I would like to remove the eobjc, poobjc, eswift, and poswift commands.
Todo:

[x] Refactor FBDisplayCommands.py
[x] Refactor FBAutoLayoutCommands.py
[x] Refactor FBAccessibilityCommands.py
[x] Refactor FBComponentCommands.py
[x] Refactor FBInvocationCommands.py
[x] Refactor FBVisualizationCommands.py
[x] Refactor fblldbviewhelpers.py
[x] Remove use of poobjc
[x] Remove eobjc, poobjc, eswift, and poswift

@ultramiraculous Do you have any thoughts on the removal of poobjc, poswift, etc? There's a mix of motivations in this pull request, but I'm curious about your thoughts from the user's perspective. Internally, the uses of those commands has been replaced with calls into the lldb API. This should be invisible to the user. However, I'm wondering how many users are heavily using these commands directly. I've got to go for now, but I can elaborate in more detail this weekend.

The rest of this sounds great, but I do actually personally use poobjc constantly day to day. It's pretty useful to be able to just work with ObjC objects in an ObjC context when the Swift parts of lldb aren't feeling helpful/are flat out broken. It's decent escape hatch when you've got the memory address of an object and don't want to bother finding a stack frame that evaluates expressions as ObjC++.

That said, I'm 100% willing to believe the list of heavy users might be me and a coworker. If you have a good argument I'm not looking to die on this hill/be "that guy" over my pet use case 😛

That sounds like a pretty convincing reason. I'd be ok to keep poobjc for that reason.
One of the things I've yet to find a balance for is that some chisel commands are simple enough that they could be defined as a command alias in .lldbinit, and I mention this because  poobjc is one of those. If something can be a command alias, maybe it should be? This is just me thinking aloud.
I'll add poobjc back in. Thanks for the feedback. The escape hatch makes a lot of sense, and now I'm wondering whether all commands need to be able to handle objc input.

I've tested a bunch of the affected commands manually, and they work for me. One day we'll have #15 :trollface:

I figure I'll merge this if there are no reviewers. cc @facebook/team-chisel-restored


adding some confs for heron nomad and standalone

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


DW_OP_WASM_location is unsupported

When trying to dwarfdump any Wasm file produced with latest Clang or Rust, DW_AT_frame_base looks like this:
DW_AT_frame_base            len 0x0007: ed03000000009f: WARNING: unsupported operation 0xed

Looks like Gimli needs to be taught DW_OP_WASM_location as described at https://yurydelendik.github.io/webassembly-dwarf/#DWARF-expressions-and-location-descriptions. /cc @yurydelendik

Yes, it will be nice to have Wasm DWARF support. At least under the feature. We are using crude hack in the wasmtime project.

Yes, it will be nice to have Wasm DWARF support. At least under the feature. We are using crude hack in the wasmtime project.

Are the semantics of this operation similar to DW_OP_regx (rather than DW_OP_bregx)?

Are the semantics of this operation similar to DW_OP_regx (rather than DW_OP_bregx)?

@philipc I guess depends what you mean by semantics... The attached link likely explains it better than I could.

@philipc I guess depends what you mean by semantics... The attached link likely explains it better than I could.

Does it complete the expression or piece (as in DW_OP_regx), or does it push a value on the stack (as in DW_OP_bregx)? I assume it is the former. Would Wasm ever have a need for the later?

Does it complete the expression or piece (as in DW_OP_regx), or does it push a value on the stack (as in DW_OP_bregx)? I assume it is the former. Would Wasm ever have a need for the later?

AFAIK it's the former, yes.

AFAIK it's the former, yes.

So having implemented this in #546, I see that llvm is emitting a DW_OP_stack_value after it, which I think would only make sense if it pushed a value on the stack. @yurydelendik Can you take a look at this please?

So having implemented this in #546, I see that llvm is emitting a DW_OP_stack_value after it, which I think would only make sense if it pushed a value on the stack. @yurydelendik Can you take a look at this please?

So having implemented this in #546, I see that llvm is emitting a DW_OP_stack_value after it, which I think would only make sense if it pushed a value on the stack. @yurydelendik Can you take a look at this please?

Note that this is being fixed in https://reviews.llvm.org/D94347/new/, which also adds support for indirect values (0x02).
So DW_OP_WASM_location will be completing the expression.


Minitest support

There seem to be a couple of sticky points to full minitest support. Namely:
a) The Minitest setup block executes before with_model so the class is not accessible. In Minitest, this block is similar to before(:all) in RSpec so used widely in initializing the test scenario.
b) There's a hard-coded call to before in the with_model block, which isn't supported by Minitest. It's possible to get around it with a extend Minitest::Spec::DSL but that seems a bit unfortunate.
Any directions on how best to resolve? I'm happy to submit a PR, just looking for guidance and perhaps willingness to persevere on a solution.

Myself and nertzy are mostly RSpec users, so for Minitest issues, a full runnable example would be helpful (showing I suppose what you expect a test to look like and then why that doesn’t work). Unfortunately, the Minitest compatibility is not presently in the automated tests.

Hey there,
A super simple way is to just use the WithModel::Model::DSL API, and use block setup/ teardown for the
Model rather than implicit/ automagic.  This requires no modification at all to WithModel, but might be nice to push the define_model and within_model into WithModel somewhere.
`class WithModelTest < ActiveSupport::TestCase
extend WithModel
self.use_transactional_tests = false
require 'database_cleaner'
DatabaseCleaner.strategy = :truncation
def teardown
DatabaseCleaner.clean
end
def define_model(name, **options, &block)
WithModel::Model.new(name, **options).tap do |model|
dsl = WithModel::Model::DSL.new model
dsl.instance_exec(&block) if block
end
end
def within_model(model, &block)
model.create
yield
model.destroy
end
end
`
In your tests you can then do:
`require 'test_helper'
class DummyTest < WithModelTest
def with_model_dummy
define_model :DummyClass do
table do |t|
t.string :title
t.timestamps null: false
end
  # The model block is the ActiveRecord model’s class body.
  model do
    include Foo
    # ...
  end
end

end
def test_validates_stuff
within_model(with_model_dummy) do
instance = DummyClass.create
assert instance.respond_to?(:foo_method)
end
end
end
`
Might want to change within_model to yield the class or otherwise make this more clever, but this is working for me now.

@amarshall can we do a release? Maybe 2.2.0 as minitest is a new feature?

@amarshall,  release for 2.2.0 would be super duper nice.  The readme on the site now references a method (runner=) which does not exist in the released gem which is confusing.

Any ETA on a release?

Released 2.1.6 with minitest support.


Rerender

The Python v3.6 package was never uploaded to anaconda.org for linux and this is causing issues for us, cc @flanflanagan

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Ah, the rerender was CI skipped.

That is annoying. Yet another reason to not trust the ci skip :)


Multiple Application tag names

Since com.orm.SugarApp needs to be specified in the application tag, this causes a problem when other libraries also have to be mentioned there. Is there anyway Sugar can work without extending Application? Or is there any other work around to the multiple application name issue?

On master extending SugarApp is no longer needed. If you want to give it a try take a look at: bcb9bad

Works for me:
Application.java
public class Application extends SugarApp

Manifest.xml
<application
    android:name=".Application"

@jivimberg
Does that mean you don't need to put android:name attribute anymore?

Hi @abshih,
You still want to have a class extending android.app.Application for initializing and terminating com.orm.SugarContext.
Take a look at the example app: https://github.com/satyan/sugar/blob/master/example/src/com/example/ClientApp.java


Add afterPathMethodMatch hook to generated Akka HTTP routes.

This solves #645, by allowing the Guardrail user to inject behavior that is run immediately before the handler is called, via a Directive0. I realize @kelnos wasn't quite sure about this approach, but figured it would be good to have concrete code to discuss.
I followed the approach of #259, which perhaps is a somewhat similar idea on the Http4s side. Like that PR, this has broad applicability for doing auth, monitoring, response transformation, etc., but only after request preconditions specified in the OpenAPI spec are met (e.g. path, method, param matching).
@blast-hardcheese let me know what you think.
Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

Maybe one thing I should have taken from #259 is making String => Directive0 the type of beforeComplete, so that the operationId is available. Am happy to add this if desired.

Codecov Report

Merging #656 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #656   +/-   ##
=======================================
  Coverage   81.13%   81.13%
=======================================
  Files          78       78
  Lines        5163     5164    +1
  Branches      130      140   +10
=======================================
+ Hits         4189     4190    +1
  Misses        974      974

Impacted Files
Coverage Δ

...ail/generators/Scala/AkkaHttpServerGenerator.scala
91.95% <100.00%> (+0.04%)
:arrow_up:

Continue to review full report at Codecov.

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

Going to try a more general approach in a different PR.


add a blank line

Per our discussion in the LAMMPS mail list, I added a blank line to near the end of the file.  I'll continue to test the loplsaa force field and will let you know if I find any other errors.
Thanks,
Lingnan

Thanks again for this catch and for your other observations and feedback.
(Lingnan is responsible for commit 4fb4eb3.  Lingnan discovered the bug, emailed me and modified the code.  But I patched it on github before Lingnan had a chance to issue a PR.  I appreciate Lingnan's efforts, and I wanted to have a record of everyone who contributed, hence I suggested we make a blank PR.)


Do nothing in phaseTwo if leader has not been touched.

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/2367/
This was another test run after I added a commit for dropping a follower which refuses to follow.


Expected behavior
Revision time for every page is what it is supposed to be.
Solution
When checking out the code in the deploy workflow, set fetch-depth to 0.
Example:
https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/blob/ccf498bab42e085b7190eed4a0aa48c4c807e3a0/.github/workflows/pythonpublish.yml#L11-L13

Note that it should be fetch-depth and not fetch_depth; fetch_depth gives a warning: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/actions/runs/1579704317

Resources

https://timvink.github.io/mkdocs-git-revision-date-localized-plugin/index.html#note-when-using-build-environments

I'll take a look,
But I did a few days a go I did  change that almost hit all pages

The latest commit at December 29, 2021 at 06:15:01 UTC only modifies Guides/docs/Sonarr/Sonarr-Release-Profile-RegEx.md, but every single page has a revision date of  December 29, 2021 at 06:15:01. This is because the checkout action grabs the latest commit (fetch-depth is 1) by default


update usbx-features.png

Add missing USBX supported class

@ayedm1 it looks like I can't merge this, as the email of your GH account is not associated with an Eclipse account.

@ayedm1 it looks like I can't merge this, as the email of your GH account is not associated with an Eclipse account.

i have already a eclipse account: https://accounts.eclipse.org/users/ayedm

@ayedm1 it looks like I can't merge this, as the email of your GH account is not associated with an Eclipse account.

I have already eclipse account : https://accounts.eclipse.org/users/ayedm


Install specific version

Currently the only option is to install version from master, but I would love to be able to install a specific version.
I'm currently adding coursier to my work project to launch/bootstrap scalafmt. Having the same version installed at all developers' environments would be nice to have.

You can get a specific version via the tags, like https://github.com/coursier/coursier/raw/v1.0.0-RC3/coursier. It should work since 1.0.0-RC1 at least.

Thanks, that works! Maybe worth mentioning in documentation?

Yep, it could be added to the README. I'll keep this issue opened as a reminder.

Fixed in https://github.com/coursier/coursier/commit/ff83efade5fef34568244e4e42e5d8b963383f65


Batching cordova.raw.X calls and refactoring

It turns out that if you make concurrent calls to cordova.raw.build() with different platforms it mixes the platforms together, so calling build(["ios"]); build(["android"]) will try to build both ios and android in both invocations.
With this change we delegate all local build ordering concerns to cordova by making one invocation with the full list of local platforms.
I've also factored out some common code to clean things up a bit and help future code changes in this area.

:+1:


Pass width and height to drawImage when scale is 1.

I wouldn't like to use scale but I would like to provide my own image dimensions (width and height) to drawImage() for image resizing when I'm using createShape().
Is there another way to specify the desired width and height for my image and have it reduced or enlarged to that size? The existing setImageSize() doesn't seem to actually scale the entire image.
The patch that I provided allows me to scale the image to the dimensions I want:
my_image.height = 100;
my_image.width = 100;
LC.createShape('Image', {x: 0, y: 0, image: my_image, scale: 1});

I've managed to get this to work using scale/ratio.


handles sentence input

User can input sentence as well. Implemented using gets function
Closes issue #2

good work there!


Panic when using mutate

I'm completely new to rust so this could well be user error.
I've been playing around with the proxy example to mutate CREATE TABLE queries so that they will always have ROW_FORMAT=DYNAMIC appended if a row format is not already defined.  The modified proxy example has been changed to
if sql.to_lowercase().starts_with("create table ") && ! sql.to_lowercase().contains(" row_format") {
    let new_sql = sql + " ROW_FORMAT=DYNAMIC";

    let mut payload: Vec<u8> = vec![];
    payload.extend_from_slice(&p.bytes[0..5]);
    payload.extend_from_slice(new_sql.as_bytes());

    let new_packet = Packet { bytes: payload };

    print_packet_bytes(&new_packet.bytes);

    Action::Mutate(new_packet)
}

When running a create statement such as CREATE TABLE test1 (id int); the printed bytes are correct (i.e. containing the extra appended  ROW_FORMAT=DYNAMIC) but the application crashes with
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 107, message: "Transport endpoint is not connected" } }', ../src/libcore/result.rs:799
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Process didn't exit successfully: `target/debug/examples/proxy` (exit code: 101)

I can provide a back trace if required.  Additionally the table does get created but without the ROW_FORMAT being set.
Is this something in the application or am I doing something wrong?

Hi Alex,
Sorry for the delay in responding.
I see one bug - when creating the new packet you are copying the first 5 bytes from the original packet, so you are copying the packet length (first three bytes) rather than modifying the packet length to be correct for the length of the new SQL string.
I would guess that this is somehow causing a protocol error that then causes MySQL to close the connection.
Here's a snippet of code for populating the first three bytes with the correct packet length. This is from a different project so may need a little tweaking.
 let l = self.payload.len() - 4;
        let mut header : Vec<u8> = Vec::with_capacity(4);
        // write the payload length to the header
        header.write_u32::<LittleEndian>(l as u32).unwrap();
        // length is a 3-byte little-endian integer, so the fourth byte must always be zero
        assert!(0x00 == header[3]);
        // copy the header into the payload
        self.payload[0] = header[0];
        self.payload[1] = header[1];
        self.payload[2] = header[2];

Andy.

Thanks Andy, that fixed it and the library is working really well.


bug: guard against decrypting assets twice

Write out the encrypted certificate matter to /etc/kubernetes/ssl/*.pem.enc
Decrypt contents to *.pem name that all of the components expect

Allows /opt/bin/decrypt-tls-assets to run more than once
Fixes #482

@colhom here is an implementation of the preferred fix! Let me know if these file paths work for you.

Thanks @slack


Anyone can steal items from armor stands in claimed land

Need to prevent Armour stand interactions in claimed land it seems.

Unable to reproduce :/


Allow setting of custom timeouts

There currently seems to be no way of setting a custom timeout for the http requests. This is problematic because if the API takes longer than the default timeout (Which I assume is 10 seconds here like it usually is) to respond will the client report a timeout and fail, even tho it did succeed.
I had this very issue myself: Client reports timeout but the releases were all uploaded properly to modrinth...

I could implement something like this, will look into it!

This has been implemented, as soon as the project is brought up to date and has a new version released, it will be added.


Game crashes when entering the front train car first time

Version
3.0.9 (4d8d5d6)
Seed
R730-4Y14-XXQA602Z2QF00L82XAH0ZBU7U5EZGXZZPGW
Scenario
RE 3 (Jill)
Player Character
Jake
What happened?
Game crashes when entering the front train car for the first time from the back train car. The door texture glitches during the door transition and the game crash either at the end of the transition or the start of the cutscene,

Duplicate of #352


Work experience order is different than on LinkedIn profile

I was able to successfully export my linkedin profile to JSON Resume format since #26 was fixed. I have a new problem however. The order of work experience items in the resulting JSON Resume file is different than on my linkedin profile. Given that most templates and editors that can work with JSON Resume files, do not try to order it in any way (by date for example), this is problematic.
My LinkedIn profile results in a json file with the following work experience:
  "work": [
    {
      "company": "KLM Royal Dutch Airlines",
      "endDate": "2018-08-31",
      "highlights": [],
      "position": "Lead Data Engineer/Architect/Coach",
      "startDate": "2016-08-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "2organize",
      "endDate": "2012-10-31",
      "highlights": [],
      "position": "Intern Hadoop/Marketing Intelligence",
      "startDate": "2012-07-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "KLM Royal Dutch Airlines",
      "endDate": "",
      "highlights": [],
      "position": "Director Engineering & Architecture",
      "startDate": "2018-09-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Dandymusic",
      "endDate": "2011-06-30",
      "highlights": [],
      "position": "Owner & Pianist/Composer/Arranger",
      "startDate": "2005-09-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Hogeschool Rotterdam",
      "endDate": "2014-03-31",
      "highlights": [],
      "position": "Lecturer Datastructures & Algorithms",
      "startDate": "2013-10-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Hogeschool Rotterdam",
      "endDate": "2012-07-31",
      "highlights": [],
      "position": "Lecturer Cryptography 101",
      "startDate": "2012-01-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "2organize",
      "endDate": "2012-10-31",
      "highlights": [],
      "position": "Software Engineer",
      "startDate": "2012-07-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Joy in Coding",
      "endDate": "2018-12-31",
      "highlights": [],
      "position": "Freelance Software Engineer / Data Engineer / Firestarter",
      "startDate": "2016-05-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Info.nl",
      "endDate": "2014-05-31",
      "highlights": [],
      "position": "Software Engineer",
      "startDate": "2012-11-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Hogeschool Rotterdam",
      "endDate": "2013-12-31",
      "highlights": [],
      "position": "Lecturer Cryptography/Security",
      "startDate": "2013-09-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "ChargeGrid",
      "endDate": "2018-01-31",
      "highlights": [],
      "position": "Co-Founder",
      "startDate": "2016-01-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "The New Motion",
      "endDate": "2015-11-30",
      "highlights": [],
      "position": "Data Engineer/Scala Engineer",
      "startDate": "2014-06-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Digital Airline Operations",
      "endDate": "",
      "highlights": [],
      "position": "Director Engineering & Architecture",
      "startDate": "2018-06-30",
      "url": ""
    },
    {
      "company": "MOvE",
      "endDate": "2011-09-30",
      "highlights": [],
      "position": "Software Engineer",
      "startDate": "2010-06-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "VPRO",
      "endDate": "2016-08-31",
      "highlights": [],
      "position": "Software Engineer",
      "startDate": "2016-05-31",
      "summary": "...",
      "url": ""
    },
    {
      "company": "MOvE",
      "endDate": "2012-06-30",
      "highlights": [],
      "position": "Lead Engineer",
      "startDate": "2011-09-30",
      "summary": "...",
      "url": ""
    },
    {
      "company": "Universit",
      "endDate": "2016-05-31",
      "highlights": [],
      "position": "Firestarter and Software Engineer",
      "startDate": "2015-12-31",
      "summary": "...",
      "url": ""
    }
  ],

I can see what you mean, and this isn't how the extension used to function; the work section in the output used to mirror the profile webpage exactly, including the same order. However, due to #22, and related issues around "truncated" data, I've had to make some substantial changes that (must) have led to this.
I'll do some digging, and I think I already have an idea of where in my code this probably needs to get fixed.

Thanks for looking into this!

@DandyDev Thanks for reporting and the details.
Fix has been released - v1.4.2.

Thanks for this! Just tested it out and it works as expected and desired!


Add ibc terra2-neutron

to follow alphabetical order neutron should be chain 1 and terra 2 as chain 2

i wasn't aware of this and coincidentally had it right in all previous prs lol. thanks for pointing this out. fixed


AirMapsExplorer has stopped

Hi I cloned the repo and go to example folder. I ran npm install and then turn on android virtual device. Then I ran react-native run-android in the example folder. The virtual device seems to connect to the javascript server but it gives me a popup saying "AirMapsExplorer has stopped". Anyone else encounters the same thing?
Edit: The example works fine on IOS despite some warnings... the issue only occurs on Android.

Hello @clearmirror did you follow the instruction step by step? is there logs in adb logcat?

@jrichardlai thanks for your reply. it turns out that on the android virtual device I need to give the app access to location and data storage then the error disappears. But it gives me a blank map for all examples.
I think in the example folder everything has already bee setup no? To run the example I only need to npm install and react-native run-android. Or is there any other thing I need to do?

I finally figured why. When we create a device we have to choose Google APIs Intel Atom (x86) instead of Intel Atom (x86) for CPU/ABI. Some of us may follow what is on Facebook's React-native getting started tutorial and set it 'Intel Atom (x86)' because that's what they have on screenshot.
Hopefully this will help other people with the same issues :)


Delve can not interpret correctly the expression sent by Goland to change the value of a struct member field

Please answer the following before submitting your issue:
Note: Please include any substantial examples (debug session output,
stacktraces, etc) as linked gists.

What version of Delve are you using (dlv version)?
$ /Applications/GoLand.app/Contents/plugins/go/lib/dlv/mac/dlv version
Delve Debugger
Version: 1.1.0
Build: $Id: 1990ba12450cab9425a2ae62e6ab988725023d5c

What version of Go are you using? (go version)?
$ go version
go version go1.11.1 darwin/amd64

GoLand 2018.2.4
Build #GO-182.5107.25, built on November 13, 2018
Licensed to me
Subscription is active until April 5, 2019
JRE: 1.8.0_152-release-1248-b22 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.6

What operating system and processor architecture are you using?
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.13.6
BuildVersion:	17G65

What did you do?

package main

type s struct {
	i int64
}
func main()  {
	i := 1
	p := &i
	s := s{i:1}
	_ = s
	println(i,p) // <-debug breakpoint is set here
}

I trying to update  values (e.g. 2) for all variables.

What did you expect to see?
Normally I was able to modify any var except strings (also not comfortable)

What did you see instead?
Set value to i is passed normally - it gets new value 2
Set value to '*p' does not pass, I get error

                      Error
1:1: expected operand, found 'EOF'

Set value to `s.i` does not pass, I get error
                           Error
expression "(*"main.s")(824633984880).i"
(main.s) can not be dereferenced

I don't know why assigning to *p doesn't work, you should report that bug to GoLand or at least post logs here (cc @dlsniper).
The other one is a bug in delve.

so this condition len(v.Children) == 1 will pass  ?

Yes, v is the pointer.

ok, thanx. sorry for misunderstanding

@aarzilli  please find log attached
delve.log.zip

first log:
DEBU[0017] <- RPCServer.Set(rpc2.SetIn{"Scope":{"GoroutineID":1,"Frame":0,"DeferredCall":0},"Symbol":"","Value":"2"})  layer=rpc

It's not sending anything in Symbol.

second log:
DEBU[0027] <- RPCServer.Set(rpc2.SetIn{"Scope":{"GoroutineID":1,"Frame":0,"DeferredCall":0},"Symbol":"("main.s")(824633984880).i","Value":"2"})  layer=rpc

GoLand is sending *(*"main.s")(824633984880).i which is parsed as *((*"main.s")(824633984880).i) for which the error we are returning expression "(*\"main.s\")(824633984880).i" (int64) can not be dereferenced is correct.

@aarzilli thank you for the patch. I can confirm that the rest of the problem is in GoLand side.


Missing License

The LICENSE file in the repo is empty. Please add a license so we know under what terms we can use this. Thanks!

Ah silly me, must have gotten lost somewhere on the way. Fixed now!


Create component to validate numeric value mapping

When a user annotates a category with continuous/numeric values like age, they need to be able to confirm that we are correctly transforming the raw values in columns they labeled as "about" age into our target format (e.g. years in float for age). There should also be a way for a user to tell us what the correct transformed value should be so we can take another attempt at getting the transformation right.
data in:

values from all columns labeled as about age (or another category we want represented numerically in the future)

behaviour:

[ ] I can see a selection of unique values (let's say no more than 5) in a table
[ ] the table shows the unique, raw value as it appears in the participants.tsv table, and in a separate column our best guess for the transformed value
[ ] As a user, if all the transformed values make sense, look good, then I can click a button below the table (e.g. "Confirm" or "Validate") to indicate that all is well in the world
[ ] As a user, if one or several of the values are not transformed correctly, there is a textbox or other field where I can enter what the correct transformed value should be
[ ] this textbox / field is either inside a third column in the table and on the same row as the incorrectly transformed value, or directly next to the table and locked (via layout) on the same height as the row of the incorrectly transformed value
[ ] the textbox has some validation for numeric input (e.g. I should not be able to enter something that doesn't fit our target format)
[ ] once I have entered anything valid in any textbox, the "validate" or "confirm" button below the table should become disabled
[ ] there should be another button below the table that reads "re-transform" or something like that.
[ ] when I press the "re-transform" button, internally we should try to find a new transformation heuristic that satisfies the new information provided by the user.
[ ] once this new transformation is done, the user can validate the transformed values again
[ ] if there is no heuristic that satisfies the values the user has entered, then we should show some type of error message and tell the user that we cannot find a way to transform the values into our target format.

To be discussed

we could provide the user with a single textfield to write a regex statement for us to transform the values with. this might help with hard cases.

In order to have control over the individual rows and still use bootstrap styling, I think we need to go with the "simple table" component from vue-bootstrap.
So instead of:
<b-table striped hover :items="items"></b-table>
styling everything, we will use  something like this:
<b-table-simple hover>
    <b-thead>
      <b-tr>
        <b-th>Raw</b-th>
        <b-th>Column</b-th>
        <b-th>Value</b-th>
      </b-tr>
    </b-thead>
    <b-tbody>
      <b-tr v-for="row in unique_table_data">
        <b-td>{{ row.raw }}</b-td>
        <b-td>{{ row.column }}</b-td>
        <b-td><b-button variant="info" @click="handleButton(row.button)">correct</b-button></b-td>
      </b-tr>
    </b-tbody>
  </b-table-simple>

And then explicitly iterate over the rows.
This gives us detailed control over each individual row, but we will probably have to hard-code the column names -- both of the table and of the data array we iterate over. I think this is a good tradeoff for now. We only need this kind of table for the age category for now. If we ever find out that this component is used in many other categories, we can think about doing the extra effort of making it more flexible.

I agree that it's easier to work with, though keep in mind that you do still have control over table properties. They're just accessed via keys in the entries in items. See https://bootstrap-vue.org/docs/components/table#field-definition-reference
Give the simple table a shot and see how it goes.

Aha, thanks @jarmoza, that is indeed an important point I had overlooked. Do you have an example of using b-table and inserting for example a button in the cells of one column like my above code snippet?

Just to be clear here: what gives me the ability to control rendering inside b-table is the combination of scoped vue-slots and the vue-bootstrap syntax for scoped slots in the b-table template, not the fields of the b-table. The fields definition you linked @jarmoza can be used to format the table, not individual rows.
With scoped slots + b-table we save lines of code and have a cleaner component - but at the cost of a higher barrier of entry for contributors (need to understand vue scoped slots) and possibly also making it more difficult to change things.
In the long run, this type of implementation might make it easier to adapt and re-use such a table component dynamically. But I do think that there is a real danger in trying to be "clever" and ending up with something incomprehensible.
For now I'll implement with the b-table and then see what the end product looks like.

Take a look this @surchs, re: a button in a table: https://bootstrap-vue.org/docs/components/table#row-details-support
I agree. Frankly, the b-table with properties for dynamical style is a bit frustrating to me. So if you have a better way of doing it that's more intuitive - or mixes some dynamism in with it - I say go for it.

Yeah, thanks! The key element here are the vue scoped slots. They can even be referred to dynamically, which allows us to use plain JS to define their names. I think this will allow us to make the component reusable, but maybe at the expense of making things hard to understand. We'll need good docs focused at contributors!


Layout feature

This library is based on D3.js, so, is it possible to support more customization features, like line style， node style and layout ?

I'm also interested into a minimal theming support. My only two use cases would be to:

generate a mindmap in landscape format (better for use with a widescreen desktop monitor)
change the coloring to grayscale


algorithm 5x5x4 with multiple blue results

Move 3 should show one white (2nd field) and two blue (1st green, 3rd yellow), but only shows 1 white and 1 blue
All other moves show the correct results

[ ] create a unit test
[ ] fix the algorithm

The result was correct - I think. Because the circle/yellow combination already had a white result, it's no longer validated for a "blue" as in guess 3.
Just added a unit test - but for a 1 white and 1 blue result, as is the case.


TS error Cannot find name reporter

I have a monorepository, and when I am editing test files I see following error in WebStorm:
xxx.spec.tsx:21:9 - error TS2304: Cannot find name 'reporter'.
21  reporter.epic('xxx');

Funny part is that tests are passing, since Jest use Babel to transpile, which does not verify types.
I've added following to my tsconfig, but it still fails:
{
  "compilerOptions": {
    "typeRoots": [
      "node_modules/@types",
      "node_modules/jest-allure/dist"
    ]
}

Any luck with this?

I just switched to official integration: https://github.com/allure-framework/allure-js, documentation is a bit missing, but things work as expected.

Ok, thanks 👍

Also running into this same issue. Tried implementing the core allure-js lib but still ran into typescript errors because 'reporter' could not be found on the global scope.
@kirill-konshin do you have any suggestions or could you share how you went about implementing it. As you mentioned the allure docs have a fair bit to be desired.

// jest.config.js
module.exports = {
  // regular stuff
  setupFilesAfterEnv: [require.resolve('./jest.setup.js')]
};

// jest.setup.js
const {JasmineAllureReporter} = require('allure-jasmine');
const {Status} = require('allure-js-commons');

const reporter = new JasmineAllureReporter({
    resultsDir: process.env.ALLURE_RESULTS_DIR || './allure-results',
    testMapper: result => {
        if (result.status === Status.SKIPPED) result.fullName = `(WAS SKIPPED) ${result.fullName}`;
        return result;
    }
});

const allure = reporter.getInterface();

global['jasmine'].getEnv().addReporter(reporter);
global['allure'] = allure;
global['reporter'] = reporter;

Then you can use allure global variable in tests: allure.step(...) etc.

@kirill-konshin awesome, thanks for that.

You can create
index.d.ts file in root of your project and put:
declare const reporter: {
    description(description: string): this;
    severity(severity: Severity): this;
    epic(epic: string): this;
    feature(feature: string): this;
    story(story: string): this;
    startStep(name: string): this;
    endStep(status?: Status): this;
    addArgument(name: string): this;
    addEnvironment(name: string, value: string): this;
    addAttachment(name: string, buffer: any, type: string): this;
    addLabel(name: string, value: string): this;
    addParameter(paramName: string, name: string, value: string): this;
}

into it

@Xotabu4 this would work, but this is not the optimal solution, as every project will have to drag this copy-paste. It has to be resolved at lib level.

@Xotabu4 this would work, but this is not the optimal solution, as every project will have to drag this copy-paste. It has to be resolved at lib level.

Yes, thats just a workaround

It says right at the bottom of this link: https://www.npmjs.com/package/jest-allure
Warning
jest-allure reporter dynamically configure "setupTestFrameworkScriptFile" option in Jest configuration. If you have your own setupTestFrameworkScriptFile file, you need to manually register allure reporter, for it you need to import jest-allure/dist/setup.
import "jest-allure/dist/setup";
Adding this import worked for me.

Just include node_modules/jest-allure/dist/setup.d.ts in your tsconfig, for example, like:
  "files": [       "node_modules/jest-allure/dist/setup.d.ts",    ],

When using Yarn 2 in PNP mode there won't be any node_modules...


Button click tracking final URL truncation

Hi, with the enablement of the button click tracking, assigning a long url with parameters result in an incorrect/truncated URL

Fixed on CC Community Fork - v4.45


Can't login with GitHub on Pilot

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you do?
Hi,
I'm trying to register my Traefik instance on Pilot, but cannot login with GitHub.
Here's what I did:

Click "Connect with Traefik Pilot".
Click on the login with GitHub button.
Login on GitHub.
I got led back to the Traefik Pilot page which is now showing a popup "Thanks for signing up! An email has been sent to
email
containing a link to verify that you own this email address."

I, however, never get an email with a link.
What did you see instead?
I received a (several) "Welcome to Pilot" mail with a link to the documentation site, but this doesn't seem to be the mail Pilot is referring to as there is no link in it to verify my email.
I tried clearing the web pages cookies and revoking the GitHub OAuth app's permissions, then redoing above process but that didn't solve the issue.

Ahh that's odd, this time I only removed the website's cookies (didn't revoke the OAuth app's permissions) and it works now! 👍🏿


format_number will use incompatible scientific notation for very small/large numbers

When working with commodities it can happen that you end up with small residual rounding error quantities
When bean-black formats these numbers, it will use the python Decimal representation of the number
from decimal import Decimal
Decimal('0.0000001') # -> 1E-7

The scientific notation returned by this formatting is incompatible with beancount, and results in a syntax error (it appears that the E is interpreted as a currency).

@jonnyniv thanks for reporting the bug. I have already fixed it 😄

@jonnyniv I just published a new release https://github.com/LaunchPlatform/beancount-black/releases/tag/1.0.5
Can you please try again and let me know if the issue has been addressed for your use cases? 🙏

Can confirm this fixes this up.
Thank you for the extremely fast response :smile:


[libpff] Initial port.

Initial port of libpff (https://github.com/libyal/libpff).
Only dynamic version is enabled because it doesn't seem like author intended it to be used as static library.

Thanks for the PR!


issues with expanding

Hi.
I am trying to use the expanding component but I have a few issues:

the entire row can be clicked to open/close but it does not effect the className with this.selectRow. So therefore it does not add the class that I need nor does it remove it.
I would like it to close all other rows when one is selected

any help is appreciated. thanks

HI @ashabi,

you means selectRow.className is not added to the TR(row)?
duplicated with https://github.com/AllenFang/react-bootstrap-table/issues/1166

Thanks

Ok. I got #1 to work. But the this.state.expanding does not seem to be updating itself when you click on the row.
#2 is a duplicate. Any idea when this will be fixed?
thanks.

could you please upgrade to newest version and try again for first issue, if the problem still remain, I think you can show me your code, thanks
for the second issue, Because there're a lots of issues need to fix so no schedule but I think I can support is in near future.

For the second issue, already release on v3.2.0, assign true to options.onlyOneExpanding to allow single expand row, default is false

hi. thanks, but is there is a state that defines this expanding? i noticed when you click on the tr it does not remove the selectRow.className

if you found any bug or possible issue, open another issue and provide some useful information for me, I'll check it 👍
BTW,

but is there is a state that defines this expanding?

I guess your answer is here but not very sure because what's your means actually

i noticed when you click on the tr it does not remove the selectRow.className

Actually, I dont know what's the configure for your case, please show me, and I just write a case with expanding and selection and assign selectRow.className and everything is work fine.


LightPosition and LightColor WorldParams don't seem to supply a value

When I use the LightPosition or LightColor WorldParams in a ShaderNode, all I get is a black output. If I instead add a MatParam to supply values, I get the expected result (light, color).

I've tried looking into this, but any hint where to look would be appreciated :)

Not really a hint, but it sounds like this is an engine problem technically? Like it's related to ShaderNodes themselves and not the Editor or something?
I guess I would try to look at the generated shader, because technically these world parameters are supplied by jme much like mat params, so the question is mostly if they are defined correctly (e.g. g_LightColor or however they are called).
In theory one could also add test-cases for such basic things to MeFisto94/jme3-testing

Yeah, i just thought that since it seems to work for the material editor,
shader nodes would use the same basis. And someone in the forum said they
thought it worked at some before. But then I might do something of my own
to solve it.
On Sun, 15 May 2022, 14:03 MeFisto94, @.***> wrote:

Not really a hint, but it sounds like this is an engine problem
technically? Like it's related to ShaderNodes themselves and not the Editor
or something?
I guess I would try to look at the generated shader, because technically
these world parameters are supplied by jme much like mat params, so the
question is mostly if they are defined correctly (e.g. g_LightColor or
however they are called).
In theory one could also add test-cases for such basic things to
MeFisto94/jme3-testing https://github.com/MeFisto94/jme3-testing
—
Reply to this email directly, view it on GitHub
https://github.com/jMonkeyEngine/sdk/issues/332#issuecomment-1126923433,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB46MQW4ZUKLPKP6C6LHRTLVKDRZXANCNFSM5V5EZYYQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

NM! LightColor and LightPosition shouldn't be used for PBR. g_LightData is magically supplied to the shader.


Document store broke in 1.3.0?

I am fetching a document from arangodb3 (v3.0.12) using pyArango 1.3.0..  The doc type returned is <class 'pyArango.document.DocumentStore'> which appear right.  I then make an assignment in and my JSON appears to have all these store:xxx embedded keys which breaks the existing code.  1.2.8 worked fine.  Is this the intended effect?
threadJSON is now of type <class 'pyArango.document.DocumentStore'> where it used to be type <class 'dict'>
Here is the output:
doc = threadCollection.fetchDocument(threadname)
threadJSON = doc["config"]
threadJSON now reads:
<store: {'thread': <store: {'_comment': 'p9s2 system for a min 2 host configuration for xxxx development', 'networks': [{'networktype': 'management', 'networkNamespace': 'global'}, {'networktype': 'data1', 'networkNamespace': 'global'}, {'networktype': 'data2', 'networkNamespace': 'global'}, {'networktype': 'ipmi', 'networkNamespace': 'global'}], 'name': 'p9s2', 'hostlist': ['p9s2_vmhost1', 'p9s2_xxxx', 'p9s2_xxxx'], 'application_config': <store: {'version': 'LATEST', 'docker': <store: {'registry': <store: {'ip': 'xx.xxx.xx.xx', 'port': 'xxxx'}>}>, 'applicationtype': 'xxxx', 'kub_network': <store: {'pod_network_cidr': 'xxx.xx.x.x/xx'}>}>, 'guestlist': ['p9s2_xxxx', 'p9s2_xxx', 'p9s2_xxx', 'p9s2_xxx', 'p9s2xxxx'], 'puppetcontrol': <store: {'host': 'master', 'guest': 'master'}>, 'masteragent': <store: {'ip': 'xx.xxx.xxx.x', 'username': 'cobbler', 'password': 'cobbler'}>, 'orchestrationnode': <store: {'enabled': False}>, 'cobblercontrol': <store: {'host': 'master', 'guest': 'master'}>, 'slaveagent': <store: {'ip': 'xxx.xxx.x.x', 'username': 'cobbler', 'password': 'cobbler'}>}>}>
v1.2.8 threadJSON was (using same code)
{'thread': {'orchestrationnode': {'enabled': False}, '_comment': 'p9s2 system for a min 2 host configuration for xxx development', 'name': 'p9s2', 'guestlist': ['p9s2_xxxx', 'p9s2_xxxx', 'p9s2_xxxx', 'p9s2_xxxx', 'p9s2_xxxx'], 'hostlist': ['p9s2_xxxx', 'p9s2_xxxx', 'p9s2_xxxx'], 'puppetcontrol': {'guest': 'master', 'host': 'master'}, 'masteragent': {'password': 'cobbler', 'ip': 'xx.xxx.xxx.x', 'username': 'cobbler'}, 'application_config': {'applicationtype': 'xxxx', 'version': 'LATEST', 'docker': {'registry': {'ip': 'xx.xxx.xxx.xx', 'port': 'xxxx'}}, 'kub_network': {'pod_network_cidr': 'xxx.xx.x.x/xx'}}, 'networks': [{'networkNamespace': 'global', 'networktype': 'management'}, {'networkNamespace': 'global', 'networktype': 'data1'}, {'networkNamespace': 'global', 'networktype': 'data2'}, {'networkNamespace': 'global', 'networktype': 'ipmi'}], 'cobblercontrol': {'guest': 'master', 'host': 'master'}, 'slaveagent': {'password': 'cobbler', 'ip': 'xxx.xxx.x.x', 'username': 'cobbler'}}}

Yes, this an expected behaviors, DocumentStore have replaced dicts. However they should be usable transparently, exactly the same way as dicts. Can you tell me exactly how your existing code was broken?
If you need a pure dict representation of your object you can use:
threadJSON._store.getStore() and  threadJSON._store.getPatches(), if you only need the modifications since the last save.

doc = threadCollection.fetchDocument(threadname)
threadJSON = doc["config"] (this would give me a valid json dict)
The threadJSON was expecting to be a dict so it couldn't find any of the keys because of the embedded store:xxx.  I'll try your suggestions.  I was expecting a return of the 1.2.8 {'thread': { threadJSON that I listed but instead it returned the <store: {'thread': <store:
I am a little worried that future changes are not backward compatible and will require changes to our code which could break production code.
Thank you for the quick response.

Also we are seeing an issue in the released code (1.3.0) that does not include the getStore procedure as is in gitHub.  The document class installed from the 1.3.0 version != to git hub.  Code looks ok on github, but that is not what is in the installed package.

Don't worry about the backward compatibility. It is very important to me as well. DocumentStore should not break it they are just a better way to deal with nested documents.
I have just downloaded the release code of 1.3.0 on GitHub and the PyPI archive and both have DocumentStore and getStore(). What issue are you referring to?

A "pip install pyarango" gave us v1.3.0.  That installation is different than what is on github.  Is pip install pyarango not a valid why to install the latest package?  Do I have to go directly to github?
Are you also saying the json should be valid with the store:xx tags?

The upgrade command would have been: pip install --upgrade pyArango
Yes, the json should always be valid. It is automatically generated inside the object and has never been accessible from outside the objects.

The "pip install pyarango" was done on a new installation, not an upgrade.


feat(risedev): generate risectl config

Signed-off-by: Alex Chi<EMAIL_ADDRESS>What's changed and what's your intention?
As title. Now developers should use ./risedev d && ./risedev ctl to start risectl. An environment file will be generated, like:
export RW_HUMMOCK_URL="hummock+minio://hummockadmin:hummockadmin@<IP_ADDRESS>:9301/hummock001"
export RW_META_ADDR="http://<IP_ADDRESS>:5690"

Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)

export RW_HUMMOCK_URL="hummock+minio://hummockadmin:hummockadmin@<IP_ADDRESS>:9301/hummock001"
export RW_META_ADDR="http://<IP_ADDRESS>:5690"

How will these config file being used?

export RW_HUMMOCK_URL="hummock+minio://hummockadmin:hummockadmin@<IP_ADDRESS>:9301/hummock001"

export RW_META_ADDR="http://<IP_ADDRESS>:5690"
How will these config file being used?

'risedev ctl' will source this file before starting risectl.


Update hardcoded sectors

This PR relies on https://github.com/alphagov/publisher/pull/381 and should not be merged until that PR is ready
Amend sector names

agriculture
business-and-finance
construction
education
health
hospitality-and-catering
manufacturing
mining
real-estate
science-and-technology
transport-and-distribution
utilities
wholesale-and-retail

Create new sectors

post-couriers-telecommunication
media-advertising-publishing
motor-retail-repair-wholesale
arts-entertainment-sport
call-centers-administrative-services
tradespeople-cleaners-maintenance
professional-scientific-technical

Remove sectors

information-communication-and-media
service-industries
travel-and-leisure

:+1: Looks good

These changes need to be approved before they can be implemented, but that approval isn't likely to happen for some months. @lutgendorff knows more.