Fix syntax for DependsOn in Go

The Go example for DependsOn (https://www.pulumi.com/docs/intro/concepts/resources/options/dependson/) has incorrect syntax.
The syntax shown is:
res1, _ := NewMyResource(ctx, "res1", &MyResourceArgs{/*...*/})
res2, _ := NewMyResource(ctx, "res2", &MyResourceArgs{/*...*/}, pulumi.DependsOn([]Resource{res1}))

The syntax should be:
res1, _ := NewMyResource(ctx, "res1", &MyResourceArgs{/*...*/})
res2, _ := NewMyResource(ctx, "res2", &MyResourceArgs{/*...*/}, pulumi.DependsOn([]pulumi.Resource{res1}))

Hey @scottslowe is this something we can fix this sprint ? Happy to make the changes if you'd like


Add options for base image

Short description
As a publisher, I want to have options for the docker base image I'm creating for my model/notebook environment so I can have my preferred python version and don't have to install common libraries every time.
Assumptions:

Users can choose from a curated list of images
The images are described/documented on our website and documentation
There is a default image if the user doesn't choose one

Acceptance Criteria
Given I have Garden installed, when I type garden-ai prototype notebook then I get a notebook based on the default image.
Given I have Garden installed, when I type garden-ai prototype notebook —base-image=3.10 then I get a notebook based on the selected image.
Given I have Garden installed, when I type garden-ai prototype notebook —base-image=foo-bar then I get a helpful error message.

Suggestions for a first pass at this:

3 variations with different Pythons: 3.9.x, 3.10.x, 3.11.x. They just have the basic stuff that Isaac put in the first draft of the base container in containerize.py (ie, git, jupyter, dill, etc.)
The PR should include the Dockerfile(s) you use to make the containers and any script for building them
You can host the containers on Dockerhub or similar under your email. We'll worry about making an official Garden or Accelerate account or hosting on our AWS ECR later.

Suggestions for a second pass:

Pytorch is the most popular deep learning library and takes the longest to install. Make a "matrix" of containers with different Python versions and Torch installed/not installed. So people deploying torch models can just build on a torch base container. But people who don't need the bloat don't need it.
Make an "everything bagel" container, similar to Google Colab's default environment. To make it easy for people to get started, Colab has lots of reasonable default libraries for data science installed when you boot it up. Make our default container have Python 3.10, sklearn, torch, pandas, matplotlib, and other libraries that you deem essential for the everything bagel.

In all cases, for now do not bake in garden-ai. We're iterating quickly on the SDK and it'll be better to install it fresh every time at the moment.

Max got in #317 which has us most of the way there on this. We need one follow-up PR with some CLI and error handling polish.
Currently, if you select a base image not in the list, Garden will attempt to pull that image from Docker Hub. We should instead show an error message and list the available images. (If we want to allow arbitrary images for internal testing or whatever, we can make another hidden option.)
Also, the help text for the start command should show an example in --base-image, as well as reference the command to list all the images.


bower list simple but with versions

bower list -r provides version information
bower list -p does not
I was hoping for a way to grab components and their current versions in simple JSON or parse-able format.
-p with versions
-j is an option, but not simple, tmi.

There's always --json switch

--json is not consumable without reparsing, it contains local paths, contains thousands of lines of json, etc. Not something you would distribute.
I was interested in current versioning information for cache control, either combined with -p -r output or a entirely separate simple consumable json list.
  "ckeditor": 4.5.9,
  "codemirror": 5.14.2

I suppose I can re-parse from --jsont myself into my own file.
dependencies->_itemid->pkgMeta=>version  looks promising

using jq.js (https://github.com/stedolan/jq)
This filter pattern should work for what i need , if it helps anyone.
{dependencies}[]|map_values(keys,{pkgMeta}[].version)


add adapter utility functions

Two that would be useful:

drop_schema
test: tests whether the connection is valid

mechanism for this is done in #466 , as well as adding a bunch of functions to the context.


Add options state

We should have an options page, where you can

switch on/off the sound
check/uncheck skipping the intro (there is a localStorage value already set on closing the intro state, so this would be for reenabling it)

All option values should read/write their values from/to the localStorage (any better idea @kennethlarsen or would this be the way to go for global state?)
The option page should be accessible from the page title state and probably by a hotkey while playing (like a pause state or the like).

Good idea. I think localStorage is best for this. Don't think Phaser has any alternative for this.


Refactor command line arguments to separate source file

I am in the process of refactoring nbqa configuration handling. This is the first part of the refactoring. I have split the refactoring to small chunks. I will send out the next PR for configuration parsing from different files and formats.

Codecov Report

Merging #245 into master will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master      #245   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         5    +1
  Lines          246       272   +26
=========================================
+ Hits           246       272   +26

Impacted Files
Coverage Δ

nbqa/__main__.py
100.00% <100.00%> (ø)

nbqa/cmdline.py
100.00% <100.00%> (ø)

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 def2c93...22c99d0. Read the comment docs.

Legend! Thanks Girish, I'll take a closer look tomorrow but from a quick glance this looks like much neater!

@MarcoGorelli I am planning to merge these changes to master today. I request you to have a look at the changes once, so that I can merge.

:facepalm: sorry, I should've merged this one first, now we have another merge conflict

This looks good to me though - I'll resolve the conflict and'll merge

You're a star! Looks good to me


driver/sensor/gps: Implement the GPS driver framework

Summary
Implement the GPS driver framework
The design diagram of the GPS driver framework is as follows：

The GPS driver framework is implemented based on the lower half of the sensor driver framework, because essentially gps is also a kind of sensor. Therefore, from the perspective of the sensor driver framework, the gps driver is its lower half, and inside the lower half we abstract the upper half and lower half of the gps driver framework.
The gps driver framework will provide three nodes, two of which are sensor topic nodes, namely /dev/uorb/sensor_gps and /dev/uorb/sensor_gps_satellite, they mainly connect with the upper uorb framework and publish the gps data parsed by the driver , there is also a character device node /dev/ttyGPS0, which is used for upper-layer applications to directly obtain raw data or NMEA data reported by the driver.
The data flow of the three nodes is controllable. When the data reported by the driver contains data in the standard NMEA format, it is necessary to specify true through the parameter is_nmea when calling push_data, and the driver will start to analyze the reported data and publish new data. topic data, and also transparently transmit the data reported by the driver to /dev/ttyGPS.
In addition, the driver also supports direct reporting of event events, which needs to call the interface push_event.
The abstract GPS operation set of the driver framework gps_ops_s, including methods: activate, set_interval, control and inject_data.
struct gps_lowerhalf_s
{
  FAR const struct gps_ops_s *ops;

  gps_push_data_t push_data;

  gps_push_event_t push_event;

  FAR void *priv;
};

struct gps_ops_s
{
  CODE int (*activate)(FAR struct gps_lowerhalf_s *lower,
                     FAR struct file *filep, bool enable);
  CODE int (*set_interval)(FAR struct gps_lowerhalf_s *lower,
                         FAR struct file *filep,
                         FAR unsigned long *period_us);
  CODE int (*control)(FAR struct gps_lowerhalf_s *lower,
                    FAR struct file *filep,
                    int cmd, unsigned long arg);
  CODE ssize_t (*inject_data)(FAR struct gps_lowerhalf_s *lower,
                            FAR struct file *filep,
                            FAR const void *buffer, size_t buflen);
};

This PR is related to https://github.com/apache/nuttx-apps/pull/1867
Impact
Add gps driver frameworks
Testing
local test

@Donny9 I think after this modification my video tutorial explaining how to use GPS on NuttX (https://www.youtube.com/watch?v=bJwLE-R5o5M) will not work, right?
Please include a Documentation to explain how to use a UART GPS on NuttX.

@Donny9 I think after this modification my video tutorial explaining how to use GPS on NuttX (https://www.youtube.com/watch?v=bJwLE-R5o5M) will not work, right?
Please include a Documentation to explain how to use a UART GPS on NuttX.

hello @acassis , From the video, I can see that the NMEA message in the fixed serial port is read through examples/gps for analysis. The current change will not affect this gps examples，because the gps examples is directly facing the serial port instead of the gps driver. The nmea analysis library has been moved from apps/gpsutils to nuttx/libs/libc,  The relevant modification is https://github.com/apache/nuttx-apps/pull/1867


ISPN-9662 commons-compress 1.18

https://issues.jboss.org/browse/ISPN-9662

Integrated into master, thanks @tristantarrant !


tf.abs() crashes when dtype=float32

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 Home 20H2
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: -
TensorFlow installed from (source or binary): using pip inside conda
TensorFlow version (use command below): 2.5.0-dev20210203
Python version: 3.8.5
Bazel version (if compiling from source): -
GCC/Compiler version (if compiling from source): -
CUDA/cuDNN version: 11.0 / 8
GPU model and memory: RTX 1070 8GB

Describe the current behavior
tf.abs() works fine when provided with integer values but crashes when dtype=float32.
If run in Jupyter the cell will hang and never execute. If run in Anaconda prompt python will crash and kick you back out to conda.
Describe the expected behavior
Return absolute value
Standalone code to reproduce the issue
import tensorflow as tf
x = tf.constant([-2.25, 3.25])
tf.abs(x)

@jessyprociv,
I was able to run the code without any issues on TF v2.4 and TF-nightly. Please check the linked gist for reference.
Could you please run the code in new virtual environment and check if you are facing the same issue? Thanks!

Hi @amahendrakar
I created a new environment and am unfortunately still having the same issue. Of course it might still just be an issue with my computer so am happy for this issue to be closed if it doesn't seem like a legitimate bug.
New environment created using the following commands in conda:
conda create -n new-tf python=3.8
conda activate new-tf
pip install tf-nightly-gpu==2.5.0.dev20210203
conda install cudatoolkit=11.0

Then inside python once again running:
import tensorflow as tf
tf.__version__ #returns '2.5.0-dev20210203'
x = tf.constant([-2.25, 3.25])
tf.abs(x)

Attached screenshot shows a big spike in cuda and GPU memory usage while running tf.abs(x) before python crashes.

Appreciate any further advice if you have it, but perfectly happy to accept that this may be my own problem!

After running into some other issues today I've been able to identify and solve my problem by downgrading to tensorflow 2.4 as per:
https://medium.com/analytics-vidhya/using-tensorflow-on-windows-10-with-nvidia-rtx-3000-series-gpus-637ab2a4b163
https://medium.com/@JeansPantRushi/fix-for-tensorflow-v2-failed-to-get-convolution-algorithm-b367a088b56e
Thank you again for your help and sorry to have raised a false bug report!


Can seem to build static linked binaries

Not sure if this is supported but the documentation suggests that it should be possible:
The build tag yara_static can be used to tell the Go toolchain to run pkg-config with the --static switch.

Apparently this is not enough:
mic@elite:~/go/src/github.com/hillu/go-yara$ go build -tags yara_static  _examples/simple-yara/simple-yara.go
mic@elite:~/go/src/github.com/hillu/go-yara$ ldd simple-yara
        linux-vdso.so.1 (0x00007fffa8162000)
        libyara.so.3 => /usr/local/lib/libyara.so.3 (0x00007f24916c3000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f24914a4000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f24910b3000)
        libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f2490c3b000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f249089d000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f249192c000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2490699000)

Should I be able to build without having to ship the shared object?

Hi Michael,
as far as I know, there is no way to specify the required external linker flags in #cgo pragmas, therefore I have updated the documentation.

Thanks for updating the docs. That linker flag will actually make a fully static binary but this is not really going to be very portable (modern systems can not run fully static binaries - see http://blog.rekall-forensic.com/2018/01/elf-hacking-with-rekall.html for a fully description.).
What we really need is a statically linked libyara but not a fully static binary - it still needs to dynamically link to system libraries. Obviously we also dont want to change the entire build system for our binary just to include a minor library in it. There is no way we can ship a shared object as well with our single binary product either - so we need yara to be built into the binary itself.
I actually got it working now by simply building the yara library into the library itself (see https://github.com/Velocidex/go-yara). Its a bit hacky but means that users dont need to worry about building and linking flags and having libraries installed on the system. This is a similar idea to the python binding https://github.com/scudette/rekall-yara so it works really well. This also just works with windows build as well so users dont need to worry about installing libyara first.
Thanks for looking into this and thanks for an awesome project!

Thank you for pointing to your ELF hacking article, an interesting read! :-)
For Go-based projects that are linked with C libraries (and ltherefore need libc) such as spyre and previous other non-public projects, I have used libmusl, an alternative libc that can be linked statically, so I can just pass -ldflags=-extldflags="-static" to the go tool.
If you just want to link a few dependencies statically, you could make sure that those dependencies only get built as static libraries (configure ... --disable-shared should do the trick), so there'd be no need for patching around in those external libraries' source code...
I just tried mixing #cgo ... LDFLAGS: with #cgo ... pkg-config, but that does not seem to work either. I suppose that the best way is setting the CGO_LDFLAGS environment variable from an external build system such as a Makefile. If you still need to do a mix of static and dynamic linking, something like this might work:
TARGET: export CGO_LDFLAGS=--push-state -static $(shell pkg-config --static --libs yara) --pop-state


Last Successful Scan Card

ITS-Pro time category: https://its-pro.ucsd.edu/projects/MA/issues/MA-42?filter=allissues
This is complete when:

[ ] The UI has been updated to be more intuitive. The goal is to display the last successful scan date to the user.

Draft implementation on QA at https://mobile.ucsd.edu/replatform/v1/qa/webview/my-recent-scan.html

Activated in QA and PROD for Students and Staff in DefaultCards v4
Card ID: ScanStatus
Card Title: COVID-19 Scan Status
Card URL: https://mobile.ucsd.edu/replatform/v1/(qa|prod)/webview/my-recent-scan.html


[1.10.2] [Bug] Something to do with OpenGL

When crafting the second tier of tank, my client crashes crash report and will crash ever time i join the server I know enough about OpenGL to tell that bug has something to do with OpenGL but that is it. It us my understand that the LWJGL uses on thread for rendering, and differnt one for updating and some crafting the second tier tank is trying to render it on the update thread, which OpenGL has not been setup. At first I thought the @slimeknights might be to blame rendering items on the Tinkers Construct crafting table but after disable that feature in config my client still crashes when I join the server.
Disclaimer - Do not trust anything I say about OpenGL or the LWJGL as it most likely wrong.

Putting Adv Solars/Fluid tank into crafting station crashes client each time chunk with the table is loaded, no matter if Table Contents Rendering is enabled or not.


Compiler is extremely slow to compile simple closure

Description
While trying today's advent of code task as fast as possible (yes, I was slightly frustated), I encountered a weird bug in the compiler that causes it to compile extremely slowly. The simplest example that still exhibits this behaviour is a simple swift file of 11 lines that causes swiftc to run for over 2 minutes.
Steps to reproduce
Create a swift file with the following contents:
extension Sequence where Element: Numeric {
    public func sum() -> Element {
        self.reduce(0, +)
    }
}

let foo: [(Int, Int, Int, Int)] = []

print(foo.map { a, b, c, d in
    return ((a <= c && b >= d) || (c <= a && d >= b)) ? 1 : 0
}.sum())

Try to build it with swiftc.
Expected behavior
I expect the compiler to compile such a single file in a matter of a few milliseconds.

Environment

Swift version:
swift-driver version: 1.62.15 Apple Swift version 5.7.1 (swiftlang-<IP_ADDRESS>.2 clang-14<IP_ADDRESS>)
Target: x86_64-apple-macosx13.0
Xcode version (Shouldn't really matter, as this happens on linux using Swift 5.7 as well)
Xcode 14.1
Build version 14B47
Deployment Target
macOS Ventura 13.0

Interesting.

I wonder if in first example solver attempts one of the operator disjuctions before unpacking tuple, maybe we can improve performance here by special casing this in resolveClosure


HAWKULAR-519 : Show operation in progress spinner for deployment actions

Also fix an issue with ng-show/hide and fa-spin and re-enable debug info

Merged #734


Minimal mdns usage in some of our example apps seems to rely on ordering of static destructors

Problem
See https://github.com/project-chip/connectedhomeip/runs/3051358015 which has:
WARNING: ThreadSanitizer: heap-use-after-free (pid=9446)

  `Read of size 4 at 0x7b1c000007bc by main thread:`

    #0 chip::Inet::UDPEndPoint::Close() ../../../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPoint.cpp:372 (chip-tool+0x268f2b)
    #1 chip::Inet::UDPEndPoint::Free() ../../../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPoint.cpp:433 (chip-tool+0x268fb7)
    #2 ShutdownEndpoint ../../../examples/chip-tool/third_party/connectedhomeip/src/lib/mdns/minimal/Server.cpp:118 (chip-tool+0x23df7e)
    #3 mdns::Minimal::ServerBase::Shutdown() ../../../examples/chip-tool/third_party/connectedhomeip/src/lib/mdns/minimal/Server.cpp:135 (chip-tool+0x23e0e2)
    #4 mdns::Minimal::ServerBase::~ServerBase() ../../../examples/chip-tool/third_party/connectedhomeip/src/lib/mdns/minimal/Server.cpp:126 (chip-tool+0x23dfed)
    #5 mdns::Minimal::Server<30ul>::~Server() ../../../examples/chip-tool/third_party/connectedhomeip/src/lib/mdns/minimal/Server.h:161 (chip-tool+0x2706ab)
    #6 chip::Mdns::GlobalMinimalMdnsServer::~GlobalMinimalMdnsServer() ../../../examples/chip-tool/third_party/connectedhomeip/src/lib/mdns/MinimalMdnsServer.h:69 (chip-tool+0x2708e1)
    #7 cxa_at_exit_wrapper ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:393 (libtsan.so.0+0x2bc24)

 `Previous write of size 8 at 0x7b1c000007b8 by main thread:`

    #0 operator delete(void*, unsigned long) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:150 (libtsan.so.0+0x8b748)
    #1 std::default_delete<chip::Inet::UDPEndPoint>::operator()(chip::Inet::UDPEndPoint*) const /usr/include/c++/9/bits/unique_ptr.h:81 (chip-tool+0x265dee)
    #2 std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >::~unique_ptr() /usr/include/c++/9/bits/unique_ptr.h:292 (chip-tool+0x265936)
    #3 void std::_Destroy<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> > >(std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*) /usr/include/c++/9/bits/stl_construct.h:98 (chip-tool+0x267957)
    #4 void std::_Destroy_aux<false>::__destroy<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*>(std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*, std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*) /usr/include/c++/9/bits/stl_construct.h:108 (chip-tool+0x26767b)
    #5 void std::_Destroy<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*>(std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*, std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*) /usr/include/c++/9/bits/stl_construct.h:137 (chip-tool+0x2671c2)
    #6 void std::_Destroy<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*, std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> > >(std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*, std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >*, std::allocator<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> > >&) /usr/include/c++/9/bits/stl_construct.h:206 (chip-tool+0x266ca7)
    #7 std::vector<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> >, std::allocator<std::unique_ptr<chip::Inet::UDPEndPoint, std::default_delete<chip::Inet::UDPEndPoint> > > >::~vector() /usr/include/c++/9/bits/stl_vector.h:677 (chip-tool+0x269502)
    #8 chip::System::ObjectPool<chip::Inet::UDPEndPoint, 32u>::~ObjectPool() ../../../examples/chip-tool/third_party/connectedhomeip/src/system/SystemObject.h:174 (chip-tool+0x269609)
    #9 cxa_at_exit_wrapper ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:393 (libtsan.so.0+0x2bc24)

SUMMARY: ThreadSanitizer: heap-use-after-free ../../../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPoint.cpp:372 in chip::Inet::UDPEndPoint::Close()

Proposed Solution
It looks like chip::System::ObjectPool<chip::Inet::UDPEndPoint, 32u>::~ObjectPool() ran before chip::Mdns::GlobalMinimalMdnsServer::~GlobalMinimalMdnsServer(), so by the time the latter ran and started closing UDP endpoints all the memory backing them had been freed already.
The UDP endpoint pool is declared like so:
static chip::System::ObjectPool<UDPEndPoint, INET_CONFIG_NUM_UDP_ENDPOINTS> sPool;

The instance of GlobalMinimalMdnsServer we have around is declared like so:
GlobalMinimalMdnsServer & GlobalMinimalMdnsServer::Instance()
{
    static GlobalMinimalMdnsServer _instance;
    return _instance;
}

Now the real question is: should something have called GlobalMinimalMdnsServer::Server().Shutdown() or some equivalent during stack shutdown?

https://github.com/project-chip/connectedhomeip/runs/3083706453 has the same failure.

Looks like #9674 fixed this; the log above from Tsan was in chip-tool, so adding the shutdown in DeviceController fixes that.


add tooling for localization (automatic 'missing string' detection)

it'd be great to have some tooling to determine which strings need to be

added
removed
changed

(among the different Resources.*.resx)

CC @gep13 @RichiCoder1

I'll give https://github.com/HakanL/resxtranslator a shot

if it works as I expect, I'll add it to the howto

@mwallner that looks really useful!

it even runs on linux ❤

aaand the encoding exploded + all EOL and EOF are dead to 🤣 - will try tomorrow on Windows OS!

Ah, perhaps we need some additional entries in the .gitattributes file.

Haha, oh my. Do let me know how it goes though, I'd love to see some tooling to make this easier for contributors

Works great on Windows! :-)

(keeps encoding and works just as expceted!)

Another option could be to setup a project on transifex (free for OSS).
I've used it a few times in the past, and IMO is great.
It could be set up to monitor a remote url for changes, synchronizing it whenever it is changed (not quite sure how often it is checked though).
With that it could also be integrated into the build script to download all translated strings (any language) during build by using their cli client.

That'd be great! - any experience working with this tool considering .resx ?

It's been quite some time since I last setup a project on transifex, so the procedure may have changed a little.
.resx files is supported by transifex without doing any modifications though, so that should be easy enough.

how about adding new languages?

Adding new languages can be added by the members that have the required privileges, those who do not have them can request/suggest a new language to be added (New translators would also need to request to be added to the language).

do you have resources to setup a demo?

I don't right now, but I'll try setting up a simple hello world demo hopefully soon.

@AdmiringWorm Let me know if you need any help on that. Rather curious myself. Heard good things about Transifex in the past.

I have used transifex to translate multiple projects, and I like the interface.
I vote that we use transifex.

I've set up a basic hello world demo here: https://github.com/AdmiringWorm/Hello-Transifex
I still have left to provide some documentation on how the transifex client is initialized, and how the project is set up on transifex.

@AdmiringWorm is this something that would be done as part of the CI build, or would this be done manually and added as part of a PR to the repo?

@gep13 it can be done both manually, and through a CI build (requires a small hack for that though).
The demo project I linked to is set up to ignore the Resource..resx files (only including the default Resource file) and download the translations when it is run on appveyor.

@AdmiringWorm cool, will take a look when I have a minute, sounds very interesting!

Some basic documentation have also been provided now on the wiki for how to set up the project on transifex, and configure the respository using the transifex client.

hmm, I just recently came across lingohub.
I think this looks pretty good (and is also free for FOSS), and looks like it can be easier integrated with github (supports automatic pull from repo, (automatic?) push either directly or as a PR).
Still testing it out, but I'll update when I've messed around with it some more.

@AdmiringWorm said...
It also has the downside that it can be integrated into the build process to download translation files.

can or can't

@gep13 said...
can or can't

Ops, I meant can't

@mwallner @AdmiringWorm @RichiCoder1 @magol I have started the process of setting up Transifex.  I "think" you should be able to see this here:
https://www.transifex.com/chocolatey/chocolatey-gui/dashboard/
Can you let me know if you all can see this?  If you could let me know your email addresses for Transifex (assuming you have one) I can get you added to the project.

Just put in a join request :-)

@mwallner sweet! You should have access now :-D

@magol that is great, I have accepted the request!  Thank you for yours and @mwallner continued help with this, it is a great addition to Chocolatey GUI.

I can confirm that I have access to the transifex project.

thanks @gep13 for setting up the account at https://www.transifex.com/chocolatey/chocolatey-gui/dashboard/ :-)
I'd suggest if you've verified the system works (maybe once Didier is done with the french translation?) you close this issue.

@gep13 @mwallner
btw, I recommend that when transifex have been fully integrated with the build process, the best thing would be to only accept translations through transifex and not the through github itself.
Otherwise, you may end up with a headache of manually updating every string on transifex afterwards (since they may differ, maybe some work had already been done on transifex already).
As well as only storing the source resource itself in the repo, and not the translations.

@AdmiringWorm totally agree.  I have implemented the required changes to make this possible going forward.

Using the amazing work from @AdmiringWorm I "think" I have just completed the first build using the translated artifacts from Transifex 😄
Version 0.16.0-unstable0072 has just been pushed to MyGet.
@pascalberger @mwallner @punker76 could I get you to take that version for a spin?  If this package successfully localizes to your environments, then I think we can go ahead and close this issue out, and continue using the Transifex service for additional translations.
Please let me know if you have any questions.

@gep13 LGTM. Except the features group for Chocolatey, maybe this keys are currently missing?

@gep13

@punker76 I don't think the configurations from choco have been made translatable, probably because they are dynamically generated (just a guess).
The untranslated Source seems to be a mistake though.

@AdmiringWorm The Source should be easy to fix.
https://github.com/chocolatey/ChocolateyGUI/blob/6b9ef923b94f53d3c5efdc1305bd2e6a29e2db90/Source/ChocolateyGui/Views/SettingsView.xaml#L136

@AdmiringWorm Is correct. I believe we already raised this issue with @ferventcoder

LGTM, (looking great!), love the fact that we can now just point people to transifex :-)

Ok, I am going to go ahead and close out this issue, as the main focus of this issue has been tackled, and we can raise other issues about the missing translations.

@punker76 according to Transifex, the current English to German translation for Features is simply Features:

If this isn't the case, or you can suggest something else, then we can get this changed.

@gep13 @mwallner I added my suggestions

@mwallner @pascalberger @x-jokay you guys are marked as translators/reviewers for the German Language.  It would be good to know if you guys get emailed/notified about this suggestion.  i.e. would be good to know what the workflow is around suggestions, and how they can get accepted.  Thanks!

hm, this is odd - I didn't receive any notification, neither per mail nor in the transifex UI.. also it's pretty hard to spot the 'overall' suggestions - thge only way I see currently is checking each string indivdually...

@gep13 No mail notification here either

@mwallner @pascalberger seems like you might have to "watch" a language, in order to get these notifications, but I can't find how to add a watch onto a language 😢

Okay, I have found how to "watch" a project, but not how to "watch" a language:

Can someone add a suggestion to the German language?  I want to see if I get any additional notifications through now.

@gep13 done

@punker76 yeah, that hasn't helped :sad:

@gep13 can you make me an admin in the CHocolatey team? I joined just now... but I can't request.


Getting Started

I'm thinking of deploying Huginn and have a few questions:

How complicated is the deployment process:
What agents are built-in (if any)?
Would it be feasible to run on Linode?
What are its system requirements?

If you're comfortable with Ruby, it's fairly straightforward.  There are a couple of ways of going about it, most official but some written by users.
Here are all the built-in agents: https://github.com/huginn/huginn/tree/master/app/models/agents
You should have no trouble running Huginn on Linode.
Huginn runs pretty well on 2 core, 4GB of RAM, and around 40GB of disk space.  More complex requirements will give better runtime efficiency, of course.


karma: add rule tests for plugins with / in name

(such as auth/auth_*)
for @celesteking
This rule should have worked for you:
results.auth/auth_base.fail      = -4  if length gt 0

However, Haraka's custom ini parser didn't permit it to work because of the forward slash:
[ERROR] [-] [core] Invalid line in config file 'karma.ini': results.auth/auth_base.fail = -4  if length gt 0

So attached is also a commit which adds the '/' char to the permitted list.

What can I say. It works:
 [karma] applied results.auth/auth_anti_brute.fail:-10

thanks sweeties.

Looks OK to me.   @baudehlo - I don't think allowing slashes in the key name will be a problem?

Yeah I don't see why it would be a problem.
On Tue, Apr 7, 2015 at 5:03 PM, Steve Freegard<EMAIL_ADDRESS>wrote:

Looks OK to me. @baudehlo https://github.com/baudehlo - I don't think
allowing slashes in the key name will be a problem?
—
Reply to this email directly or view it on GitHub
https://github.com/baudehlo/Haraka/pull/908#issuecomment-90731655.


[FEA] Let CPU handle Delta table's metadata related queries

I wish we can just let CPU handle Delta table's metadata related queries.
The reason is there are some CPU fallbacks for Delta table's metadata queries such as the one reading _delta_log(Json files).
If the _delta_log is huge(say millions of rows), then the CPU fallback's performance penalty is not trivial.
If we can just let CPU handle those metadata queries,  then at least the metadata queries' performance should be similar to CPU run.

Here is an example of some of the expensive transitions in a delta lake metadata query.

Setting spark.rapids.sql.optimizer.enabled=true removes some of the overhead here by avoiding moving to GPU for the final projection:

@andygrove I checked the query plan and time before and after setting spark.rapids.sql.optimizer.enabled=true and the result is similar -- 30s or so.
The plan are different though.


Closes #9707 - Keyboard Accesibility Issue with Icon Dropdown Fixed

Fixes Issue
Closes #9707
Changes proposed

Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[ ] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Screenshots
https://github.com/EddieHubCommunity/BioDrop/assets/72094124/9b4da1f9-ec43-4169-b73d-a981b1c93b29

@aryanraj60 I am not sure why you have opened this PR, as the Issue it relates to is still in triage and has not been assigned to you.
Please familiarise yourself with this project's Contributing Guide for any future contributions, to avoid any of your work being wasted and also adding additional work to the maintainers.
On this occasion we will assign the Issue to you and one of the maintainers will review this PR once they reach it in they queue.

I'm really sorry for that mam, It will not happen again, I'm new to opensource, I will keep this in my mind next time.

I went to test this but I realised I can't because I don't have an account haha


Can I import items from xlsx file?

Is this feture exists?
If not, can you add the support on a specific format xlsx file?

It is not supported currently. I might be relatively easy to support since Mojito uses Okapi filters, and there is one for xlsx files: https://okapiframework.org/wiki/index.php/OpenXML_Filter.
Do you have a sample file that could be used for testing? Not promising anything but if I can be done quickly I'd be happy to.

I think it's simple to create

key1
string1
remark1

key2
string2
remark2

key3
string3
remark3

key4
string4
remark4

just let user select the target languare when import

in your use case you'd have 1 spreadsheet/file per language? No header in the file?
(With xlsx, I'd expect people to want all the language in one sheet or eventually multiple sheet but still in a single file. That needs more investigation to know how the filter works and how it could work with the current CLI

I think the simplest is the better.
no header, column 1 is key, column 2 is string, column 3 is remark.
If you want... uh... how about this:
|key|remark|en-us|fr|ko|zh-cn|
|-|-|-|
|key1|remark1|enString1|frString1|koString1|cnString1|
|key2|remark2|enString2|frString2|koString2|cnString2|
|key3|remark3|enString3|frString3|koString3|cnString3|
|key4|remark4|enString4|frString4|koString4|cnString4|

Looks like for your use case @Flithor, CSV support would work fine. Closing for now.


Ensure correct escaping of avatar URL, update tests

Bring in improvements from https://github.com/go-pkgz/auth/pull/184
notably:

avatar URLs are now correctly escaped if the user ID contains special characters such as &
tests have been updated
email fields are no-longer double-encoded

looks like the upstream PR might get merged at some point, so I'll hold off on merging these changes in favour of another upstream merge a bit later (we don't currently use these features anyway)


Pylance doesn't recognize a variable's type from certain kinds of assert statements

Environment data

Language Server version: v2020.10.3
OS and version: Win10 running in WSL 2
Python version: 3.8.6

Expected behaviour
Pylint should constrain the variable's type based on the assertion statement, like this:
def foo(bar: Dict):
    key = bar.get("a")
    FOO_MAP = {
        'b': 'somestr',
        'c': 'otherstr'
    }
    assert isinstance(key, str)  # previously key's type was Unknown | None, now it's Unknown (why not str?)
    return FOO_MAP[key]          # pylint correctly shows no error

Actual behaviour
def foo(bar: Dict):
    key = bar.get("a")
    FOO_MAP = {             # type is Dict[str, str]
        'b': 'somestr',
        'c': 'otherstr'
    }
    assert key in FOO_MAP   # for this assertion to pass, key must be a str
    return FOO_MAP[key]     # error:
                            #  Argument of type "Unknown | None" cannot be assigned to parameter "k" of type "str" in function "__getitem__"
                            #    Type "Unknown | None" cannot be assigned to type "str"
                            #     Type "None" cannot be assigned to type "str" Pylance (reportGeneralTypeIssues)

If we have a lot of data coming in from external sources, we need a way of communicating to Pylance that a variable is of a certain type, and preferably in the most concise way possible. Naturally, I could say
assert isinstance(key, str)
assert key in FOO_MAP

but it's irksome to write that extra line (or just an and expression) when the information is implied by the type of FOO_MAP.
Furthermore, it seems that even straightforward assertions like
assert isinstance(key, str) # key is Unknown (not str?)

are communicating no more information than a very loose
assert key is not None   # key is Unknown (expected)

Why is that? Is this expected behavior?
Logs
Will provide if necessary.

Pylint is too forgiving (how is it that you do not get pyright instead under pylance? I have disabled all other linters...) but your bar: Dict is only partially specified (it boils down to Dict[Unknown, Unknown]): try something like bar: Dict[str, Any] instead, then key will be of type str.

That would work, except in reality bar is not a Dict[str, str], it has values of mixed type, e.g., Dict[str, Unknown]. I'm hoping that I can use assertions to narrow the type of a specific value from that dictionary that I know will be a string.

Thanks for the bug report. There is an inconsistency in the way pylance is applying type narrowing to an Any/Unknown type and a type that is a union that happens to contain an Any/Unknown type. In your case, the type inferred for key happens to be Union[Unknown, None]. If you annotate the type of key to Any, you will get the behavior you're looking for. I'll work on making this behavior consistent for unions.

What's the meaning of Unknown compared with Any?
Indeed, when I annotate the type of key to Any, there is no error, even when I remove all assertions statements (so that doesn't seem to explain the difference in type narrowing behavior between the two types of asserts that I mentioned). Why did the assert isinstance(key, str) work, where the other assertion didn't?
I see what you mean about the inconsistent behavior with regard to unions...
    ...
    key = bar.get("a")
    # pylance says key is Unknown | None
    assert isinstance(key, str)
    # after this pylance says key is Unknown
    assert isinstance(key, str)
    # now pylance says key is str
    return FOO_MAP[key]

Perhaps you could treat the type narrowing procedure as a fixed-point algorithm?

Any is defined in PEP 484, and it is used in a type annotation to indicate that any value can be assigned to that symbol. Unknown is a special form of Any that pylance uses. It is an "implicit Any" — one that was not explicitly provided by the program. For example, Unknown is used in cases where you call a function whose return type is not annotated. In most cases, Unknown and Any are treated the same. This is the case with isinstance type narrowing.
The reason a double assert works here is because the first assert narrows the type from Union[Unknown, None] to just Unknown. The second assert then further narrows it to str. The first assert should have been sufficient.

Thanks for the clarification!

I've updated the isinstance and issubclass type narrowing logic to be more consistent when handling union and non-union source types. With this change, no error is reported for your code example above.
This fix will be included in the next release of pylance.
Thanks again for reporting the problem.

Glad to hear it!
Does Pylance support type narrowing based on assertions like
def foo(bar: Dict):
    key = bar.get("a")
    FOO_MAP = {             # type is Dict[str, str]
        'b': 'somestr',
        'c': 'otherstr'
    }
    assert key in FOO_MAP   # for this assertion to pass, key must be a str
    return FOO_MAP[key]

In this case, the type of key can be certainly known given that it's confirmed to be present in a dictionary with a known key type.

No, this isn't support. In general, "type narrowing" refers to a process by which a known type is made "narrower" either by eliminating subtypes of a union or by choosing a subclass of a provided class. For example, str is narrower than Union[str, int], and int is narrower than float.
The Any type is not typically narrowed. The one exception is with the isinstance call, which can narrow Any to a specific type.

The Any type is not typically narrowed. The one exception is with the isinstance call, which can narrow Any to a specific type.

This is surprising to me, since the example I gave has the same narrowing power as a call to isinstance. It's not a huge issue by any means, but my tendency would be to want to narrow types whenever possible, and Any appears to symbolize the union of all existing or hypothetical types.
Pylance has been quite helpful in pointing out ambiguities and outright wrong code in our projects, so I'm thankful for all the work you all do!

No, this case is quite different. The implementation of the in operator is very complex. It involves the evaluation of several "magic methods" (__contains__, __iter__, __next__) on the left-hand operand. If the type of that left-hand operand is unknown, it is not possible for the type checker to determine whether these methods are supported or which parameter types are allowed. So no narrowing can be safely done in these cases.

This issue has been fixed in version 2020.11.0, which we've just released. You can find the changelog here: https://github.com/microsoft/pylance-release/blob/master/CHANGELOG.md#2020110-4-november-2020


Set-RsDataBase issue - Get-WmiObject error - seems to be tied to SQL 2017/SSRS 2017

Do you want to request a feature or report a bug?
What is the current behavior?
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
What is the expected behavior?
Which versions of Powershell and which OS are affected by this issue? Did this work in previous versions of our scripts?

When I tried to move a new SSRS 2017 instance onto a SQL Server 2017 instance, I ran into some odd issues.

When I was on SQL Server 2016/SSRS 2016, I did not have to specify the -ReportServerInstance nor the -ReportServerVersion.   (Github #104 )

I am using PowerShell 5.1 and Windows 10 and SSRS 2017/SQL 2017 and ReportingServicesTools <IP_ADDRESS>
If I don't specify the -ReportServerInstance and -ReportServerVersion, I get the Wmi-NameSpace issue as listed in Github #104 .
Aside from this, I am now getting this odd error.

Performing the operation "Configure to use localhost as database, using Windows runtime authentication and  setup
authentication" on target "localhost (SQLServer2017) \ SSRS".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): y
Get-WmiObject :
At C:\Program Files\WindowsPowerShell\Modules\ReportingServicesTools\<IP_ADDRESS>\Functions\Utilities\New-RsConfigurationSet
tingObject.ps1:100 char:19

$wmiObjects = Get-WmiObject @getWmiObjectParameters

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], COMException
FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Here is the script I am trying to run:
Set-RsDatabase -DatabaseServerName localhost -Name ReportServer_ALT -ReportServerInstance SSRS -ReportServerVersion SQLServer2017 -DatabaseCredentialType Windows -DatabaseCredential 'GWML-8KNY4Y2\ReportUser' -VERBOSE
Any ideas?
Thank you!

For the instance and version is by design , the default for the tools it is 2016 and have not change to avoid breaking anyone that took dependency in the initial version.
The defaults are defined here https://github.com/microsoft/ReportingServicesTools/blob/e5948d5c8a66eaaf86d96ffff0ebe4c2ed0367e6/ReportingServicesTools/Libraries/library.ps1#L24

No, and I understand that the tools were built around SSRS 2016 and I think enforcing the defaults makes a lot of sense, but I am still getting this odd error.
Get-WmiObject :
At C:\Program Files\WindowsPowerShell\Modules\ReportingServicesTools\<IP_ADDRESS>\Functions\Utilities\New-RsConfigurationSet
tingObject.ps1:100 char:19
$wmiObjects = Get-WmiObject @getWmiObjectParameters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
I suspect if I go back to SSRS 2016 that it will work.

Ok, New-RsConfigurationSettingObject is working at its simplest level with SSRS and SQLServer2017.  It's something else in my script that may be causing the problem.

I went ahead and tested on a VM running SQL 2016 and SSRS 2016 and version <IP_ADDRESS> of the RST.  I was able to use the Set-RsDatabase function without issue on there.

Any ideas?  Thanks

It will need a little bit of debugging, probably you will need to add some tracing to write the command used under the cover and use that one independently to figure out what could be causing the issue


ts: Convert css_variables.js to TypeScript

Trivial convertion. Nothing changes except the file suffix.

@zulipbot add "typescript migration"

@zulipbot add "area: typescript migration"

@zulipbot add "buddy review"

@jychen630, I am not sure if this file can currently be migrated to TypeScript. It was previously migrated back to JavaScript in this commit.
Reason being:

This was causing Webpack to trigger type checking with the TypeScript
compiler, which is very expensive.


RAM usage under nodes

HI
Can some one clarify what exactly is used vs available under RAM?
When I add all the KI values from kube node api I get the value as 384GB
But the dashboard says that available is 358Gi?

@herbrandson any idea on this?

That logic is in nodeRamChart.js, but it's just looping over the nodes and summing status.capacity.memory.
const available = _.sumBy(items, x => parseRam(x.status.capacity.memory)) / TO_GB;

Any chance you've typed something in the "filter" box? The results will only be for non-filtered nodes.


pnpm cannot find react module

Link to reproduction
https://github.com/GeorgeHulpoi/payload-pnpm-not-found-react
Describe the Bug
Building with pnpm throws an error that it can't find react, but it does not happen with npm.
To Reproduce

pnpm install
pnpm build

Payload Version
2.0.13
Adapters and Plugins
db-mongodb, bundler-webpack

This feels expected to me. The project doesn't explicitly install react and you're attempting to reference it.
It sounds like npm is a bit more loose with what you can reference. I assume it is just picking up react if any other dependency install it.
Will reopen if I misunderstood.

He @denolfe I'm confused as to why you feel this is expected. It seems like the provided repo is a 'blank' (from template) payload project which doesn't build when using pnpm. I would assume that a template project should build out of the box.

The blank template work fine with pnpm as demonstrated here:

This issue is about being able to reference a dependency's dependency without causing an error. I would never expect to be able to reference react unless it is installed explicitly. npm just happens to allow this ability.


Make this a ruby gem

It would be awesome to see this worked into a ruby gem.
Skeleton can be generated with bundle gem jekyll-asset-path (more info)
Then installation can be setup like this

I understand the appeal but it seems a bit unnecessary when installation only involves copying one file at the moment. The plugin is also extremely simple and unlikely to see any updates really. Sorry! Feel free to fork and create a gem though.

Copy/pasting of code doesn't seem a good approach.
Still, there is no harm in making it a standard gem. One can still copy/paste the code.
If needed, I make a PR for it.


Create a new demo folder with example for a linux desktop

This PR creates a new demo folder desktop within the quickstart directory. It provides examples that can run on a Linux desktop or workstation equipped with an NVIDIA GPU, such as GeForce.

Seven examples with consistent and descriptive naming for test filenames, namespaces, and pod names.

SPSC-GPU: a single pod with a single container accesses a GPU via ResourceClaimTemplate
SPMC-Shared-GPU: a single pod's multiple containers share a GPU via ResourceClaimTemplate
MPSC-Shared-GPU: multiple pods, each with a single container, share a GPU via ResourceClaim
MPSC-Unshared-GPU: multiple pods, each with a single container, request dedicated GPU access
SPMC-MPS-GPU: a single pod's multiple containers share a GPU via MPS
MPSC-MPS-GPU: multiple pods, each with a single container, share a GPU via MPS
SPMC-TimeSlicing-GPU: a single pod's multiple containers share a GPU via TimeSlicing

A detailed description of the commands along with sample outputs.

Thanks for putting this together. Quick question before looking at this in detail -- why the subfolder of desktop what other folders do you expect to put next to this? I would expect the "quickstart" examples to already be runnable on any desktop with at least 1 GPU on it (even if this may not be true at the moment).


Token standard definition

This Issue contains a WIP token standard definition for the Mina L1, built with snarkyjs and based on the currently available smart contract features such as custom tokens. As a result of this discussion, we plan to propose a fully featured MIP.
Prerequisites

MIP zkApps, especially account updates, permissions and built-in token features

Reference implementation
The reference implementation of the features highlighted below is available as part of this repository, under /packages/token/src (develop branch). Tests can be found under /packages/token/test
Features
The token standard is designed in a modular fashion, also thanks to leveraging snarkyjs contract interoperability. As long as the contracts involved in the token standard 'contract suite' follow the predefined interfaces, the interoperability aspects of the token standard will be maintained. This allows for rich integrations with third party smart contracts, without the need to upgrade the token contracts themselves.
Token (owner) and Token Account
Mina L1 offers built-in custom tokens, where every account that holds a balance of a token is essentially a child account of the token contract. If Alice was a MINA account and we wanted to transfer our custom token to Alice's address, we'd have to deploy/fund an additional account under the token contract itself. This additional token account would be deployed using a tokenId of the parent token (owner) contract.

Keep in mind that deploying/funding a new account is charged with the 'default account creation fee' which is 1 MINA at the time of writing. This means that to transfer a custom token to an address that has not received this specific token just yet, you need to pay 1 MINA to create that account.

Transferable
Transfers are an essential feature of every token standard, however in the case of snarkyjs and its account update based smart contracts, a simple transfer() method would not be sufficient. Each Mina L1 account can contain different set of permissions for receive and send, therefore the token contract cannot make any assumptions about the authorization required for both from and to accounts. Due to the aforementioned reasons, the Transferable interface is split into multiple methods, that allow the token contract and anyone interacting with it to issue account updates in a layout that suits their use case.
Interface
interface TransferOptions {
  from?: PublicKey;
  to?: PublicKey;
  amount: UInt64;
  mayUseToken?: MayUseToken;
}

class TransferFromToOptions extends Struct({
  from: PublicKey,
  to: PublicKey,
  amount: UInt64,
}) {}

interface Transferable {
  transferFromTo: (options: TransferFromToOptions) => FromToTransferReturn;

  transfer: (options: TransferOptions) => TransferReturn;
  transferFrom: (
    from: PublicKey,
    amount: UInt64,
    mayUseToken: MayUseToken
  ) => FromTransferReturn;
  transferTo: (
    to: PublicKey,
    amount: UInt64,
    mayUseToken: MayUseToken
  ) => ToTransferReturn;
}

Usage
Deciding which method to call is based on the underlying permissions of both the from and to accounts respectively.
All the available interface methods are wrapped under transfer(...), which decides which underlying implementation to call based
on the parameters provided.
Here's a breakdown of what parameters should be used, depending on the account permission (send/receive proof/signature/none).

Keep in mind that balance changes in the account updates need to have a cumulative balance change of 0, in order to be approved. This ensures no tokens are minted or burned during transfers, more on approvals in a later section of this document.
⚠ from account permission is send and to account permission is receive.

Transfer between to 'normal' accounts:
// from: `signature`, to: `none`

// Mina.transaction
token.transfer({ from, to, amount });

Withdraw from zkApp:
// from: `proof`, to: `none`

// from
// zkApp -> issue a child account update to decrease its own balance, which can be proven
token.transfer({ from, amount });

// to
// Mina.transaction -> issue a top-level account update to increase the balance of the recipient
token.transfer({ to, amount });

Transfer between two zkApps:
// from: `proof`, to: `proof`

// from
// zkApp -> issue a child account update to decrease its own balance, which can be proven
token.transfer({ from, amount });

// to
// zkApp -> issue a child account update to increase its own balance, which can be proven
token.transfer({ to, amount });

Approvable

🚨 This feature is currently blocked and only works by approving an 'any' account update layout, which isn't secure. Further work is required in defining a set of approval methods universal enough to support various account update layouts.

Account updates to Token Accounts always require an approval from the Token (owner). In practice this means that any smart-contract call to a token account will need authorize it's own account updates by e.g. proof or signature, and in addition these account updates will have to go through an approval from the Token (owner) contract.
A practical example would be a zkApp that holds a balance of a custom token. If you want to withdraw, which means manipulate the state of the token account in any way via an account update - this account update will need additional validation/approval from the Token (owner) contract.
This approval logic is built-in into zkApps out of the box, and custom tokens rely on it completely.
Interface
interface Approvable {
  approveTransfer: (from: AccountUpdate, to: AccountUpdate) => void;
  approveDeploy: (deploy: AccountUpdate) => void;
}

Usage
Transfer between to 'normal' accounts:
No approval required, as long as the account updates are issued and proven from the Token (owner) contract itself.
Withdraw from zkApp:
// from: `proof`, to: `none`

// to
// Mina.transaction -> issue a top-level account update to increase the balance of the recipient
const fromAccountUpdate = token.transfer({ to, amount });

// zkApp

// from
// zkApp's token account -> issue a child account update to decrease its own balance, which can be proven
token.transfer({ from, amount });

// zkApp, use the `self` account update of the zkApp's token account
token.approve(fromAccountUpdate, zkAppTokenAccount.self);

Transfer between two zkApps:
Same principles as in the prior case apply here, but the fromAccountUpdate has to be issued from the respective token account as well, in order to have the appropriate proof authorization.
Adminable (Mintable, Burnable, Pausable, Upgradable)

🚨 Pausable isn't implemented yet in the reference implementation. For fully pausable transfers, the pausable state must be taken into consideration during approve as well.

Adminable interfaces consist of multiple individual interfaces, such as: Mintable, Burnable, Pausable and Upgradable. Each of these interfaces can be implemented on its own, to allow for cases where certain tokens might not be e.g. mintable at all.

Mintable

Responsible for dealing with total & circulating supply as well as minting or updating the total supply itself.

Burnable

Responsible for enabling burning of tokens.

Pausable

Allows to pause token transfers.

Upgradable

Allows upgrading of the Token's (owner) verification key.

Interface
interface Mintable {
  totalSupply: State<UInt64>;
  circulatingSupply: State<UInt64>;
  mint: (to: PublicKey, amount: UInt64) => AccountUpdate;
  setTotalSupply: (amount: UInt64) => void;
}

interface Burnable {
  burn: (from: PublicKey, amount: UInt64) => AccountUpdate;
}

interface Pausable {
  paused: State<Bool>;
  setPaused: (paused: Bool) => void;
}

interface Upgradable {
  setVerificationKey: (verificationKey: VerificationKey) => void;
}

Viewable

🚨 There are no tests yet for viewable functions preconditions in the reference implementation.

The Viewable interface provides a set of non-method functions on the Token (owner) contract, which can be used to inspect state of the Token (owner) contract itself, or its Token accounts. Each viewable function offers an option to enable certain assertions, to support a case where the view function may be used in a third party smart contract.
Interface
interface Viewable {
  getAccountOf: (address: PublicKey) => ReturnType<typeof Account>;
  getBalanceOf: (address: PublicKey, options: ViewableOptions) => UInt64;
  getTotalSupply: (options: ViewableOptions) => UInt64;
  getCirculatingSupply: (options: ViewableOptions) => UInt64;
  getDecimals: () => UInt64;
  getPaused: (options: ViewableOptions) => Bool;
  getHooks: (options: ViewableOptions) => PublicKey;
}

Usage
// zkApp

@method runIfEnoughBalance(address: PublicKey) {
  const token = new Token(tokenAddress);

  // creates a precondition, that the balance of the given address
  // is the same as when this method was proven
  const balance = token.getBalanceOf(address);
  const minimalBalance = UInt64.from(1000);

  balance.assertGreaterThanOrEqual(minimalBalance);
}

Hookable
The Hookable interface provide a non-invasive way to extend the behavior of the Token's implementation. Hooks can be used to intercept certain features, such as transfers or admin-ish actions. Hooks are implemented as a standalone contract, which is called by the Token (owner) contract during certain points of execution. The hooks contract is referenced by an address in the Token (owner) contract itself.
Interface
// for the Token (owner) contract
interface Hookable {
  hooks: State<PublicKey>;
}

// for the Hooks contract
interface Hooks {
  canAdmin: (action: AdminAction) => Bool;
  canTransfer: ({ from, to, amount }: TransferFromToOptions) => Bool;
}

Additional discussion:

Feedback thread: https://discord.com/channels/484437221055922177/1096393501404573797
Approval method design: https://discord.com/channels/484437221055922177/1096150907869208686

Started by reading Transferable. Sounds reasonable! I'd suggest to tweak one aspect:

// from
// zkApp -> issue a child account update to decrease its own balance, which can be proven
token.transfer({ from, amount });

This sounds like the zkApp would issue a separate account update instead of using this.self for decreasing the balance. To enable using this.self, I would propose the following flexible interface:
token.transfer(options: { from: PublicKey | AccountUpdate | SmartContract, amount: UInt64 })

if an account update is passed, then we decrease the balance on it. if a SmartContract is passed, then we call .self on it to get its account update and decrease the balance on that. so, in a zkApp we could use:
token.transfer({ from: this, amount })

Started by reading Transferable. Sounds reasonable! I'd suggest to tweak one aspect:

// from
// zkApp -> issue a child account update to decrease its own balance, which can be proven
token.transfer({ from, amount });

This sounds like the zkApp would issue a separate account update instead of using this.self for decreasing the balance. To enable using this.self, I would propose the following flexible interface:
token.transfer(options: { from: PublicKey | AccountUpdate | SmartContract, amount: UInt64 })

if an account update is passed, then we decrease the balance on it. if a SmartContract is passed, then we call .self on it to get its account update and decrease the balance on that. so, in a zkApp we could use:
token.transfer({ from: this, amount })

Thanks gregor i had an implementation earlier where i've passed SmartContract as from/to, and its definitely better since there's less AUs in the end. I'll update the interface and implementation accordingly. I think this may help with designing the transfer approval as well - but not much.

After discussing a bit more with @maht0rz, I think the token owner interface for transfers (Transferable) is sufficient and handles all cases in the only way that's feasible.
It will need to be augmented with the right coding patterns in third party contracts that interact with multiple token holders which can either have proof or non-proof permissions for send/receive. Example: https://github.com/stove-labs/mip-token-standard/blob/develop/packages/token/test/ThirdParty.ts#L23
It's unfortunate that this complexity is pushed upwards but I don't think there's a different way that can handle arbitrary token holder accounts.
From my perspective, what this is mainly blocked on at this point is snarkyjs' current lack of general-purpose approval methods (see https://github.com/o1-labs/snarkyjs/issues/706, and more even advanced approval methods using recursion would be ideal)

@iam-dev brought up the question of configurability and/or composability of token standard features. I've attempted to implement the individual features in a composable manner, but decided not to pursue it further due to issues with inheritance in SnarkyJS SmartContracts. You can find the attempts and the resulting mixins in an older commit of this repository: https://github.com/stove-labs/mip-token-standard/tree/825d2195264b0156776afb1f1bbd5db585ece044/packages/token/src/mixins
Other than that, you could cherry pick only the features you want from the current monolithic implementation by removing the unwanted methods and their metadata from the Token class, which should be fairly straightforward to do.

Did any thinking go into not building the token standard using custom tokens? I can see the benefit of coming up with a standard that composes on top of what's already available natively, but the token account model enforced by custom tokens introduces significant problems:
As mentioned in the proposal, when using custom tokens we have to fund an additional account in order to transfer tokens to a new user. This significantly deviates with how tokens work on other chains. For non-fungiables, it is more costly and cumbersome to mint new tokens. For fungiables, the ability to airdrop tokens seem to be quite impossible. This makes it so any token standard built using custom tokens will have a harder time scaling to more users.
If the above consequences are true -- and please correct me if they are not -- I think we should really reconsider not using custom tokens for creating a token standard.

@ycryptx aidroping would incur storage costs if the account ledger is tracked in e.g. a merkle tree anyways, this is handled by the protocol with an account creation fee instead. You can always build your airdrop on a claim-basis, where the end user would have to pay to claim the token (rather than the airdrop issuer).
Anyways the token standard described here is a fungible one, so it does not aim to address the NFT airdrop concerns you've mentioned.
If we wanted to build a token standard with non-built-in tokens, there'd be a whole another plethora of issues to deal with - e.g. concurrency.


Missing 'load' export in the embedded cheerio dependency

I just imported the latest version of the package and used truncate once in my component. I got that error when building.
Rollup: Missing Export: node_modules/truncate-html/dist/truncate.es.js:5:9
           'load' is not exported by node_modules/cheerio/index.js

      L4:   */
      L5:  import { load } from 'cheerio';

Update: seems to be a general problem with StencilJs, see this issue.
Closing the issue


The voronoi transform requires facets to be exclusive

Followup to #1648; we fixed the stack transform, but not the voronoi transform.

This is fixed by #1623 (but needs some clean-up; I'll comment further on that PR).


Moved to error stream

First stab at using pester.... Let me know if you have any preferences on organizing the tests, haven't worked with this before!
Moved from returning Streams.Error directly to looping through this collection and writing to the error stream.
@vors - I swapped out the Write-Warning when errors occur.  I see the value in separating errors within the runspace though, if you prefer that feedback mechanism feel free to swap it back in!

LGTM

Used ErrorVariable OutError to redirect errors to that variable.  Shouldn't happen, but just in case $Error is contaminated by other errors.

:+1:


scroll method has hardcoded speed

I've noticed that there is hardcoded animation speed in scroll method
https://github.com/d4nyll/smartscroll/blob/749a7e74f12e12452ba7a9e0445fddf7c747a8af/smartscroll.js#L277
https://github.com/d4nyll/smartscroll/blob/749a7e74f12e12452ba7a9e0445fddf7c747a8af/smartscroll.js#L279
I believe it should use options.animationSpeed instead of specifying value 700.

You're right @tomashavlas! Thanks for the spot. Fixed it with a commit just now!


Refactoring and test improvements, Mesos coarse- & fine-grained scheduler

These changes remove some duplication into parent traits or helper classes (in both the main code and tests), and they improve the test suites.

I am not able to run spark-shell in coarse mode with yesterday's version.
It fails when trying to create the executors/tasks during the initialization.
On the slaves, I see this error:
I0415 10:43:32.404959  4050 fetcher.cpp:76] Fetching URI '/var/spark/spark-1.4.0-SNAPSHOT-bin-2.2.0.tgz'
I0415 10:43:32.405138  4050 fetcher.cpp:179] Copying resource from '/var/spark/spark-1.4.0-SNAPSHOT-bin-2.2.0.tgz' to '/tmp/mesos/slaves/20150415-085149-23986442-5050-2025-S0/frameworks/20150415-085149-23986442-5050-2025-0004/executors/5/runs/36d6f6a9-606c-48b9-9535-9bf003b892d7'
I0415 10:43:34.512825  4050 fetcher.cpp:64] Extracted resource '/tmp/mesos/slaves/20150415-085149-23986442-5050-2025-S0/frameworks/20150415-085149-23986442-5050-2025-0004/executors/5/runs/36d6f6a9-606c-48b9-9535-9bf003b892d7/spark-1.4.0-SNAPSHOT-bin-2.2.0.tgz' into '/tmp/mesos/slaves/20150415-085149-23986442-5050-2025-S0/frameworks/20150415-085149-23986442-5050-2025-0004/executors/5/runs/36d6f6a9-606c-48b9-9535-9bf003b892d7'
I0415 10:43:34.708636  4063 exec.cpp:132] Version: 0.21.1
I0415 10:43:34.718551  4064 exec.cpp:206] Executor registered on slave 20150415-085149-23986442-5050-2025-S0
Error: Main method not found in class org.apache.spark.scheduler.cluster.mesos.CoarseGrainedMesosSchedulerBackend, please define the main method as:
   public static void main(String[] args)

