Issue with connectAndSetup

Seems to be some typos in the Readme, the code snippet:
YourThing.prototype.connectAndSetup = function(callback) {
  NobleDevice.prototype.connectAndSetup.call(this, function(error) {
    // maybe notify on a characteristic ?
    this.notifyCharacteristic(YOUR_THING_SERVICE_UUID, YOUR_THING_NOTIFY_CHAR, true, this._onRead.bind(this), function(err) {
      callback(err);
    });
  }.bind(this);
};

Does not work properly, also connectAndSetup/connectAndSetUp  have to spellings, is this intentional or just another typo?

Hey @larseen,
Thanks for bringing up the inconsistency, both connectAndSetup and connectAndSetUp are valid, but connectAndSetUp is preferred so I've updated the read me in https://github.com/sandeepmistry/noble-device/commit/f094b93dd299e52f62f53da993c1be96336ed24b for consistency.


Fix XMLHttpRequest event listeners

This PR fixes #187 and #179, by making the dispatch of events to listeners and the removal of listeners work in the XMLHttpRequest polyfill.
Problems occurring with the newest version of firebase (3.6.1), which probably makes use of event listeners, should be solved now.

I develop the Firebase Storage JS library.
Looks like @sprmn beat me to this fix :)
We did start using XHR event listeners in the 3.6.1 release - it happened incidentally with some large-scale changes to reduce library size (56901 -> 30275 bytes) and fix Android-specific React Native issues.

@sprmn , Great 👍  Let me merge this PR and do some tests,  hope we can solve these issues.

@sprmn Thank you so much for fixing this issue :)


Evm Optimize

This PR adds the following:

Reduce components use in EVM creation to a single Network Namespace
Original implementation involved

Veth-Pair
Bridge
Network Namespace

Reduce the number of steps to create an EVM from 18 steps to 11 steps
Reduce EVM packet latency by 33%
Update design doc and diagram to reflect design change.
Fix an issue in merak topology containerport for vhost resulting in failed deployments
Change to temporalite in the dev environment for quicker deployment
Update the delete workflow to reflect new EVM design

@phudtran You did a lot of changes in the merak-agent, did you cover the unit test for them in this PR too?

No, will cover unit tests for compute and agent after this PR.

@phudtran After the PR is merged to main, will it potentially change the deployment experience listed on the page https://github.com/futurewei-cloud/merak#kind-simple-deployment-and-e2e-test? We may need to have some sort of CI/CD jobs to ensure no broken issue is introduced.

I've tested to confirm it doesn't affect deployment. But yes we should run the deployment scenario and e2e test in CI. We are actually one step away from doing this. Just need a script to confirm that all pods are up before running the teste2e tool.


Depending on still-ex/still_imageflow as a dev dependency

Still has a dependency on an image processor for running tests, but none is included.
Since we have https://github.com/still-ex/still_imageflow, why doesn't Still depend on it on the dev & test environments only?
I.E. adding {:still_imageflow, "~> 0.1.0", only: [:dev, :test], runtime: false} to the dependencies.
Otherwise, we have no way to install and run the tests in a straightforward way, unless we have ImageMagick installed for some reason.

Yeah, you need to have imagemagick on the system. We used to have imageflow as a dev dependency, but it requires the rust toolchain and it increases the compilation times by a lot. It doesn't feel right to have people install rust and compile imageflow to contribute still and installing imagemagick is a bit simpler.

Oh, alright. I'll edit #146 to say that you need to have imagemagick installed.


[Glass] Settings

[ ] Make toggles inline.
[ ] Statistics should be a toggle and be inside settings.
[ ] Clicking on a toggle should not exit the settings screen.
[ ] It should be clear that you can open and close settings. Maybe with an arrow icon next to settings.
[ ] If settings is open add more margin to the bottom
[ ] If you hide the browser bar the hamburger icon should be at the top right of the screen. Same for when you are in the settings screen.

Not really room to change these things on uhuru level. Any changes should be asked in the browser project. This isn't part of the uhuru codebase.


[Example]: no communication to agent on PC: Ubuntu 22.04, Raspberry Pi Debug Probe

Hardware description:

Raspberry Pi 4B, running Ubuntu 22.04, arm-none-eabi-gcc version 10.3.1, latest Pico SDK
PC running Ubuntu 22.04, arm-none-eabi-gcc version 10.3.1, latest Pico SDK. The Pico is connected to PC via the Raspberry Pi Debug Probe.

RTOS:  Pico H

Installation type:  clone from this repo

Version or commit hash:   Humble

Steps to reproduce the issue

First clone and build the example on Pi 4B, without setting PICO_TOOLCHAIN_PATH. Run Micro-ros agent on Docker on the Pi. Plug the Pico using BOOTSEL, drop the .uf2 file onto the Pico.
Then clone and build example on PC, without setting PICO_TOOLCHAIN_PATH. Run Micro-ROS agent on Docker. Use OpenOCD to upload .elf file from build to Pico, via RPi Debug Probe.
Actual behavior
On the Pi: LED light on Pico turns on, agent receives topic etc. All good.
On the PC: No LED light on Pico. No signals coming in to the agent. No signals coming to minicom -b 115200 -o -D /dev/ttyACM0
Here is a dump from the upload process using OpenOCD:
$ sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program pico_micro_ros_example.elf verify reset exit"

Open On-Chip Debugger 0.11.0-g8e3c38f (2023-07-18-16:29)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "swd". To override use 'transport select <transport>'.
Info : Hardware thread awareness created
Info : Hardware thread awareness created
Info : RP2040 Flash Bank Command
adapter speed: 5000 kHz

Info : Using CMSIS-DAPv2 interface with VID:PID=0x2e8a:0x000c, serial=E6614103E773552F
Info : CMSIS-DAP: SWD  Supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 0 SWDIO/TMS = 0 TDI = 0 TDO = 0 nTRST = 0 nRESET = 0
Info : CMSIS-DAP: Interface ready
Info : clock speed 5000 kHz
Info : SWD DPIDR 0x0bc12477
Info : SWD DLPIDR 0x00000001
Info : SWD DPIDR 0x0bc12477
Info : SWD DLPIDR 0x10000001
Info : rp2040.core0: hardware has 4 breakpoints, 2 watchpoints
Info : rp2040.core1: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for rp2040.core0 on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x000000ea msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x000000ea msp: 0x20041f00
** Programming Started **
Info : RP2040 B0 Flash Probe: 2097152 bytes @10000000, in 512 sectors

target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
Info : Writing 102400 bytes starting at 0x0
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
** Programming Finished **
** Verify Started **
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000138 msp: 0x20041f00
** Verified OK **
** Resetting Target **
shutdown command invoked

This output is similar to when I upload e.g. the blink example to the Pico, using OpenOCD.
Additional information
I can run other examples on the Pico via the Debug Probe, like the hello_serial from pico/pico-examples directory (SDK repo). So the toolchain on the PC works.
Info about the Debug Probe. Without starting the OpenOCD server, it's just a matter of hands-free uploading of the .elf file. No debugging is started
https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html#uploading-new-programs-to-your-pico
I have noticed https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/issues/765, and also a download script for the alternative compiler.
But if the toolchain is not correct on the PC, how come the same toolchain works from the Pi? Besides the obvious hardware differences, the Pico receives the .uf2 file from the Pi, while it takes  the .elf file from the PC.

Hello @torlarse, do you have a functional approach? If so, could you open a PR so we can evaluate the required changes?

That's it, the example will work on the default serial port, that if I remember well is the USB one.

So, in this case, it seems that you need to write a transport that uses another UART available in the Pico Board.

This micro-ROS package provides this implementation: https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/blob/iron/pico_uart_transport.c
It is configured as the used transport here: https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk/blob/07a32caa3b6cb44d53a73d32b0e16d01cb7533e8/pico_micro_ros_example.c#L26-L33
By default, it seems to be using this USB Serial port. If you need to use another interface for communicating the micro-ROS client with the micro-ROS Agent, changes needs to be made according to the platform.
In this case, I'm not sure if you can switch the behavior of putchar and getchar_timeout_us with configuration or you need to write another implementation that uses another API that enables Pico to use some UART located in a different interface (some GPIOs maybe?).
In any case, rewriting transports in micro-ROS is common practice to adjust the application to the use case: https://docs.vulcanexus.org/en/latest/rst/tutorials/micro/custom_transports/custom_transports.html

We do not provide a debugging solution, and in the case of RPi Pico personally, I do not have debugged. In other platforms (STM32-like) an STLink with STCubeIDE is enough for step-by-step debugging.

I have not tested those examples embedded. This arbitrary stop could remember me of a stack overflow. Have you tried to get increasingly complex examples starting from the basic ones? Does the most basic examples freezes your platform?
Some other notes:

Avoid creating messages like this https://github.com/ros2/rclc/blob/64fa8fe49411647d6ea8990d5215618b456c6a27/rclc_examples/src/example_executor_trigger.c#L273, read this: https://docs.vulcanexus.org/en/latest/rst/tutorials/micro/memory_management/memory_management.html#message-memory

I would not rely on encapsulated sleep method, use platform specific:  https://github.com/ros2/rclc/blob/64fa8fe49411647d6ea8990d5215618b456c6a27/rclc_examples/src/example_executor_trigger.c#L379

Have you tried to sleep less than 1 second each executor: https://github.com/ros2/rclc/blob/64fa8fe49411647d6ea8990d5215618b456c6a27/rclc_examples/src/example_executor_trigger.c#L378

I'll test the subscriber example when I have a slot. Is there any configuration where you have this up and running?

Ok, so can we close the issue?
Have you found which was the problem?
Looking forward to your PR adding the UART transport!

Here you have the custom messages tutorial: https://docs.vulcanexus.org/en/latest/rst/tutorials/micro/custom_types/custom_types.html


InsertDocsToBookmark() not implemented

This method is used to add subDocument in the main word document

Fixed in pull request #7


Flaky test: test_random_size_crop

logs - http://jenkins.mxnet-ci.amazon-ml.com/blue/rest/organizations/jenkins/pipelines/mxnet-validation/pipelines/unix-cpu/branches/PR-14503/runs/16/nodes/282/log/?start=0
======================================================================