The same test work fine with a 1.3.0 build.
I'll give a try with the updated code.

Hmm. There's no main method in that class now. I wonder if I deleted it
accidentally or it's in another class. I'll investigate.
dean
On Wed, Apr 15, 2015 at 5:47 AM, Luc Bourlier<EMAIL_ADDRESS>wrote:

I am not able to run spark-shell in coarse mode with yesterday's version.
It fails when trying to create the executors/tasks during the
initialization.
On the slaves, I see this error:
I0415 10:43:32.404959  4050 fetcher.cpp:76] Fetching URI '/var/spark/spark-1.4.0-SNAPSHOT-bin-2.2.0.tgz'
I0415 10:43:32.405138  4050 fetcher.cpp:179] Copying resource from '/var/spark/spark-1.4.0-SNAPSHOT-bin-2.2.0.tgz' to '/tmp/mesos/slaves/20150415-085149-23986442-5050-2025-S0/frameworks/20150415-085149-23986442-5050-2025-0004/executors/5/runs/36d6f6a9-606c-48b9-9535-9bf003b892d7'
I0415 10:43:34.512825  4050 fetcher.cpp:64] Extracted resource '/tmp/mesos/slaves/20150415-085149-23986442-5050-2025-S0/frameworks/20150415-085149-23986442-5050-2025-0004/executors/5/runs/36d6f6a9-606c-48b9-9535-9bf003b892d7/spark-1.4.0-SNAPSHOT-bin-2.2.0.tgz' into '/tmp/mesos/slaves/20150415-085149-23986442-5050-2025-S0/frameworks/20150415-085149-23986442-5050-2025-0004/executors/5/runs/36d6f6a9-606c-48b9-9535-9bf003b892d7'
I0415 10:43:34.708636  4063 exec.cpp:132] Version: 0.21.1
I0415 10:43:34.718551  4064 exec.cpp:206] Executor registered on slave 20150415-085149-23986442-5050-2025-S0
Error: Main method not found in class org.apache.spark.scheduler.cluster.mesos.CoarseGrainedMesosSchedulerBackend, please define the main method as:
public static void main(String[] args)
The same test work fine with a 1.3.0 build.
I'll give a try with the updated code.
—
Reply to this email directly or view it on GitHub
https://github.com/typesafehub/spark/pull/2#issuecomment-93318355.