FAIL: test_random_size_crop (test_image.TestImage)

----------------------------------------------------------------------

Traceback (most recent call last):

  File "/work/mxnet/tests/python/unittest/common.py", line 177, in test_new

    orig_test(*args, **kwargs)

  File "/work/mxnet/tests/python/unittest/test_image.py", line 368, in test_random_size_crop

    assert ratio[0] <= float(new_w)/new_h <= ratio[1]

AssertionError:

-------------------- >> begin captured logging << --------------------

common: INFO: Setting test np/mx/python random seeds, use MXNET_TEST_SEED=1781948197 to reproduce.

--------------------- >> end captured logging << ---------------------

closing as a duplicate of this - https://github.com/apache/incubator-mxnet/issues/14718


Fix docs typos on ConfigJSON page

The introduction to JSON configuration has multiple copy/pasta typos.  The first property of the various definitions still mentions "shuffle" either in the name, description, or both sections.

https://github.com/JujuAdams/Vinyl/commit/b045ff5561e3437ebd19fa2cdf081f1746dc8a7e


Ability to enable or disable jokers from hand without removing them

Is your feature request related to a problem? Please describe.
This feature request is not related to a problem, but would improve the efficiency of the calculator.
Describe the solution you'd like
I'd like to be able to keep more than 5 or 6 jokers in my build/hand, but have the ability to temporarily  disable or enable jokers to test out different joker set combinations without needing to re-find and reset each of their values or order in my hand.
Describe alternatives you've considered
N/A
Additional context
This feature would be similar to how you can add or remove cards that you're holding to your playing hand, but instead with the jokers. I did a rough mock-up of what I'm envisioning below:

PS. Thank you for the incredibly useful tool!

This is already a feature via the "does not trigger" edition of jokers, which you can enable/disable when a joker is selected.


Implement java.nio.file