--
Dean Wampler, Ph.D.
Typesafe http://typesafe.com
Author: Programming Scala, 2nd Edition
http://shop.oreilly.com/product/0636920033073.do (O'Reilly)
@deanwampler http://twitter.com/deanwampler
I'm speaking at Strata + Hadoop World London | May 5-7, 2015
http://strataconf.com/big-data-conference-uk-2015 #strataconf

I tested the current spark master. Coarse grain is starting fine.

I'm very baffled by this. There's no main in the old version of this class
either. I wonder if the error message is misleading, reporting the wrong
class. I'll investigate further.
On Wed, Apr 15, 2015 at 7:54 AM, Luc Bourlier<EMAIL_ADDRESS>wrote:

I tested the current spark master. Coarse grain is starting fine.
—
Reply to this email directly or view it on GitHub
https://github.com/typesafehub/spark/pull/2#issuecomment-93381076.

--
Dean Wampler, Ph.D.
Typesafe http://typesafe.com
Author: Programming Scala, 2nd Edition
http://shop.oreilly.com/product/0636920033073.do (O'Reilly)
@deanwampler http://twitter.com/deanwampler
I'm speaking at Strata + Hadoop World London | May 5-7, 2015
http://strataconf.com/big-data-conference-uk-2015 #strataconf

Luc, can you send me more of the output logs? I'm trying to sort out the
sequence of events leading to this error. Thanks. It's not critical if
you've already left for the day.
dean
On Wed, Apr 15, 2015 at 8:12 AM, Dean Wampler<EMAIL_ADDRESS>wrote:

I'm very baffled by this. There's no main in the old version of this class
either. I wonder if the error message is misleading, reporting the wrong
class. I'll investigate further.
On Wed, Apr 15, 2015 at 7:54 AM, Luc Bourlier<EMAIL_ADDRESS>wrote:

I tested the current spark master. Coarse grain is starting fine.
—
Reply to this email directly or view it on GitHub
https://github.com/typesafehub/spark/pull/2#issuecomment-93381076.

--
Dean Wampler, Ph.D.
Typesafe http://typesafe.com
Author: Programming Scala, 2nd Edition
http://shop.oreilly.com/product/0636920033073.do (O'Reilly)
@deanwampler http://twitter.com/deanwampler
I'm speaking at Strata + Hadoop World London | May 5-7, 2015
http://strataconf.com/big-data-conference-uk-2015 #strataconf

--
Dean Wampler, Ph.D.
Typesafe http://typesafe.com
Author: Programming Scala, 2nd Edition
http://shop.oreilly.com/product/0636920033073.do (O'Reilly)
@deanwampler http://twitter.com/deanwampler
I'm speaking at Strata + Hadoop World London | May 5-7, 2015
http://strataconf.com/big-data-conference-uk-2015 #strataconf