Trying to use Okio (https://github.com/square/okio) fails because it makes use of java.nio.file which is, as far as I can tell (?) not implemented by j2objc. Build fails with:
  error: okio/Okio.java:28: The import java.nio.file cannot be resolved
  error: okio/Okio.java:29: The import java.nio.file cannot be resolved
  error: okio/Okio.java:30: The import java.nio.file cannot be resolved

What kind of effort would it be to implement this? I'm open to doing it myself and submitting a PR if it would only be a few days work.
cc @boourns @carsonb

java.nio.file isn't supported by Android, which is what j2objc's JRE source is based on. We don't plan on implementing that package partly because of the lack of portability, as well as how limited the iOS file system is.
However, Android uses OkHttp and Okio. To support Okio, they just commented out the okio.Okio source and sink methods that take a java.nio.file.Path parameter. If you avoid these methods in your project's code, it will be easier to port to Android.


Commission Request: Update for v11

I am interested in commissioning an update for this module to ensure it's compatbility with v11 and Monk's Enhanced Journal.  You can find me on Discord at pixel7777 or email me at<EMAIL_ADDRESS>

Hey there, I am intending to get this updated for v11/12 eventually though I don't have a timeline for that. I'm not sure about Monk's Enhanced Journal support though, that will depend on how simple/complex it is to ensure that it works.
That being said, I'm not currently accepting commissions so while I am planning to update this I don't need compensated (and I also can't guarantee how soon).
I am open to reviewing Pull Requests from other contributors, and I don't mind if they're being commissioned to do so. However in the event that someone is commissioned to updated this, I must still approve of the changes and I am not liable financially if the changes are not acceptable or if it takes a while for me to review them, nor will I be able to compensate the contributor in the case of non-payment for any reason - all financial agreements are between the commissioner and the contributor.
If you would like to proceed with finding someone to help update this before I have a chance to do so myself, I would recommend posting your request on the League of Extraordinary Foundry VTT Developers Discord server: https://discord.gg/AKQsDTfS48
I'm going to close this issue and open two new issues in its place, one for v11 support (#19) and one for Monk's Enhanced Journal compatibility (#20). Pull Requests should reference those issues, and ideally these two changes should be separate PRs unless one of them proves to be trivial.


ios8 ,9 loading image is ok,but ios 7  loading image is failed

sorry i have Xcode 7.3 and it does not support IOS 7 simulators.
What version of Xcode are you using?

closing this. please reopen if you still have issues


Add back these blocks/items/functions and fix a bug, please!

Wanted add back:

Wrench
Solderer
Project E integration
I don't know why remove these, those are very useful, mainly the wrench and solderer.
First, the wrench can fix the below bug (later explain) thus the autocrafting will not crash because of a detect error.
Second, the solderer is a greater method for autocrafting rather than using cutter, if I want to make a processor via autocraft, the system always make a new cutter and use once only, so if I want to make 128 basic processor, thus the autocrafting will make 128 cutter first, why???

Bug:

If machine place in follow patten (e.g.):
[Solderer] <[Crafter] <[Crafter] <[Crafter]
the second crafter always show "Crafter" instead of "Solderer", but no any problem on the first on and the third one...

The Wrench is was never removed. There is already an issue for your bug and it will probably be fixed soon. Duplicate of #2005
When making the recipes for processors make sure recipes that use the cutting tool are set to enable oredict. When checking how many cutting tools it is going to make do it when requesting the craft. The crafting monitor before 1.6.4 also showed how many times it was gonna use the cutting tool for crafting which was not immediately obvious. If you do find multiple cutting tools in your system still it might be because you are crafting multiple processors simultaneously.
Project E Integration was removed because of a bug which caused significant server lag. The bug has since been found and it might make a comeback sometime in the future.
For the future, your request was immediately flagged as invalid because you removed the template. Also when requesting please be aware you are asking someone to spend a significant amount of their free time to read your request and implement fixes. Put an appropriate amount of effort into your post.


Add a few more projects

Adding a few more here. I have a few other things we should add too, but wanted to start a discussion first on organization.
The "other official projects" designation is quite confusing. For example, it includes MapLibre Navigation Android, but the Qt and Flutter packages are listed under bindings. So it's not particularly clear where the SwiftUI DSL should end up ;) (I also noticed that the iOS Navigation SDK is missing too, but will add that after we resolve the discussion points below.)
A few ideas:

If we are OK repeating items, it might make sense to put both these under multiple headings, as they are all (AFAIK) "official" projects, but that is not particularly useful for discovery groupings. I'm also not sure (this is a really subjective view) if "bindings" is even a very helpful heading. Browsers probably care more about "what are ways that I can use MapLibre and ." So, for a concrete suggestion, we could have categories for iOS, Qt, and Android. Projects could be listed in multiple categories then for better discoverability. This would also make more logical points where associated/deeply integrated libraries, such as Ferrostar, can fit in (ex: we could have categories for iOS, Android, and Turn-by-Turn Navigation).
If we don't want to repeat items, I'm not exactly sure what to do. I personally find the "other official projects" label not super helpful so I'd lean toward breaking up that list and putting items into other categories. In this scenario, it may still be useful though to highlight which projects are "official." I propose we could do that with an emoji or something with an explainer at the top. For example, ⭐? This gets into the second confusion though with what constitutes "official." Maybe we should differentiate between the projects with monetary support and the hosted ones?

Anyways, thanks for reading and I hope the ensuing discussion makes this list more awesome :)

TBH, I'll be surprised if anyone is actually reading this, let alone start to finish.
But I can relate to the need to order stuff 😁
An emoji for core project (those officially maintain by paid maplibre engineers) works work. A different emoji for hosed (under the maplibre org) can be fine too.
And in general I don't have strong feelings either way.
Not that part of the information here is copied to the maplibre-gl docs, so let's make sure this doesn't break...

TBH, I'll be surprised if anyone is actually reading this, let alone start to finish.

Fair point 😂
Ok, I just took a swing at reorganizing a few things. Here's what changed at a high level.
Emoji
I went with ✅ for core projects, and 💙 for hosted, and put a note at the top.
Category reshuffle
This frees up a bit better classification of projects by what they do / why a reader might care. Obviously the "official map rendering" and "other official" categories went away. I kept map rendering at the top.
We have a TON of projects that are all pretty closely related to "map styling" for lack of a better term. I put those in a hierarchy with a few sub-sections and rearranged the projects to match. This cleared out about half of the "utilities" section which wasn't very helpful as a classifier IMO.
We also have a lot of navigation/directions projects (including an official project that wasn't listed 😬), so I fixed that.
I had a very bad time coming up with buckets for all the mobile stuff. Bindings evokes the wrong image as a category, but most other stuff isn't really what I think of as bindings either, so I rolled with it. I put all of the higher-level mobile SDKs under Bindings > Mobile, and expanded the category with the developments from the past ~year.
Nothing in the gigantic middle really changed, except that I moved MapLibre GL Leaflet to a logical place in the JS hierarchy (verified the docs generator code and it should be fine as far as I can tell; looks like it parses comments with a regex).
Couldn't find a good spot for the demo tiles, so I put them under map/tile providers 🤷
And finally, map tile generators also emerged as a natural category.

I've just read it start to finish 🤪
Looks good.
I would consider moving the hosted projects to be at the top of their category, but this is mainly nitpicking...

I've just read it start to finish 🤪

ha! Thank you for your patience 😂

I would consider moving the hosted projects to be at the top of their category, but this is mainly nitpicking...

Good call.


Verify parsed data can be read by other functions

the task itself didnt take long, however it was the work that was done to lead up to the check that the real time was spent. I would estimate finalizing all the result parsing code took a couple hours in total across tasks


its not how it being called in the .yaml

its not how it being called in the .yaml

The model names correspond to the functions defined in hubconf.py, not the .yaml files.


Models with relationships across different databases

Hello, do you have an example with models that contain nested relationships between different databases?
For example if you had an Order model which hasMany Items  which are on the same DB but then the Items have a manufacturer which is on another DB I know if they were non nested I would use two queries with different transaction knex connections:
        await order.$fetchGraph(
           '[items]',
          {transaction: this.ordersDB.getConnection()}
        )

      await order.$fetchGraph(
         '['items.manufacturer']',
         {transaction: this.manufacturerDB.getConnection()}
       )

But If like in my given example the relation is through a model which lives on the same DB but the relation on that model lives on another DB how would that be achieved?
Thanks for any support/guidance let me know if you need me to clarify anything

Given the current state of the library and its lack of a core maintainer, as well as more general question as to wether this pattern is even a good idea in general (See https://stackoverflow.com/questions/8561412/relationships-between-tables-from-different-databases for example), I am going to close this as as a wontifx. I hope you understand.


Cluster-autoscaler: use a non-certificate based way to connect to api-server when running on master.

Ref: #968
Just like scheduler.

Done in https://github.com/kubernetes/kubernetes/pull/25357


[WIP] Don't eagerly call runMain when --start-paused is provided to web application

Description
Continuation of https://github.com/flutter/flutter/pull/39521. This doesn't seem to work locally.

Filed an issue at https://github.com/dart-lang/webdev/issues/716. I think the error may originate in the Chrome debugger - the resume signal is sent to it, but since it was never really paused, I think it rejects the resume call (since "not calling main" isn't exactly the same as pausing).
I don't know if there will need to be a fix here, but I think something will need to change in dwds first.

@jonahwilliams I pulled the fix from https://github.com/dart-lang/webdev/issues/716 and initial testing seems like this works - in VS Code we successfully get the paused event, send breakpoints, then resume, and I can hit breakpoints and see the app load.

At this point I think I'm waiting for another release? Or was this actually working

At this point I think I'm waiting for another release?

Oh yeah 🙈
I was testing with dependency_overrides and forgot about that..
@grouma @jakemac53 I'm not familiar with how often you release dwds - is there likely to be one in the near future? I wouldn't make one specifically for this, but there have been a couple of significant fixes that'd help move VS Code along :-)

We typically do releases at least once a week right now given how quickly things are changing, and are planning on releasing today afaik (last release was last monday).

Sounds good, thanks!

FYI, 0.7.5 of package:dwds is published now

Works on my computer!


Issue with inversion/retention of stereochemistry

RDKit Version: 2<IP_ADDRESS>
OS: Mac
Are you using conda? Yes
If you are using conda, which channel did you install the rdkit from? rdkit

Description:
Ran into a few strange behaviors (at least relative to what I would expect) when trying to code up a substitution reaction. Minimal examples reproduced below:
For all examples the reactant of interest is Chem.MolFromSmiles('C[C@H](Br)c1ccccc1')

We begin by testing the simple bimolecular substitution reaction, with inversion of stereochemistry at the reaction center:
reactant = Chem.MolFromSmiles('C[C@H](Br)c1ccccc1')
rxn = AllChem.ReactionFromSmarts('[C@:1][Br:2].[S:3][C:4]>>[C@@:1][*:3][*:4]')
prod = rxn.RunReactants(
    (
        reactant,Chem.MolFromSmiles('CCS')
    )
)
print(len(prod))
print(Chem.MolToSmiles(prod[0][0]))

The result is 'CCS[C@@H](C)c1ccccc1' (shown below)

However, this is actually not the expected inverted product. The reason for this I believe is due to the change of the order of the SMILES. The carbon indeed changes from [C@] to [C@@]; however, since the canonicalization changes the bond we look down to define clockwise/counter-clockwise, no true inversion occurs. Ultimately, I did not see an easy way to fix this problem (though I welcome suggestions!), so started testing a unimolecular transformation, as shown below.
reactant = Chem.MolFromSmiles('C[C@H](Br)c1ccccc1')
rxn = AllChem.ReactionFromSmarts('[C@:2]([#6:1])[Br:3]>>[C@@:2]([#6:1])[S:3]CC')
prod = rxn.RunReactants(
    (
        reactant,
    )
)
print(len(prod))
print([Chem.MolToSmiles(x[0]) for x in prod])

This example, produces both stereoisomers:

and

I understand that my RXN SMARTS is likely overly general, since '[C@:2]([#6:1])[Br:3]' may be matched in two different ways to the reactant. However, either way it matches, shouldn't the product simply invert the stereochemistry of the original match? It is a bit unclear to me why the configuration of the reactant is retained.
Investigating this behavior, I tried the less general rxn below
reactant = Chem.MolFromSmiles('C[C@H](Br)c1ccccc1')
rxn = AllChem.ReactionFromSmarts('[C@:2]([C:1])[Br:3]>>[C@@:2]([C:1])[S:3]CC')
prod = rxn.RunReactants(
    (
        reactant,
    )
)
print(len(prod))
print([Chem.MolToSmiles(x[0]) for x in prod])

This actually only produces the expected product with inversion of stereochemistry:

Lastly, I tried to isolate the behavior of the aromatic carbon causing troubles:
reactant = Chem.MolFromSmiles('C[C@H](Br)c1ccccc1')
rxn = AllChem.ReactionFromSmarts('[C@:2]([c:1])[Br:3]>>[C@@:2]([c:1])[S:3]CC')
prod = rxn.RunReactants(
    (
        reactant,
    )
)
print(len(prod))
print([Chem.MolToSmiles(x[0]) for x in prod])

This reaction only produces the unexpected product with retention.

I expect that an issue may arise because the original SMILES of the reactant, ''C[C@H](Br)c1ccccc1' is defining counter-clockwise with respect to looking down the non-aromatic CC bond, and not the cC bond.
However, I am pretty confused in general, so would really appreciate any clarification. I apologize for the lengthy issue, but hopefully the reproducible examples are of help.

@mc-robinson : I believe we have this fixed on master now. It'll be in the 2020.09.1 release (coming in mid-October).
Here are the new results for a couple of your examples:

There's a gist with more here:
https://gist.github.com/greglandrum/6f5912c1ab5b29610c8c49ca62bf75a2

Thanks @greglandrum!


processOptions.failType and dispatch in promise doesn't work

I am trying to throw an error in my promise chain with the following code :
  processOptions: { // options configuring the process hook below
    // on error/reject, automatically dispatch(repoLoadingError(err))
    failType: requestError, // action creator which accepts error
  },

  // perform async processing, Using redux-logic promise features
  // so it will dispatch the resolved action from the returned promise.
  // on error, it dispatches the using the action creator set in
  // processOptions.failType above `repoLoadingError(err)`
  // requestUtil was injected in store.js createLogicMiddleware
  process({ getState, authService, action }, dispatch) {
    const { username, password } = action.data;
    dispatch(sendingRequest(true));

    let codeUrl;
    return authService.preLogin()
      .then((res) => authService.login(username, password))
      .then((jwt) => {
        if (jwt) { // force the error
          return Promise.reject(new Error('It appear there is a problem with your account, please contact an administrator.'));
        }
        dispatch(put(jwtLoaded(jwt)));
      });

The reject doesn't get caught :
logic.js?d876:74 Uncaught (in promise) Error: It appear there is a problem with your account, please contact an administrator

This is the content of a authService.login :
  login(username, password) {
    const options = {
      method: 'POST',
      headers: {
        'Accept': 'application/json', // eslint-disable-line quote-props
        'Content-Type': 'application/x-www-form-urlencoded',
      },
    };

    const queryString = toQueryString({ username, password });

    return request(`${url.login}?${queryString}`, options)
      .then((response) => Promise.resolve(response));
  },

I have the feeling that it is not possibme to dispatch within the promise.
Is it a bug or is it me ?

Solved it using the example in #18
Be careful, even the examples from the documentation aren't up to date

@kopax Thanks for raising the issue. I believe that I need a nice usage guide that walks one through using the API and its variations. Maybe a cookbook too.
I believe the confusion lies in the fact that the API allows multiple signatures to accommodate different JS styles.
The full process signature is process(deps, dispatch, done) which allows for multiple dispatches.
However since it is common to need only a single dispatch from async processing, then omitting the done, switches to that mode. process(deps, dispatch)
And finally if you simply want to return obj, promise, or observable that resolve to actions then you don't need dispatch or done. process(deps)
I guess it would have been better to show the multiple dispatch example to avoid confusion.
I'm trying to consider how I can help people that are new to the API to get up to speed quickly. I'm thinking some guides and possibly some videos explaining things would help.
I'm not aware of any examples in the docs that are broken or not up to date, if you found any let me know and I'll update them.

In thinking more about this, I think that it would be safer for me to just show the multiple-dispatch signature since that is safer for people to get started with regardless of how they will use it. Then I can mention the other variations later.
I've started by updating the README and API doc to show using the multiple dispatch signature. I'll also go through and do the same with the examples.

Given the potential confusion with the single dispatch mode, maybe it should be eliminated altogether. I'll discuss this with the other users.

I still haven't find why my failType: requestError is ignored. I have to use the catch block my self.

I believe I understand what you are running into here. If you are using the dispatch in your process signature then the return value is ignored. The error is being caught in the promise which is returned, but then it is ignored since you are using the dispatch.
If you were to not use dispatch and just return the promise then it would work like you expect, however then you don't have a way to do multiple dispatch (unless you returned an observable).
Typically I trigger my loading state off the original action so I don't need to do multiple dispatch and the same thing for turning off the loading state (I reset it on success or error). I just have my reducer that handles the state listen for all of those actions or if you are consistent then you could even use a regex.
But if you do want multiple dispatching then currently you can't mix using dispatch and the return value.
So dispatch like you are currently
dispatch(requestSending(true)
Promise.resolve(...)
   .then((res) => res)
   .catch((err) => dispatch(requestError(err)))
   .then((err) => dispatch(requestSending(false))

or using observables (here is one way to do this trying not to vary from your original code too much. There are many ways to do this)
process({ getState, action }) {
  return Observable.create(obs => {
    obs.next(requestSending(true));
    Promise.resolve(...)
      .then(res => obs.next(success(res)))
      .catch(err => obs.next(requestError(err)))
      .then(() => obs.next(requestSending(false)))
      .then(() => obs.complete());
  });
}

Thinking for ways we might extend the API we could consider allowing the return value to be used even if dispatch is used, but then people might have to be careful with their returning in their code. When using callbacks people often don't worry much about what is being returned. So it seems to make sense to only do one or the other (use the return value or rely on dispatching). Or I guess we could have a processOption that enables dispatching of the return even if dispatch is used?
If we want promise code to be able to dispatch multiple items, then maybe there should be a way to return an object or array of things to dispatch. We would either add another processOption or a helper function that wraps. Not sure, I am always trying to not overcomplicate things. Originally I was thinking that to keep things simple I would just have people use  dispatch/done (or observables) when they need to do multiple dispatching.
I guess I need to clarify the docs for failType in some way so that people don't get caught like you did.

or using observables (here is one way to do this trying not to vary from your original code too much. There are many ways to do this)

This is the whole logic :
export const getAuthorizeLogic = createLogic({
  type: LOGIN_REQUEST, // trigger on this action
  cancelType: LOCATION_CHANGE, // cancel if route changes
  latest: true, // use response for the latest request when multiple
  processOptions: { // options configuring the process hook below
    // on error/reject, automatically dispatch(repoLoadingError(err))
    failType: requestError, // action creator which accepts error <==== does not work
    // successType: requestError,
  },
  process({ authService, action, forwardTo }, dispatch, done) {
    const { username, password } = action.data;
    dispatch(sendingRequest(true));
    let codeUrl;
    let token;
    return authService.preLogin()
      .then(authService.login(username, password))
      .then((res) => auth.code(oauthClient.clientId, oauthClient.redirectUri))
      .then((code) => {
        codeUrl = code.url;
      })
      .then(() => {
        // let's get the token
        const code = getParameter('code', codeUrl);

        if (!code) {
          throw new Error('It appear there is a problem with your account, please contact an administrator.');
        }
        return auth.token(oauthClient.clientId, oauthClient.clientSecret, code, oauthClient.redirectUri, oauthClient.scopes);
      })
      .then((jwt) => {
        if (!jwt) {
          throw new Error('It appear there is a problem with your account, please contact an administrator.');
        }
        return jwt;
      })
      .then((jwt) => {
        dispatch(sendingRequest(false));
        token = jwt;
      })
      .catch((err) => {
        dispatch(requestError(new ResponseMessage(err.message)))
        return true;
      })
      .then((err) => {
        if (err){
          forwardTo(pages.pageLogin.path); // Go to dashboard page
        } else {
          dispatch(jwtLoaded(token));
          dispatch(changeForm({ username: '', password: '' }));
          forwardTo(pages.pageDashboard.path); // Go to dashboard page
          done();
        }
      });
  },
});

// Bootstrap logic
export default [
  getAuthorizeLogic,
];

I am currently thinking this is not as good as my sagas for readability.
Would you split that in multiple logic ? It's hard to take a decision, how would you write it ?

There are many ways we could improve this. Here are a couple ideas:

async/await would help eliminate a bunch of the promise noise
refactor out main work of authenticating into a separate function so logic is only doing simple mapping to calls and dispatching.
I added a REQ_ERR_GOTO_LOGIN action so you could keep your original requestError action as only dealing with the error. When this action is used, it forwards to login and and then dispatches requestError.

Note that failType will catch thrown errors and dispatch them. The only reason it didn't work for you before is because your promises were catching them and returning them but since you were using dispatch the return values are not used (either dispatch or return, not both).
// forward to login page and dispatch requestError
export const requestErrorGotoLoginLogic = createLogic({
  type: REQ_ERR_GOTO_LOGIN,
  process({ action }) {
    forwardTo(pages.pageLogin.path); // Go to login page
    return requestError(action.payload); // return err action to dispatch
  }
});

export const getAuthorizeLogic = createLogic({
  type: LOGIN_REQUEST, // trigger on this action
  cancelType: LOCATION_CHANGE, // cancel if route changes
  latest: true, // use response for the latest request when multiple
  processOptions: {
    failType: REQ_ERR_GOTO_LOGIN // action creator for errors thrown
  },

  async process({ authService, action, forwardTo }, dispatch, done) {
    dispatch(sendingRequest(true));
    const { username, password } = action.data;
    const jwt = await performLogin(username, password);
    dispatch(sendingRequest(false));
    dispatch(jwtLoaded(jwt));
    dispatch(changeForm({ username: '', password: '' }));
    forwardTo(pages.pageDashboard.path); // Go to dashboard page
    done();
  },
});

async function performLogin(username, password) {
      const preLoginRes = await authService.preLogin();
      const res = await authService.login(username, password)(preLoginRes);
      const codeRes = await auth.code(oauthClient.clientId, oauthClient.redirectUri);
      const codeUrl = codeRes.url;
      const code = getParameter('code', codeUrl);
      if (!code) {
        throw new Error('It appear there is a problem with your account, please contact an administrator.');
      }
      const jwt = await auth.token(oauthClient.clientId, oauthClient.clientSecret, code, oauthClient.redirectUri, oauthClient.scopes);
      if (!jwt) {
          throw new Error('It appear there is a problem with your account, please contact an administrator.');
      }
      return jwt;
}

If you would prefer to not have the extra REQ_ERR_GOTO_LOGIN action then you could instead use a try catch and not apply the failType option. So instead it would look like
export const getAuthorizeLogic = createLogic({
  type: LOGIN_REQUEST, // trigger on this action
  cancelType: LOCATION_CHANGE, // cancel if route changes
  latest: true, // use response for the latest request when multiple

  async process({ authService, action, forwardTo }, dispatch, done) {
    dispatch(sendingRequest(true));
    const { username, password } = action.data;
    try {
      const jwt = await performLogin(username, password);
      dispatch(sendingRequest(false));
      dispatch(jwtLoaded(jwt));
      dispatch(changeForm({ username: '', password: '' }));
      forwardTo(pages.pageDashboard.path); // Go to dashboard page
    }  catch (err) {
          dispatch(sendingRequest(false));
          forwardTo(pages.pageLogin.path); // Go to dashboard page
    }
    done();
  },
});

Even if you don't want to use async/await then you could still use promises just pull that code into a function like I did to get it out of the logic, it doesn't need to live all in there.
You could alternatively use generators to cleanup the promise noise too. I think async/await is pretty compelling though.

Ok, I will follow your suggestion, it doesn't sounds too hard, and your prefer this for a reason.
Do you know how I could make async/await available for my application in webpack 2.0.0 (from the react-boilerplate)

In my example since I had set processOptions.failType to REQ_ERR_GOTO_LOGIN it will take any thrown error and use this to create the error action. If failType is a string, then it uses it as the action type and following flux standard action format it creates:
{ type: REQ_ERR_GOTO_LOGIN, payload: err, error: true }
If the failType is an action creator, it will call it passing in the err and then you can format the action however you like.
Yes, you would include all of your logic in the export default array so that it gets loaded. The inline exports are really only used for testing so all logic needs to be provided in the export default array to get run in the store.
For much of my testing, I usually just focus on the key parts, so I typically test the validate, transform, and process hooks if I implemented them.
So I import the logic and call the hooks directly passing in data or mocks to test.
For instance, if I had this logic:
import { createLogic } from 'redux-logic';
import { LOCATION_CHANGE } from 'react-router-redux';
import { LOAD_REPOS } from 'containers/App/constants';
import { reposLoaded, repoLoadingError } from 'containers/App/actions';
import { selectUsername } from 'containers/HomePage/selectors';

/**
 * Github repos request/response handler
 */
export const getReposLogic = createLogic({
  type: LOAD_REPOS, // trigger on this action
  cancelType: LOCATION_CHANGE, // cancel if route changes
  latest: true, // use response for the latest request when multiple

  processOptions: { // options configuring the process hook below
    // on error/reject, automatically dispatch(repoLoadingError(err))
    failType: repoLoadingError, // action creator which accepts error
  },

  // perform async processing, Using redux-logic promise features
  // so it will dispatch the resolved action from the returned promise.
  // on error, it dispatches the using the action creator set in
  // processOptions.failType above `repoLoadingError(err)`
  // requestUtil was injected in store.js createLogicMiddleware
  process({ getState, requestUtil /* , action */ }) {
    const username = selectUsername()(getState());
    const requestURL = `https://api.github.com/users/${username}/repos?type=all&sort=updated`;
    return requestUtil(requestURL) // return a promise resolving to action
      .then((repos) => reposLoaded(repos, username)); // resolve w/action
  },
});

// Bootstrap logic
export default [
  getReposLogic,
];

then I could test it like
import expect from 'expect';
import { LOCATION_CHANGE } from 'react-router-redux';

import { getReposLogic } from '../logic';

import { LOAD_REPOS,
         LOAD_REPOS_SUCCESS,
         LOAD_REPOS_ERROR } from 'containers/App/constants';
import { reposLoaded /* , repoLoadingError */ } from 'containers/App/actions';

import { createLogicMiddleware } from 'redux-logic';
import Imm from 'immutable';

describe('getReposLogic', () => {
  const username = 'jeffbski';
  const getState = () => Imm.fromJS({
    home: {
      username,
    },
  });

  it('should make request and dispatch the reposLoaded action once data returns', () => {
    const repos = [
      { id: 1, name: 'foo' },
      { id: 2, name: 'bar' },
    ];
    function requestUtil(url) { // mock requestUtil so elim network
      expect(url).toBe(`https://api.github.com/users/${username}/repos?type=all&sort=updated`);
      return new Promise((resolve) => resolve(repos));
    }
    const resultPromise = getReposLogic.process({ getState, requestUtil });
    const expectedResultAction = reposLoaded(repos, username);
    return resultPromise
      .then((action) => {
        expect(action).toEqual(expectedResultAction);
      });
  });

  it('should reject with an error if the request fails', () => {
    function requestUtil(/* url */) { // mock requestUtil so elim network
      return new Promise((resolve, reject) => reject(new Error('Not Found')));
    }
    const resultPromise = getReposLogic.process({ getState, requestUtil });
    return resultPromise
      .then(() => { throw new Error('should not be successful'); },
            (err) => {
              expect(err.message).toBe('Not Found');
            });
  });
});

But then I do include some integration tests which test not only the hooks but that everything is configured properly with the correct actions, triggers, async operation, cancellation, and all.
For those I typically use createLogicMiddleware and a few spies. You can see an example here
You can also obviously use full createStore applyMiddleware etc to do integration testing too, but it's usually easier to be a little lower level where you can see everything that is going on all the next and dispatch calls besides the data changes.
I am actually considering creating another module that will further simplify this lower level integration testing so you don't have to create spies and all that, it could just set things up for you to make it easier to get going.

Maybe we should split discussions that are in different topics into separate issues. We are all over the place in this one. If you are ok with the answers for the original topic, how about we close this one and we can create new ones for continued testing or other discussion?

I am actually considering creating another module that will further simplify this lower level integration testing so you don't have to create spies and all that, it could just set things up for you to make it easier to get going.

I like this idea.

How about we close this one and we can create new ones for continued testing or other discussion?

you are right, I am closing this one, work a bit on what you gave me and if I have further questions I'll create another thread.


Start-once services become 'Unhealthy' when launching

When launching services from a catalog with the label start-once set to true, while the container is in state Starting the respective service gets Unhealthy. This happens most of the time, tough not always. This is a short living container that starts, does its job and stops.
Couldn't figure out yet the reason. Although the container starts and stops correctly, the service resolves its state to Unhealthy at startup. Could it be because the container takes a little longer to start?
BTW this also happens with a hello-world container.
Any thoughts on this?
Rancher Version:
v1.1.4
Docker Version:
Version 1.12.3 (13776)
Steps to Reproduce:
Start or restart start-once containers and watch its service state.
Results:
The states flow is Started-once -> Unhealthy -> Active -> Started-once
Expected:
The states flow should be Started-once -> Active -> Started-once

We saw this in our 1.2.0 pre4 builds and have fixed some of the reason this was happening.  I'm going to mark this a duplicate in favor of #6586.  We will continue to track it there.


test suite: Add tests for undefined page range limits

Originally pdftopdf from cups-filters doesn't support page range with
undefined upper limit (f.e. '5-'), but I found out these page ranges
aren't checked in CUPS test suite neither.
It would be great if we could cover the use case in test suite to
prevent possible regressions in the future.

Currently you cannot verify if it works because the commit from #201 broke the test suite. More info in the ticket.

But I applied the PR on the commit before the commit from #201 locally, ran the test suite and it passed, so it could suffice for verification.

@zdohnal What were the errors you were seeing? The page-ranges attribute should only be encoded as a rangeOfInteger, with an undefined lower limit getting a value of 1 and an undefined upper limit getting a value of INT_MAX (2^31-1).
I have no problem with adding a test for this (and I should probably add some unit tests to make sure each option is encoded as expected in libcups) but the filters should never see "N-" or "-N", just "N-2147483647" and "1-N".

I have no problem with adding a test for this (and I should probably add some unit tests to make sure each option is encoded as expected in libcups)

It would be great - it's on my TODO list to do the similar thing, especially in cups-filters, where conversion from filter executables to filter functions is happening and it would be great if we had means to check about regressions.

but the filters should never see "N-" or "-N", just "N-2147483647" and "1-N".

pdftopdf saw "N-2147483647" and interpreted it as "1", so the whole document was printed instead of N- (see cups-filters PR. I see pstops filter is the only filter in CUPS which does page range checking and it does not show the issue.
But as I think about it, it would be great if we have specific tests for filters as well, instead of counting on libcups will provide sane inputs. I'll enhance the PR.

But as I think about it, it would be great if we have specific tests for filters as well, instead of counting on libcups will provide sane inputs. I'll enhance the PR.

Actually, I'll rather create a separate PR for it.

@michaelrsweet The filter tests will come in the future PR, would you mind merging this PR in the meantime?

@zdohnal I want to spend a little more time reviewing things before I merge. Test suite changes like this can have unintended consequences... :/

@michaelrsweet ok, no problem, take your time - my comment before that could implicate that there will be more stuff coming into the PR, so I wanted to make sure that you aren't waiting on me :) .


DS-2999 - removed references to Tekton and the kfp-tekton SDK

Description
Tekton is used as the backing workflow engine for DSP v1. At DSP v2, Tekton will no longer be used, and we will switch to using the Argo Workflows. The user documentation contained several references to Tekton, all of which have been removed.
How Has This Been Tested?

Merge criteria:
The user documentation contains no further several references to Tekton, all of which have been removed.

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

Closing, this PR is superseded by the changes in https://github.com/opendatahub-io/opendatahub-documentation/pull/256


Questions: How to do case insensitive replace on a string?

How to do case insensitive replace on a string?

 var res = alasql('SELECT REPLACE("SQL Tutorial", "T", "M") AS a');
  console.log(res); //  [ { a: 'SQL Mutorial' } ];
 // expected  { a: 'SQL MuMorial' };

I found that in sqlite also we get the same response. So this is not an issue with AlaSql. Hence i am closing this issue here.
Also a work around that i found  from stackoverflow anwser is to use LOWER within REPLACE like below example.
solution:
var res = alasql("SELECT REPLACE(LOWER('SQL Tutorial'), 't', 'M') AS a");
console.log(res);  // [ { a: 'sql MuMorial' } ]


Custom CSS does not work when appearence disabled [BUG]

Describe the bug

Product Flavor

[ ] Managed (https://rxresu.me)

To Reproduce

Go to 'rxresu.me'
Click on 'cv'
Scroll down to 'custom css section'
write your own commands and it does not effect, you need to enable apeearence of css but this broke CV. Apeears millions rectangle. If you disable it by click to eye icon css command becomes passive.

I need to change this command for Glalie template because there is huge blank area at summary section as default. I would like to make its margin values as 1rem
Glalie summary section's default <hr> tag css
.markdown :where(hr):not(:where([class~=not-prose] *)) {
    margin-top: 2.8571429em;
    margin-bottom: 2.8571429em
}

Expected behavior
CSS command should effect whenever eye icon turn off or turn on.
Screenshots

Desktop (please complete the following information):

OS: [Windows 10]
Browser : [chrome ]
Version : [110.0.5481.104]

When using the CSS, delete the * { block of code

I do not agree that this is a bug. The rectangles that appear is the 1px outline referenced in the custom CSS panel. If you comment out this section or delete it, you won't see them. The custom CSS is being applied appropriately.


💄(front) coalesce SASS color variables between machina and bootstrap

Purpose
The SASS color variables defined in django-machina theme is not homogeneous with colors defined in bootstrap.
Proposal

[x] replace color variables defined in django-machina theme with similar variables from bootstrap.

So basically the idea is to stick to bootstrap variable names rather than machina?

So basically the idea is to stick to bootstrap variable names rather than machina?

Yes the idea is to remove colors defined by machina, in order to have a simple color palette to start with. And also, avoid conflicts between variables defined by bootstrap and machina with a different value (e.g. $blue).


Download tool... doesn't work

I was crazy happy when I saw "Download the tool".  Then I ran it... so excited.... then I see in the "From:" field "spmtreleasesus.blob.core.windows.net" and my heart sank.  You provided all the files in the download, then made the build.application go and redownload it all and I am still getting the same error (not surprised).
Thoughts?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 88bace7b-082e-b83d-5489-a9891d2c4e3a
Version Independent ID: d2777cb8-575d-064b-481c-9c870d8420b7
Content: Troubleshooting SPMT installation issues
Content Source: migration/spmt-install-issues.md
Product: sharepoint-server-itpro
GitHub Login: @JoanneHendrickson
Microsoft Alias: jhendr

Hi Solinear:
Did you remember to  “unblock” the zip file first? Without unblocking, it will behave as you experienced; you being sent to the remote installation site.  Sorry you are having this problem -- can you try this again and let me know.
1.Download SPMT.zip package.
2.Right-click the zip file, and then click properties.
3.On the General tab, select Unblock. Click OK.
4.Open the zip file and extract all files.
5.Run the build.application file.

I did unblock it and that didn't help and it seemed to keep going out to the internet to pull down the files.  Today I went and tried again (just in case something was updated) and when I ran the build.application, it 'downloaded' in about 1 second (versus the 1-2 minutes when it pulls it from the internet) and bam! it installed and is now working.
I had tried the normal installer on the internet and it failed right immediately before redownloading the package here, unblocking, unzipping and running again, so I think it was something that changed in the installer, not my machine.
Whatever was changed, it's working now.  Thanks!

@solinear  Thank you for submitting this feedback.
From our understanding the issue has been resolved. If you feel it hasn't been resolved please re-open this issue.

@officedocsbot close

Nope not resolved.


18752 base-address upgrade

Issue #: /bcgov/entity#18752
Description of changes:

Added new vue3 base address from Assets Team.
Testing still needed to be completed.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the business-filings-ui license (Apache 2.0).

Not sure if this is what we are looking for:

You will know you have succeeded when this component can be used externally and works properly there. Hopefully it can be used in the same way as the old component. You may need to create a very simple Vue3 UI to test this.

Not sure if this is what we are looking for (but it is a start):

So there's no labels on the fields? Ask UI if we can use it like this (which is presumably the same as in the Assets/PPR UI).

Not sure if this is what we are looking for (but it is a start):

So there's no labels on the fields? Ask UI if we can use it like this (which is presumably the same as in the Assets/PPR UI).

Ok will do. Here is what the fields look like before the validation:

Not sure if this is what we are looking for (but it is a start):

So there's no labels on the fields? Ask UI if we can use it like this (which is presumably the same as in the Assets/PPR UI).

Ok will do. I will ask Yui.
Here is what the fields look like before entering any values (for reference):

Confirmed with Yui that we want the same setup as the Assets Team for the BaseAddress.

Confirmed with Yui that we want the same setup as the Assets Team for the BaseAddress.

Nice! I hoped this would be the case but now it's official.

You will know you have succeeded when this component can be used externally and works properly there. Hopefully it can be used in the same way as the old component. You may need to create a very simple Vue3 UI to test this.

Any change this will work in a Vue2 UI?
Can you do an address lookup in Storybook? (I know it needs an API key, and we won't want to put that key in any commit in GH as our repos are public!)
Are the props and events the same as the old address component?

@severinbeauvais @PaulGarewal
If your keen on testing in a Vue3 instance before committing, feel free to pull our feature branch:
https://github.com/bcgov/ppr/tree/Vue3-Upgrade-Feature-Branch
It's pretty stable, for the most part :)
Hit me up for an .env if you want to run it.
OR if you want to commit and give it a go as a true import, the above holds true as well 👍


Implement a navigator chart

Create a component that is similar to the following:
http://scottlogic.github.io/d3-financial-components/example.html

The link is dead. Is there a new place it leaves or should we close the issue?

That's an old link to the low barrel example I think


Offset ignored when min and max axis values are set

Bar charts with a date x-axis does ignores offset: true when time.min and time.max are set.
Expected Behavior

Offset should work even if time.min and time.max are set.
Current Behavior

If I let Chart.js auto scale the graph, it works just fine. However, my project involves using a date range picker which sets time.min and time.max to restrict the range of the graph, which causes half of the first and last bars to be cut off as there is no offset.
Auto scaling

With time.min and time.max

Environment

Chart.js version: 2.7.2
Browser name and version: Chrome 67.0.3396.99

can I get ,transparent doughnut chart truncate half of the chart using css with min and max limits with value
Min value : 0 and Max value : 100 and value is  60

@shanwpf Did you ever get this figured out? I am having the exact same problem.

@nwkeeley Nope, I ended up just rolling with it since the chart isn't a crucial part of my project. I suggest using another charting library if this bothers you.

Thanks @shanwpf  .. I can roll with it just like you..... - just something QA kicked back to me.
For others in the future.... the bound: 'data' works really well.... but I needed to use the time.min/max
A hack I thought of was to inject a data point at my time.min/max but that seems a bit messy..
I to shall roll with it for now.

@shanwpf @nwkeeley can you guys share a codepen or jsfiddle that showcases your issue?

My implementation is a bit complex but let me see what I can put together to demonstrate the issue - might not be until tomorrow


[WIP] Transition to OG-Core, Step 2: Update documentation/filenames

This PR adds onto the work in PR #725, which modifies the code base to more to OG-Core.
In this PR, three things are accomplished:

Instances of "ogusa" are replaced with "ogcore" and instances of "OG-USA" are replaced with "OG-Core" (this includes directory names, virtual environment names, etc.).
The documentation is updated to focus on only the theoretical elements of the model that are in OG-Core (i.e., country-specific calibration documentation is moved out of this repo).
Files that were used by OG-USA, but will not be used by OG-Core are moved out.  These include the regression directory, the cs-config directory, files related to testing on Jenkins and documentation on readthedocs.

Ok - so I'm trying to run the test locally and I noticed that my find and replace ogusa with ogcore changed contents inside of pickle files that are used for tests.  This results in an error when trying to open them.  e.g.,
____________ ERROR collecting ogcore/tests/test_parameter_plots.py _____________
tests/test_parameter_plots.py:15: in <module>
    base_params = utils.safe_read_pickle(
utils.py:364: in safe_read_pickle
    obj = pickle.load(f, encoding='latin1')
E   _pickle.UnpicklingError: unpickling stack underflow

When I download the files from master, they will open, but raises an error because information in the pickled parameters object is looking for the ogusa package, which no longer exists:
____________ ERROR collecting ogcore/tests/test_parameter_plots.py _____________
ImportError while importing test module '/Users/jason.debacker/repos/dynamic/ogcore/tests/test_parameter_plots.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../../../anaconda3/envs/ogcore-dev/lib/python3.9/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/test_parameter_plots.py:15: in <module>
    base_params = utils.safe_read_pickle(
utils.py:364: in safe_read_pickle
    obj = pickle.load(f, encoding='latin1')
E   ModuleNotFoundError: No module named 'ogusa'

What I propose here is that I combine this PR with the solution to Issue #726.  That is, in additional to the name and documentation changes, I'll go through and update the pickle files in test_io_data to make sure objects that are saved are consistent with the current API.
I will not change any actual logic in the .py files, so you can be sure that any changes in the test_io_data are just to streamline things and fix issues like those above.
What do you think @rickecon?  Are you ok with this?  I wanted to do this in two separate PRs, but didn't foresee the issues with these pickle files and there are already over 200 files being changed here, so what's a few more.
Otherwise, perhaps I can find a workaround to the above (e.g., install ogusa from GithHub in my ogcore-dev environment (alongside the ogcore) so I can open pickled parameters objects saved in ogusa.

@rickecon Let me know what you think about my question/proposal above.  Thanks!

@jdebacker. Yes. Let's just do it all here. I'll review it all. Thanks for doing this trench work.

@jdebacker. I've reviewed the currently 222 files that were changed. I wanted to document the 36 files that were removed to make sure they all end up in PR #40 of the OG-USA-Calibration repo or to make sure we have a reason for getting rid of them.
36 REMOVED FILES:
.jenkins_wrapper.sh
.readthedocs.yml
.regression.txt
ogusa/__init__.py
ogusa/data/ability/FR_wage_profile_tables.xlsx
ogusa/data/demographic/demographic_data.csv
ogusa/data/demographic/mort_rates2011.csv
ogusa/data/demographic/mortality_rates.csv
ogusa/data/demographic/pop_data.csv
ogusa/data/labor/cps_hours_by_age_hourspct.txt
ogusa/data/tax_functions/TxFuncEst_baseline_CPS.pkl
ogusa/data/tax_functions/TxFuncEst_baseline_PUF.pkl
ogusa/data/wealth/scf2007to2013_wealth_age_all_percentiles.csv
calibration/calibrate.py
calibration/labor.py
calibration/wealth.py
calibration/wealthinit.py
cs-config/install.sh
cs-config/setup.py
cs-config/write_output.py
cs-config/cs_config/__init__.py
cs-config/cs_config/functions.py
cs-config/cs_config/helpers.py
cs-config/cs_config/tests/__init__.py
cs-config/cs_config/tests/test_functions.py
docs/book/content/calibration/UBI.md
docs/book/content/calibration/bequests.md
docs/book/content/calibration/demographics.md
docs/book/content/calibration/earnings.md
docs/book/content/calibration/exogenous_parameters.md
docs/book/content/calibration/macro.md
docs/book/content/calibration/matching_lwi.md
docs/book/content/calibration/tax_functions.md
regression/regression_results.zip
regression/run_reg_reforms.py
regression/test_regression.py

@jdebacker. You decide what logo you want for OG-Core from the two options in Issue #735. I'll make the OG-Core_logo_long.png and OG-Core_logo_gitfig.png versions and submit them as a PR to your branch. I am also happy to make a logo that is different. I just want something for this PR.

@rickecon Thanks for the thorough review of the changes thus far.
Here's some notes to document some of the removed files:
ogusa/__init__.py is not removed.  It's now at ogcore/__init__.py
Need to move to OG-USA-Calibration

ogusa/data/labor/cps_hours_by_age_hourspct.txt: is used when plotting model results against the data in output_plots.py.  Will want to remove from this repo and place in OG-USA-Calibration, but will then need to changeoutput_plots.ss_profiles to take a data argument to plot a series like this.

No need to replicate:

.regression.txt:Was used for testing on Jenkins, but to my knowledge, no one has used this in 5 years or so.
.jenkins_wrapper.sh:Was used for testing on Jenkins, but to my knowledge, no one has used this in 5 years or so.
.readthedocs.yml: API docs now created with Jupyter Book
ogusa/data/demographic/demographic_data.csv: OG-USA-Calibration demographics.py downloads these data
ogusa/data/demographic/mort_rates2011.csv: OG-USA-Calibration demographics.py downloads these data
ogusa/data/demographic/mortality_rates.csv: OG-USA-Calibration demographics.py downloads these data
ogusa/data/demographic/pop_data.csv: OG-USA-Calibration demographics.py downloads these data
ogusa/data/ability/FR_wage_profile_tables.xlsx: Not used.  Regression coefficients hardcoded into income.py, which is already moved to OG-USA-Calibration.
calibration/wealth.py: Not used.  Much of this was replicated in ogusa/wealth.py or other modules.
ogusa/data/wealth/scf2007to2013_wealth_age_all_percentiles.csv: No longer relevant.  SCF data now read in with ogusa/wealth.py
ogusa/data/tax_functions/TxFuncEst_baseline_CPS.pkl: No longer relevant: default tax functions parameters will be in default parameter JSON files.
ogusa/data/tax_functions/TxFuncEst_baseline_PUF.pkl: No longer relevant: default tax functions parameters will be in default parameter JSON files.

May want to move if doing regression tests  But they will be archived in 0.6.4 for reference later if we don't want to do this now (which we might now since we almost never run these tests).
regression/regression_results.zip
regression/run_reg_reforms.py
regression/test_regression.py

Not sure about -- these files are old and have not been used in a while.  Some parts of them already in OG-USA-Calibrate (e.g., kernel density estimator, constructing a VCV matrix for the data moments).   They will be archived in 0.6.4 for reference later if needed as develop calibration further.
calibration/calibrate.py
calibration/labor.py
calibration/wealthinit.py

Already moved
docs/book/content/calibration/UBI.md
docs/book/content/calibration/bequests.md
docs/book/content/calibration/demographics.md
docs/book/content/calibration/earnings.md
docs/book/content/calibration/exogenous_parameters.md
docs/book/content/calibration/macro.md
docs/book/content/calibration/matching_lwi.md
docs/book/content/calibration/tax_functions.md

Will want to move over to get Compute Studio set up (though no need to do right away as OG-USA 0.6.3 already running on C/S and changes here won't affect that):
cs-config/install.sh
cs-config/setup.py
cs-config/write_output.py
cs-config/cs_config/__init__.py
cs-config/cs_config/functions.py
cs-config/cs_config/helpers.py
cs-config/cs_config/tests/__init__.py
cs-config/cs_config/tests/test_functions.py

@jdebacker. This PR removes the 8 calibration chapters from the documentation. I have posted those chapters' filenames below along with their Jupyter Book reference tags in parentheses.
docs/book/content/calibration/UBI.md (Chap_UBI)
docs/book/content/calibration/bequests.md (Chap_Beq)
docs/book/content/calibration/demographics.md (Chap_Demog)
docs/book/content/calibration/earnings.md (Chap_LfEarn)
docs/book/content/calibration/exogenous_parameters.md (Chap_Exog)
docs/book/content/calibration/macro.md (Chap_MacroCalib)
docs/book/content/calibration/matching_lwi.md (Chap_matchingLWI)
docs/book/content/calibration/tax_functions.md (Chap_TaxCalc)

We need to take out from the remaining chapters any references to the reference tags to these removed chapters. In some cases, we might want to change the wording to point to the correct chapter in the country-specific documentation. I have submitted a PR to @jdebacker's source branch with my suggested changes.

@jdebacker. I created a fresh conda environment ogcore-dev from your branch, followed by pip install -e . to install the ogcore package. I tried to run run_examples/run_ogcore_example.py, but it fails because of the import taxcalc line. We removed that dependency from environment.yml. And I think it is a good idea to remove that dependency from OG-Core. Maybe we could pip install that dependency manually in the code for run_ogcore_example.py. But I haven't ever done that before.

@rickecon writes:

@jdebacker. I created a fresh conda environment ogcore-dev from your branch, followed by pip install -e . to install the ogcore package. I tried to run run_examples/run_ogcore_example.py, but it fails because of the import taxcalc line. We removed that dependency from environment.yml. And I think it is a good idea to remove that dependency from OG-Core.

Got it -- I just removed the taxcalc import from this script.  The PR is a WIP at the moment, though and I haven't confirms this script runs.  I want to get all tests passing first and I still have work to do there.

Maybe we could pip install that dependency manually in the code for run_ogcore_example.py. But I haven't ever done that before.

We'll just make sure all scripts in this repo, including any example script, do not rely on taxcalc. The examples for country specific models will use their affiliated microsimulation model(s), such as taxcalc, but OG-Core won't have any of those as dependencies.

@jdebacker . The changes in text_tax.py and test_aggregates.py look good to me.

@rickecon Some updates on files to move:

Need to move to OG-USA-Calibration

ogusa/data/labor/cps_hours_by_age_hourspct.txt: is used when plotting model results against the data in output_plots.py. Will want to remove from this repo and place in OG-USA-Calibration, but will then need to changeoutput_plots.ss_profiles to take a data argument to plot a series like this.

I changed output_plots.ss_profiles to it takes a data series as an argument, rather than looking for this specific file.  But I think we should not move cps_hours_by_age_hourspct.txt to OG-USA-Calibration.  If this file is important, OG-USA-Calibration` should include functions to create it from source data.

Will want to move over to get Compute Studio set up (though no need to do right away as OG-USA 0.6.3 already running on C/S and changes here won't affect that):

cs-config/install.sh
cs-config/setup.py
cs-config/write_output.py
cs-config/cs_config/init.py
cs-config/cs_config/functions.py
cs-config/cs_config/helpers.py
cs-config/cs_config/tests/init.py
cs-config/cs_config/tests/test_functions.py

These are moved in OG-USA-Calibration PR #40

May want to move if doing regression tests But they will be archived in 0.6.4 for reference later if we don't want to do this now (which we might now since we almost never run these tests).
regression/regression_results.zip
regression/run_reg_reforms.py
regression/test_regression.py

My suggestion it to not move these files.  Something like this can be created in county-specific repos if think we'll use unit testing there.

Not sure about -- these files are old and have not been used in a while. Some parts of them already in OG-USA-Calibrate (e.g., kernel density estimator, constructing a VCV matrix for the data moments). They will be archived in 0.6.4 for reference later if needed as develop calibration further.
calibration/calibrate.py
calibration/labor.py
calibration/wealthinit.py

These are moved in OG-USA-Calibration PR #40 but will need to be cleaned up in that repo (they haven't been used in a while).

@rickecon Last two commits since your comment will be necessary for tests to pass.
I can't figure out why all the checks aren't running on this branch anymore.

@jdebacker . I ran the full pytest suite and got three errors--one in test_SS.py and both tests in test_execute.py.  All three errors are FileNotFoundErrors. It looks like it is not finding the following pickle files:

./ogcore/tests/test_io_data/run_SS_reform_baseline_spend_use_zeta.pkl
./ogcore/tests/OUTPUT_BASELINE/SS/SS_vars.pkl
./ogcore/tests/OUTPUT_BASELINE/SS/SS_vars.pkl

ogcore/tests/test_SS.py .......................F.......                  [  7%]
ogcore/tests/test_TPI.py ......................                          [ 12%]
ogcore/tests/test_aggregates.py ...............................          [ 20%]
ogcore/tests/test_basic.py ....                                          [ 21%]
ogcore/tests/test_elliptical_u_est.py .......                            [ 22%]
ogcore/tests/test_execute.py FF                                          [ 23%]
ogcore/tests/test_firm.py ..........................                     [ 29%]
ogcore/tests/test_fiscal.py ...............                              [ 33%]
ogcore/tests/test_household.py ........................................  [ 42%]
ogcore/tests/test_output_plots.py .....................................  [ 51%]
ogcore/tests/test_output_tables.py .............                         [ 54%]
ogcore/tests/test_parameter_plots.py ................................... [ 63%]
                                                                         [ 63%]
ogcore/tests/test_parameter_tables.py .......                            [ 64%]
ogcore/tests/test_parameters.py .............                            [ 68%]
ogcore/tests/test_run_example.py .                                       [ 68%]
ogcore/tests/test_run_ogcore.py .                                        [ 68%]
ogcore/tests/test_tax.py ...............................                 [ 75%]
ogcore/tests/test_txfunc.py .........................                    [ 81%]
ogcore/tests/test_user_inputs.py .........                               [ 84%]
ogcore/tests/test_utils.py ............................................. [ 94%]
...................                                                      [ 99%]
ogcore/tests/test_wealth.py ..                                           [100%]
=========================== short test summary info ============================
FAILED ogcore/tests/test_SS.py::test_run_SS[Reform, baseline spending, use zeta]
FAILED ogcore/tests/test_execute.py::test_runner_baseline - FileNotFoundError...
FAILED ogcore/tests/test_execute.py::test_runner_reform - FileNotFoundError: ...
=========== 3 failed, 413 passed, 58 warnings in 19419.59s (5:23:39) ===========

The traceback for the test_SS.py failure is the following:
_______________ test_run_SS[Reform, baseline spending, use zeta] _______________

baseline = False, param_updates = {'baseline_spending': True, 'use_zeta': True}
filename = 'run_SS_reform_baseline_spend_use_zeta.pkl'
dask_client = <Client: 'tcp://<IP_ADDRESS>:64617' processes=7 threads=14, memory=34.36 GB>

    @pytest.mark.parametrize('baseline,param_updates,filename',
                             [
                              (True, param_updates1, filename1),
                              (False, param_updates9, filename9),
                              (True, param_updates2, filename2),
                              (False, param_updates10, filename10),
                              (True, param_updates3, filename3),
                              (True, param_updates4, filename4),
                              (False, param_updates5, filename5),
                              (False, param_updates6, filename6),
                              (False, param_updates7, filename7),
                              (False, param_updates8, filename8),
                              (False, param_updates11, filename11)
                              ],
                             ids=[
                                  'Baseline', 'Reform, baseline spending',
                                  'Baseline, use zeta',
                                  'Reform, baseline spending, use zeta',
                                  'Baseline, small open',
                                  'Baseline, small open use zeta',
                                  'Reform', 'Reform, use zeta',
                                  'Reform, small open',
                                  'Reform, small open use zeta',
                                  'Baseline, delta_tau=0'
                                  ])

    @pytest.mark.local
    def test_run_SS(baseline, param_updates, filename, dask_client):
        # Test SS.run_SS function.  Provide inputs to function and
        # ensure that output returned matches what it has been before.
         The run_ogcore_example.py script runs great.

@jdebacker . Both tests in test_execute.py now pass.
ogcore/tests/test_execute.py ..                                               [100%]
===================== 2 passed, 8 warnings in 107.82s (0:01:47) ====================

@jdebacker . The test_SS.py tests in the test_run_SS function all pass now. Merging.
ogcore/tests/test_SS.py ...........                                                     [100%]
======================== 11 passed, 13 warnings in 1084.06s (0:18:04) ========================


To Do: fix max file size limit on flask

Error message:
19 client intended to send too large body: 2014188 bytes, client:  server: , request: "POST / HTTP/1.1", host: "test-yurui.us-west-2.elasticbeanstalk.com", referrer: "http://test-yurui.us-west-2.elasticbeanstalk.com/"

The error message you provided indicates that the client tried to send a request with a payload larger than the allowed limit on the server. By default, Flask has a payload limit of about 1 MB.
To increase the payload limit in your Flask application, you can update the MAX_CONTENT_LENGTH configuration parameter. For example, to increase the limit to 10 MB, add the following line to your application:
application.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024  # 10 MB

This line should be added outside the if __name__ == "__main__": block, just like the UPLOAD_FOLDER configuration. This will set the maximum allowed payload size to 10 MB for file uploads.
However, keep in mind that increasing the limit may have implications for the performance and security of your application. Make sure to choose an appropriate value based on your use case and the resources available on your server.


gomobile: URGENT: building for iOS simulator, but linking in object file

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
1.9.2
Does this issue reproduce with the latest release?
YES
What operating system and processor architecture are you using (go env)?
macOS x86_64
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/openthread/go"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.9.2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.9.2/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/8y/fl7bxlp163b8mtx9_v__6mxm0000gn/T/go-build723202614=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
What did you do?
running gomobile ios demo
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
build hello.framwork, then build xcode project
What did you expect to see?
no warning
What did you see instead?
there is warning "URGENT: building for iOS simulator, but linking in object file (/Users/openthread/go/src/golang.org/x/mobile/example/bind/ios/Hello.framework/Hello(000001.o)) built for OSX. Note: This will be an error in the future."

CC: @eliasnaur

build hello.framwork, then build xcode project

More detail would be helpful. What commands did you follow to build hello.framework? What version of Xcode are you using, and what commands did you use to build the Xcode project?

I can't reproduce this with Xcode 9.4.1, Go 1.10.1 and the latest version of gomobile (rev. 6621de06e1e9d52c38a8c542770bdbeac9ecfef6). I built Hello.framework with
$ gomobile bind -target ios golang.org/x/mobile/example/bind/hello
and then I built (and ran) the hello Xcode project on the iPhone SE emulator. The only warning I saw was about updating the project settings.

after I upgrade to go 1.10.3, remake hello.framework, warnings disappear

@eliasnaur this issue resolved : )
Thank you for your help : )


docs: improve clarify

Applicable spec:
Overview
Follow up to: https://github.com/canonical/github-runner-image-builder/pull/19

Rationale

Module Changes

Library/Dependency Changes

Checklist

[x] The contributing guide was applied
[x] The documentation is generated using src-docs
[x] The PR is tagged with appropriate label (urgent, trivial, complex)
[x] The application version in pyproject.toml is incremented

The docs look great! I approve :+1:

@yanksyoon Is this PR still in progress?

@amandahla yup, will look into it when i've got time, thanks :)


Add a find feature

As a user with some experience, I can find for a specific student based on some keyword, so that I can quickly find and view or make changes to his information.

Limitations
Currently, AB3 already have a find feature, although with some limitations:

can only find words within the person's name
(ie. u can't filter via tags, address or phone)

can only search whole words
(eg. find ale will not return person Alex Goh. u need to enter find alex)

keywords are forced to be logically-OR with each other
(ie. find alex goh returns Alex Goh and Calvin Goh)

Suggested plan

implement ability to find/filter by tags/user-info
(eg. address:choa chu subject:math or a/choa chu s/math)

allow partial-word matches
(eg. find ale returns Alex Goh)


Handle errors where no response is received

This fixes the error cause when no response object was passed into the custom error building function. It will now have text: undefined when no response object is passed.
Fixes: #68

how about response.text -> (response ? response.text : null) || error.toString() or something like that?

yeah, that's better. there shouldn't be any case where no error is returned, right?

no response, no error, not likely. there also directly use error.status so
it's safe to call toString() too :)
2016-09-13 1:54 GMT+08:00 Riley Tomasek<EMAIL_ADDRESS>
yeah, that's better. there shouldn't be any case where no error is
returned, right?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dropbox/dropbox-sdk-js/pull/69#issuecomment-246433348,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKsHfUrL0fpCuip6iNzWhdPQ36bKT6Lks5qpZHRgaJpZM4J6K5H
.

--
Ulion

@braincore i think this is good to merge. i got kicked out of the dropbox organization so i lost all of my permissions... can you email me your dropbox email at<EMAIL_ADDRESS>

Oh, I just added a PR solving the same issue. Will close the duplicate #70 . Looking forward to getting this merged!

When will this be available through npm?

@birkskyum I just released it to npm as version 2.2.1.


Add test case to check \Slim\Psr7\Response::filterReasonPhrase()

The test case checks if the method works as expected even when passed a class that defines a __toString() method.
Actually, I am using the public withStatus() method, which then internally calls the protected method filterReasonPhrase().
Alternatively, we could implement the test case as follows (i.e. using reflection to turn the filterReasonPhrase() method into a public method and then call it directly):
    public function testFilterReasonPhraseValidObject()
    {
        $mock = $this->getMockBuilder('ResponseTestReasonPhrase')->setMethods(['__toString'])->getMock();
        $mock->expects($this->once())
            ->method('__toString')
            ->will($this->returnValue('Slim OK'));

        $response = new Response();
        $method = new ReflectionMethod($response, 'filterReasonPhrase');
        $method->setAccessible(true);
        $this->assertEquals('Slim OK', $method->invoke($response, $mock));
    }

What do you prefer?

Coverage increased (+0.1%) to 94.932% when pulling 9408d19c6263a00e44473762261b33e8fa49e422 on adriansuter:patch-2 into ac2ca9bbb37b645588e859ab1c824087dacfe4ed on slimphp:master.

I like using reflections as little as possible. Doing tests that follow the code paths are better in my opinion. The test you committed is good!

Thanks.


Saving the output of show_in_notebook as static image

Is this a possibility? Because as_pyplot_figure just saves a bar graph and the output shown in the notebook seems to be much more intuitive.

Agreed, this would be a very useful feature.

@payamv3 So you can use save_to_file() which generates an html file that looks like a similar output to of jupyter.


Testing on Android hardware

Looking for testers to help test this library on physical Android devices and submit PRs against them.

I Android, the emoji icons are showing too big. I can help you, cause I have a lot of Android hardware. I will fork your project and fix for Android.

@shimatai Could you share a screenshot? You can adjust the sizes of the icons by using the columns prop. Default is 6


[Request] [Enhancement] Option for JSON output

Hello,
Currently Blogs/blogname/ contains images.txt, quotes.txt and the like. Their format is easy to understand but has poor parsability, and can be broken with some malformed text input since there is no escaping or quotation in the values of the key-value pair.
Since Blogs/Index/* already uses JSON as it's format, I'd like to see the metadata move towards JSON as well. This would allow me to rebuild the blog from the dump.
I also think it would be good to move towards JSON as a default by the next major release, but offer the option of txt/json until the next major update (as some other users may already depend on the txt based key-value pair).
Cheers,
NC.

Is this now implemented?

I think I did that already weeks ago, ..
https://github.com/johanneszab/TumblThree/releases/tag/v<IP_ADDRESS>
https://github.com/johanneszab/TumblThree/commit/196df7378d4b1d43cb90f9cb26b55b9025cbebd2
https://github.com/johanneszab/TumblThree/commit/bbc21813a3140de271f3300835fd22e8a417ba26

Missed that. Thanks


MattSidor/fix import path/#92

Alaska Airlines Pull Request
Fixes: #92
Summary:

corrects file path for import statement (was not working in Jest jsdom environment)
updates developer readme with correct port number

Type of change:
Please delete options that are not relevant.

[ ] New capability
[ ] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[X] Other (fixes problem specific to consumers' testing environments)

Checklist:

[X] My update follows the CONTRIBUTING guidelines of this project
[X] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

:tada: This PR is included in version 1.2.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: tile padding prop codemod

Proposed behaviour
Add replace-prop-value codemod which can replace the value for a prop for any component.
Add tile-update-padding-prop codemod which replaces the padding prop on Tile to be p and updates the values as below:
"XS" -> 1
"S" -> 2
"M" -> 3
"L" -> 4
"XL" -> 5
Current behaviour
These codemods do not currently exist.
Checklist

[x] Release notes (Conventional Commits)
[x] Unit tests
[ ] Readme updated

Additional context
Testing instructions

:tada: This PR is included in version 1.5.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[BUG] RegexpExtract OOM with large batch sizes

Describe the bug
Customer has a query where they are using regexp_extract in side of a join that becomes a BHJ.  If we run with the full batch size using 2 concurrent tasks this OOMs.  If you cut the batch size down to 256m it runs ok.
The query looks like this:
inner join sometable on
	(foo =  case when id like '%-val-%' then regexp_extract(id, '(\\\\d+)-val-(\\\\d+)', 1) else val end
	and id2 = case when id like '%-val-%' then regexp_extract(id, '(\\\\d+)-val-(\\\\d+)', 2) else -1 end)
where

It would be nice if we can investigate a way to batch or something so we don't OOM and have to cut the batch size down since it hurt performance of other execs and queries in this same application.

Duplicate of https://github.com/NVIDIA/spark-rapids/issues/7640


Support for a "book form" PDF

Sorry about the issue title. What I mean specifically is to support multiple markdown files to create one PDF.
This would permit a scenario of writing a book or article with multiple chapters or sections, where each chapter/section is in its own markdown file.

Hi @mandolyte ,
That should be very easy to implement. Although, as we have the -new-page-on-hr  option, one could easily concatenate all MD files into one file, with '---'  between each segment to achieve the same result.
Let me know if you reckon that's not enough or if I've misunderstood your intention.
Cheers,

That's true. Forgot about that feature you added. Plus, I suspect that if
one is using markdown, then being able to write a script to concentrate the
files together with the rule tucked in-between the files is a skill they
know.
This still might be helpful for those who can't do that. So at best this
idea has low priority.
Thanks for the reminder. I do have a use case for this. I was using pandoc,
but this should be easier
On Wed, Nov 1, 2023, 8:25 AM Jesse Portnoy @.***> wrote:

Hi @mandolyte https://github.com/mandolyte ,
That should be very easy to implement. Although, as we have the
-new-page-on-hr option, one could easily concatenate all MD files into
one file, with '---' between each segment to achieve the same result.
Let me know if you reckon that's not enough or if I've misunderstood your
intention.
Cheers,
—
Reply to this email directly, view it on GitHub
https://github.com/mandolyte/mdtopdf/issues/48#issuecomment-1788868602,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ2ZXOAEUQWILX4QOLV323YCI5VFAVCNFSM6AAAAAA6NXP3DSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBYHA3DQNRQGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @mandolyte ,

Thanks for the reminder. I do have a use case for this. I
No worries. Implemented your suggestion here: https://github.com/mandolyte/mdtopdf/pull/51. This is included in the 2.2.3 release.

Cheers,


Surface replay? on workflow contexts

Adds a method to Temporal::Workflow::Context and Temporal::Testing::LocalWorkflowContext for determining if a replay is occurring. This makes it possible to write a replay-aware custom logger or metrics emitter for other logging libraries besides the built-in Ruby logger. Specs for LocalWorkflowContext are extended to cover this new method and a new specs file is added for testing Workflow::Context.

My only slight concern would be that people might think they can safely use replay? for flow control. I understand your use case though and I'm not sure how else we'd satisfy it.

After doing some more digging, I think we can get what we need without this change

Inject our logger during configuration via Temporal.configure { |config| config.logger = foo } because its API is a superset of the logger gem's API
Wrap this logger by formatting the messages within an adapter. This appears to be doable with a relatively small amount of code for our use case
For metrics, there are already adapters and a null metrics object that should be able to allow for a switch-out pattern, but we'll have to figure out the details when addressing metrics