The logs of spark-shell and the executor
https://gist.github.com/skyluc/3c0404258a3c224a62ce
The only extra configuration is this line in the conf/spark-default.conf:
spark.mesos.coarse true

I'll try again with a master build, to see if there is some difference in the command line used to start the worker.

Thanks.
On Wed, Apr 15, 2015 at 12:02 PM, Luc Bourlier<EMAIL_ADDRESS>wrote:

The logs of spark-shell and the executor
https://gist.github.com/skyluc/3c0404258a3c224a62ce
The only extra configuration is this line in the conf/spark-default.conf:
spark.mesos.coarse true
I'll try again with a master build, to see if there is some difference in
the command line used to start the worker.
—
Reply to this email directly or view it on GitHub
https://github.com/typesafehub/spark/pull/2#issuecomment-93487481.

--
Dean Wampler, Ph.D.
Typesafe http://typesafe.com
Author: Programming Scala, 2nd Edition
http://shop.oreilly.com/product/0636920033073.do (O'Reilly)
@deanwampler http://twitter.com/deanwampler
I'm speaking at Strata + Hadoop World London | May 5-7, 2015
http://strataconf.com/big-data-conference-uk-2015 #strataconf

With the master build
sh -c 'cd spark-1*;  ./bin/spark-class org.apache.spark.executor.CoarseGrainedExecutorBackend --driver-url akka.tcp://sparkDriver@<IP_ADDRESS>:32859/user/CoarseGrainedScheduler --executor-id 20150415-162504-23986442-5050-2223-S2 --hostname lucPrTestnode001 --cores 2 --app-id 20150415-162504-23986442-5050-2223-0003'

With the pr build
sh -c 'cd spark-1*;  "./bin/spark-class" org.apache.spark.scheduler.cluster.mesos.CoarseGrainedMesosSchedulerBackend  --driver-url akka.tcp://sparkDriver@lucPrTestmaster:44784/user/CoarseGrainedScheduler --executor-id 20150415-162504-23986442-5050-2223-S2 --hostname lucPrTestnode001 --cores 2 --app-id 20150415-162504-23986442-5050-2223-0001'

The only difference is the class name.

retest this please

CoarseGrainedExecutorBackend has a companion object, with a main method. So the error seems valid.
I'll give in a try to extract most of the code of the companion object, and share it between the executorBackend files.

Okay, I fixed the bug where the wrong class was specified, but my testing is not going well. The Mesos executor exits with an error on the slave console that it was in an "unexpected state RUNNING". I think  I screwed up the ridiculously-complex state machine. So, I'm closing this pull request until I can revisit it.


Extend 3D observations/policy with visual (RGB) data

Added octree_include_color argument to environments with octree observations (https://github.com/AndrejOrsula/drl_grasping/commit/a53feabce797cc263bc934bdc3d6c394df680370). Remember to change the number of input channels for the feature extractor from 3 to 6 if this flag is set.


[Task] Change how user interacts with examples for requirements

Replace thumbs up / down with a "+" button. The button triggers a new pop-up window, asking for

related requirements -- user can add a new requirement here
use the example as positive or negative example
rationales (model filled but can be edited)

Move thumbs down on evaluator into rationales & add the example as a positive example

pushed the code to dev branch

On user experience:

The new pop-up window should appear under the thumbs up / down (look at how we do tooltips' positions or check absolute positions) and should go away when click outside like all other pop-up windows
When thumbs up, it is a bit unclear what users can do with the requirements -- maybe add hints like "select related requirements", and use checkbox in each requirement cell for it (instead of color changes)
When thumbs down, it is also unclear what users can do with the two new buttons. We can have one simple pop-up window for both: Add an input cell under existing requirements (like what we do in the left-side panel)
For thumbs up / down, there should be a feedback textbox, which can be prefilled by model rationales but can be edited by users.

Code pushed to dev

Pop-up window position: The space under the thumbs up/down icons was insufficient to display the entire pop-up window, as it contains a full list of requirements. I preserved the pop-up at the center of the screen, similar to how we display the requirement details. The pop-up now closes when clicking outside, just like the other pop-up windows.
Checkbox implementation and example tracking: Added hints like "Select related requirements" and replaced color changes with checkboxes in each requirement cell. I also created a store variable to track whether an example is checked for any requirement. Now, when users click on the icon, the checking status in the window shows which examples belong to which requirements. Additionally, I implemented a backend function to remove examples when users uncheck them.
Rationale inclusion: The rationale is now included as part of the example in the backend.

For the pop-up window position, we should still place them under (next to) thumbs down/up. We can still overlay them on the top. Right now it is just a bit confusing when users click on thumbs up/down, sometimes the example text will be blocked by the new window

For example tracking, we might want to test the implementation a bit. Some existing bugs I observed:

Thumbs-up / thumbs-down for one example are sharing the same set of checked examples
When an example for one prompt version is checked for one requirement, the examples for newer versions are also checked. Ideally, we should be able to distinguish examples from which run contribute to the requirement.

Per today's discussion, we need to re-think what operations in the example space are needed for updating requirements:
For each example, we will have a list of evaluation results for all requirements

If the example is good/bad in a new way that is not captured by the requirements, users can add a new requirement
If the example is good for one requirement but other examples are bad, users can add it to that requirement for better compilation

Similarly if the example is bad, users can add it as counter-examples?

If the example is good/bad for one requirement but the evaluator is wrong, users can add it to that requirement for better validation


Try to get rid of the CustomInflater

It's a hack and it causes build warnings.

Not possible without re-creating the Settings screen. Merging this with #29.


[Modal window] fix button positioning

When you click on "like workshop" as a unregistered user or admin, then you will see a warning modal window
Fix the button positioning, it should be in the center

done


Incompatibility with forked spigot

Note: This is a follow up to: https://github.com/lucko/LuckPerms/pull/2091 I apologize for making this another issue, please close it if you feel it is not worth your time.
Recently, I noticed the issue of SportPaper not being able to support LuckPerms. I was really hoping to see if there is any news of an upcoming solution? Many servers like mine like to utilize "custom forked spigots" and some use SportPaper as the base making it really frustrating when you find out LuckPerms isn't supported (I really don't want to drop this permissions plugin). Is there any solution to this specific way to add compatibility? I don't mind becoming a pateron to have this feature since its more like a request. Please get back to me on any possible solutions!

As you can see from the replies in #2091, the issue is going to be resolved at the SportPaper end. You'd need to talk to the maintainers there for a status update.

For posterity, this is now fixed: https://github.com/Electroid/SportPaper/commit/3d0a5ccef48dee073c3fdbd960eefc54149eb002


Check the icons generated in the manifest.

If i check a site using the data from this bundle and check the data in the https://www.pwabuilder.com they "suggest" some missing icons for ios and microsoft:

Missing image group:
It appears that some image sizes used on Windows 10 are not in your Manifest. We will leave off any we can, and add defaults for any necessary images that are missing Platforms affected:windows10.
Missing image:
An app icon of the following sizes is required: 76x76, 120x120, 152x152 and 180x180 Platforms affected:ios.
Missing image:
An 1024x1024 app icon for the App Store is required Platforms affected:ios.
Missing image:
A launch image of the following sizes is required: 750x1334, 1334x750, 1242x2208, 2208x1242, 640x1136, 640x960, 1536x2048, 2048x1536, 768x1024 and 1024x768 Platforms affected:ios.
Missing image group:
It appears that some image sizes used on Windows 10 are not in your Manifest. We will leave off any we can, and add defaults for any  necessary images that are missing Platforms affected:windows.

I that would be ok we can update the json files.
Btw, awesome that there is some action again in this repo!

/cc @brunocodutra

Sounds great, would you volunteer for a PR @disjfa?


Fab: undefined error

Issue Description
Trying to get a Fab working in a really simple setup leveraging the latest versions of Expo, Native Base, and React Native.
My very simple app has a top level App that mimics the example I'm seeing in NativeBase-kitchen sync:
import React from 'react'

import {
  View,
  Container,
  Header,
  Left,
  Body,
  Title,
  Button,
  Icon,
  Right,
  Content,
  Text,
  Fab,
} from 'native-base'

export default class App extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      active: 'true'
    }
  }

  render() {
    return (
      <Container>
        <Header />
        <View style={{ flex: 1 }}>
          <Fab
            active={this.state.active}
            direction="up"
            containerStyle={{ }}
            style={{ backgroundColor: '#5067FF' }}
            position="bottomRight"
            onPress={() => this.setState({ active: !this.state.active })}>
            <Icon name="share" />
            <Button style={{ backgroundColor: '#34A34F' }}>
              <Icon name="logo-whatsapp" />
            </Button>
            <Button style={{ backgroundColor: '#3B5998' }}>
              <Icon name="logo-facebook" />
            </Button>
            <Button disabled style={{ backgroundColor: '#DD5144' }}>
              <Icon name="mail" />
            </Button>
          </Fab>
        </View>
      </Container>
    )
  }
}

Expected behaviour
Expect it to work, look just like a blank screen with a simple FAB.
Actual behaviour

Steps to reproduce

Create a blank expo project using the expo CLI
Install native base
Copy paste the bare example
See an error

Follow instructions as per issue template https://github.com/GeekyAnts/NativeBase/blob/master/ISSUE_TEMPLATE.txt
Failing which this issue will be closed today


Mirror window doesn't open

Environment
OS: Win10
scrcpy version: 1.25
installation method: prebuilt package for Windows
device model: SAMSUNG A32 4G

Description:
scrcpy.exe seems to start normally. phone wakes up, but no window is shown on the desktop; process ends after.
c:\tools\scrcpy>scrcpy -V verbose
scrcpy 1.25 <https://github.com/Genymobile/scrcpy>
DEBUG: ADB device found:
DEBUG:     -->   (usb)           RF8RC07ZEYR            device  SM_A325F
DEBUG: Device serial: RF8RC07ZEYR
DEBUG: Using server (portable): c:\tools\scrcpy\scrcpy-server
c:\tools\scrcpy\scrcpy-server: 1 file pushed, 0 skipped. 28.4 MB/s (42151 bytes in 0.001s)
[server] INFO: Device: samsung SM-A325F (Android 12)
[server] DEBUG: Using encoder: 'c2.mtk.avc.encoder'
DEBUG: Server connected
DEBUG: Starting controller thread
DEBUG: Starting receiver thread
[server] DEBUG: Controller stopped

c:\tools\scrcpy>[server] DEBUG: Screen streaming stopped
[server] DEBUG: Device message sender stopped

Thank you in advance for any effort :)

Try with another encoder: https://github.com/Genymobile/scrcpy#encoder

Tried all from the following list:
[server] ERROR:     scrcpy --encoder 'c2.mtk.avc.encoder' [server] ERROR:     scrcpy --encoder 'OMX.MTK.VIDEO.ENCODER.AVC' [server] ERROR:     scrcpy --encoder 'c2.android.avc.encoder' [server] ERROR:     scrcpy --encoder 'OMX.google.h264.encoder'
Result is always the same.

Does screenrecord work?
adb shell screenrecord /sdcard/file.mp4
adb pull /sdcard/file.mp4

Yes, without any problem.

scrcpy --no-display --record=file.mkv

Does it work?

Just fine.

OK, so everything works fine except opening a window on the computer.
Looks like #3431 or #3561 but was a problem on Linux.
Does scrcpy --render-driver=opengl work?
Could you test the previous version (with an older SDL version): https://github.com/Genymobile/scrcpy/releases/tag/v1.24

Using --render-driver=opengl led to exactly the same result as before.
Version 1.24 was the one I used originally, I downloaded 1.25 only after encountering this problem :) so yes, I have the same result there.

Works just fine out-of-the-box with the same device on my PC at home. It really could be caused by some overzealous antivirus or whatever...

@Grellenord I have the exact same issue with identical debug messages. I can get it to work on my personal PC but my work PC wont load the mirror window.
I'm also guessing some sort of corporate control


refactor: extract action buttons

Extract action buttons
Move to components

Feature summary
QA checklist

[x] Read state (state & power state)
[ ] Read primary battery SOC
[ ] Read primary battery cycles
[ ] Read secondary battery SOC
[ ] Read secondary battery cycles
[x] Read seat closed
[x] Read handlebar
[x] Read AUX SOC
[x] Read CBB SOC
[ ] Read CBB charging state
[ ] Update ping
[ ] SOCs are cached (after app restart)
[x] Commands can be sent (locking & hibernation)

This feels like really poor style, as it turns what was previously one reusable widget into a whole folder of single-purpose files.
The action buttons will probably change significantly in #43 (which this structure would make way harder)
I'm not yet convinced of the flutter-on-wear approach in its entirety
For those reasons, I'm not merging for now :/


simplify data struture

Currently in the JSON and internally we have data1d and data2d.

This makes things quite complex in order to display the list of spectra but also in order to parse jcamp that may contain 1D and 2D (in the same jcamp).
We should have only ONE array containing all the data called spectra
@hamed-musallam Please could you do this refactoring and the change of all the examples ? (actually it will just be replace 'data1d' by 'spectra'
I will then improve the loading of spectra to deal with 'linked' jcamp.

This is also the case in the source code and 'Analysis' object where data1d and data2d disappear to keep only 'spectra'. I would also rename the field 'data' to spectra in contrast with molecules

@lpatiny
it's not prefer to rename data to spectra because for now the first level will be like
{
spectra:{ spectra:{ it's not make sense}
}
molecule:{}
}
and we relay on the data prop name in every corner in reducer.js


Can't provision new database on existing RDBMS

I've created an Azure PostgreSQL database server using azure CLI.  I am then trying to provision new database instances using the azure-postgresql-9-6-database class, and failing.  The service instance gets stuck in 'provisioning' status, and never appears on the RDBMS.  Also, when I try to then delete the instance, it never goes away.
I can provision them both at the same time using azure-postgresql-9-6 easily.
So 2 things:

how can I troubleshoot the provisioning problem?  I don't see anything strange in the catalog logs (and nothing shows up at all in the OSBA pod logs).  svcat describe instance returns nothing interesting either, just Provisioning - The instance is being provisioned asynchronously @ 2018-09-24 19:20:02 +0000 UTC, even after it's marked for deletion.
how can I delete the stuck instance?  Both kubectl delete serviceinstance and svcat deprovision can't seem to get rid of it.

I re-installed OSBA with logLevel=DEBUG and I'm seeing this:
time="2018-09-24T21:27:01Z" level=info msg="Open Service Broker for Azure starting" commit=ab0b831 version=v1.1.0
time="2018-09-24T21:27:01Z" level=info msg="Setting log level" logLevel=DEBUG
time="2018-09-24T21:27:01Z" level=info msg="Sensitive instance and binding details will be encrypted" encryptionScheme=AES256
time="2018-09-24T21:27:01Z" level=info msg="API server is listening with TLS enabled" address="https://<IP_ADDRESS>:8443"
time="2018-09-24T21:28:45Z" level=debug msg="received provisioning request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:28:45Z" level=debug msg="parent not provisioned, waiting" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:28:45Z" level=debug msg="asynchronous provisioning initiated" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:28:46Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:28:46Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:28:49Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:28:49Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:28:53Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:28:53Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:29:01Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:29:01Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:29:17Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:29:17Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:29:45Z" level=debug msg="parent not done, will wait again" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:29:49Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:29:49Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:30:45Z" level=debug msg="parent not done, will wait again" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:30:53Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:30:53Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:31:45Z" level=debug msg="parent not done, will wait again" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:32:45Z" level=debug msg="parent not done, will wait again" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:33:01Z" level=debug msg="received polling request" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:33:01Z" level=debug msg="provisioning is deferred" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d operation=provisioning status=PROVISIONING_DEFERRED
time="2018-09-24T21:33:45Z" level=debug msg="parent not done, will wait again" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d
time="2018-09-24T21:34:45Z" level=debug msg="parent not done, will wait again" instanceID=b68f4f93-c040-11e8-895c-96dbda7b108d

I guess you have used incorrect provisioning parameters. When you created azure-postgresql-9-6-database, what do you provide for the parameter parentAlias? Actually, parameter parentAlias is the parameter "alias" when you create the DBMS using the broker. Currently there is no method to use use-provided postgre DBMS and create database on it using OSBA, but we will consider add this feature later.
And answer to your question 2: Unfortunately, I think there is no way to get rid of it, since abandoning instance in service catalog is not implemented yet: https://github.com/kubernetes-incubator/service-catalog/issues/2268. (I'm not very familiar with k8s, please correct me if I'm wrong. @krancour @jeremyrickard )

@norshtein for question 1: From the log, I think parentAlias was provided, therefore the provisioning request wasn't rejected. Instead, azure-postgresql-9-6-dbms with the corresponding alias was probably not created. So, the provisioning of this child service instance was held on to wait for the successful provisioning of its parent instance. @timwebster9 could you confirm it?

Hi @zhongyi-zhang , according to the description "I've created an Azure PostgreSQL database server using azure CLI" , I guess that he was trying to use self-hosted DBMS and create database on it using OSBA, which is not supported by OSBA for postgreSQL, and thus the parentAlias is configured incorrectly.
I think we can estimate whether we should add from-existing services to PostgreSQL and Mysql just like in SQL.

I guess that he was trying to use self-hosted DBMS and create database on it using OSBA

yes this is indeed what I doing

If so, maybe our module doc doesn't describe the parent-child mechanism clearly.

I wouldn't disagree with that :-)
I tried provisioning the DBMS with OSBA, and then the instance on top of that and it worked fine 👍 .  It's not a problem for us to do it this way.  However I think it is a useful scenario to support using existing server, as we use a mix of provisioning methods which I imagine is a common scenario.

Thanks for bringing that. For now, we have made it possible to use existing Azure SQL Server in OSBA, and we'll later investigate on Azure PostgreSQL and Azure MySQL.

Let's change the title and turn the issue to a feature request for using existing PostgreSQL.

Suggest creating a new issue for this that's just a feature request, absent the initial troubleshooting-- just helps to keep the thread focused.

@krancour it makes sense. I'll roll back the title and create a new issue.


use a config variable in the client side?

How do I reference the project.config.js object (or wherever config values are supposed to live) that is defined for my environment (ie: test, production, etc) in the client side code?
I'm trying to define where my endpoint lives based on the NODE_ENV.

https://github.com/davezuko/react-redux-starter-kit/issues/437