Content flashes on page revisit even with Turbolinks enabled

Hi! 👋 Very cool gem.
It's quite possible that I'm misunderstanding the intent, so this may not be a bug. Whenever I re-visit a Turbolinks page that has a render_async on it, the render_async runs again (which is great) resulting in an empty space or placeholder loading content (which is not ideal).
The hope was for this particular sometimes slow-loading page that we could

draw a loading spinner until the content is returned
Turbolinks caches the page
Upon cache restore:

the content is restored as it was from the Turbolinks cache
render_async calls the server
if content is different, it's replaced, but otherwise users don't see this

This happens with render_async and render_async_cache.
I made sure to follow the documentation closely, (set the turbolinks option in an initializer, the content_for is in the <head>) but I can't seem to make this work with a fresh Rails <IP_ADDRESS>. or 6.1rc1 app. Am I misunderstanding what should happen here or is this a bug?

Hey, @bbugh. Thanks for opening an issue about this.
About the 1. point on loading a spinner, did you try out an option for setting a placeholder from the docs? Not sure if that helps.
What we do when you set the turbolinks to true in the gem's settings, is that we load render_async on turbolinks:load event. And turbolinks:load event from their docs does the following:

Turbolinks triggers a series of events during navigation. The most significant of these is the turbolinks:load event, which fires once on the initial page load, and again after every Turbolinks visit.

So each time you visit a page, the render_async will listen out for the turbolinks:load event and reload. That is the logic behind it. Not sure if this fits your use-case or helps you somehow?

Ah, I see now. Thanks for explaining in detail.

"on first load, use the placeholder content, on future loads just update the DOM differences."

This sounds like a pretty cool feature we could add. What you described with the data-loaded set to true seems like an easy solution.
But, what I am worried about here is that we need to somehow tell Turbolinks to keep the previous "state" of loaded render_async. The original problem seems to be the flashing of the content on page revisit. This means that we need to cache contents of the loaded render_async somewhere on the frontend so it doesn't show the placeholder (maybe Turbolinks can do this for us with its preview functionality). I'd have to try this out to be sure.
What would be extra helpful is if you can recreate your problem in a small Rails 6 + Turbolinks app. I have one here if you want to do it quickly. I could then play around with it and implement this feature. What do you think?

Thanks for the reply! I will check out your sample project.
Luckily, Turbolinks caches the page right before it draws a new one, not when it's first loaded, so it's correctly caching the content that render_async loads. Turbolinks is caching a copy of the async rendered content, but then render_async activates and removes it.

Turbolinks restores the page, including the previously fetched render_async content
render_async activates and removes/placeholders the rendered section
render_async renders the server result.

I believe that the only required change is to have some way to tell render_async not to remove existing content when it's been loaded once (as an option, presumably), like this matrix:

options.keepExistingContent
isAlreadyLoaded

true
true
do nothing to content, replace (merge?) when complete

true
false
render placeholder/empty until loaded

false
any
render placeholder/empty until loaded

Awesome, thanks for providing all this info, it will be valuable for me. I will try to implement this as the next thing. If you find time to recreate a reproducible demo before I fix it, it will be even better.

Hey, @bbugh, I investigated this issue a bit. Turns out that Turbolinks has 2 types of visits - the Application visit and the Restoration visit. It turns out that the Turbolinks does the following when you click a link (the Application visit):

You visit page 1
render_async loads content
You visit page 2 and Turbolinks caches page 1 together with content that render_async loaded
You click on the link to visit page 1
Turbolinks first shows a preview of the cached version with content that render_async loaded AND makes a request to load the page again
Page gets loaded and replaces the cached version with the server response (which has the spinner, BTW)
render_async is triggered again and replaces the spinner

But, if you try to do the following (the Restoration visit):

You visit page 1
render_async loads content
You visit page 2 and Turbolinks caches page 1 together with content that render_async loaded
You click BACK in the browser to visit page 1
Turbolinks first shows a preview of the cached version with content that render_async loaded

Everything is fine this way because what happened is a Restoration visit.
So, to sum up, there is not much here to do except to try to override what Turbolinks does, and that is not recommended in their README.
Or we could try to save a previous response body, and wait for turbolinks:load event, put the previous body in the container - but this won't work on all occasions. For example, if you don't set container_id it will get changed on each page visit, and we can't keep track of what to cache.
Anyway, I just wanted to give you an update and document what I found out so far. I might try to add such a feature, but right now it seems to complex. I will keep you posted. Please, let me know if you have any questions or suggestions.


[Visual Studio Code Recent Projects] Cannot find remote projects

Extension – Visual Studio Code Recent Projects
Author: @thomaspaulmann

Description
Cannot open projects opened via SSH.

It worked as expected weeks ago, not sure what broke this.
Steps To Reproduce

Open the extension

The current behavior
The extension only shows the local projects/files recently opened.
The expected behavior
To show both local and remote projects.
Raycast version
Version: 1.34.1

I also have this issue.

So it's only remote projects that are not working, right?
@macbookandrew do you have an idea about this one?

Hi @Aiee and @yug2005 - could you try to see if it works for you in the latest version?

For me, it is displaying an error screen.

@yug2005 could you please press ⌘+k and cope the error and paste it?

TypeError: The "path" argument must be of type string. Received undefined

@yug2005 what version of Visual Studio Code do you have?

@yug2005 what version of Visual Studio Code do you have?

1.67.2

Can you help me debug it?
Can you catch me in Slack or in a DM on Twitter if you have that?

@macbookandrew do you have time to help me out with bug or two? You can reach me in Slack or Twitter DM :)

@pernielsentikaer are you able to reproduce this?

Not yet since I didn't get any data, I found another missing thing that you maybe want to help with? Before changing to the new SQL format we filtered out deleted paths, this seems to be forgotten and will break the extension - do you think you could help with that @macbookandrew

@pernielsentikaer I vaguely recall seeing something like that…do you recall roughly when that would have been working?
(I’m primarily a PHP/web backend developer and just hack on JS/React projects, so I’d prefer to find what was working and replace that vs. writing it from scratch)

Hi @macbookandrew @pernielsentikaer,
Just an update for you guys, the extension now can load remote projects now. Seems the recent update fixed the problem.
Thanks!


Add "watch" stats

It'd be awesome if we can add a "watch" stats as well to the dashboard.
Stars, issues and forks are working flawlessly.
Is there a way to get the number of people watching the repo as well?

My bad, did a little research and found it! 😄


report 25 and twisted.reviews should go to review queue

correct the redirect URL for /reports/ to show at least a rough approximation of the current review queue

please review

Oh, I guess the robot isn't listening here.

I updated https://twisted.reviews/ directly as that's managed elsewhere, and I just fixed the review queue here to be a list of everything that reviewers should look at

Thanks for the update.
I think that the README from the repo is missing some docs.
This repo is published using GitHub pages.
We use Netlify to get a preview version of the site, so that  we can test the changes without merging a PR.

I don't think that the review robot is enabled for this repo.
I will ask my colleague Dan to enable it.


Automate adding issues to project boards.

Close this one, because I need some extra info to the site.


New API to retrieve detailed usage for VM Families

Internal PR

Added new detailedusages API, definitions for VM Family Workspace Usage, Workspace Cluster usage for the API payload.
Added an example payload for the same.

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

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

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-js
A PR has been created for you:
https://github.com/Azure/azure-sdk-for-js/pull/1444

Automation for azure-sdk-for-java

Automation for azure-sdk-for-node
A PR has been created for you:
https://github.com/Azure/azure-sdk-for-node/pull/4816

Automation for azure-sdk-for-go

Can one of the admins verify this patch?

@nkalpana any update?

@nkalpana ping

Closing due to inactivity.  Please reopen when ready to engage.

Hi, @nkalpana. The PR has be closed for a long time and it's related branch still exist. If no further used for over 14 days, I will delete this related branch. Please tell me if you still need this branch.

Hi, @nkalpana. The PR has be closed for a long time and it's related branch still exist. Please tell me if you still need this branch or i will delete it in 14 days.


Test iterating over IBC clients

This is a test case for https://github.com/cosmos/ibc-go/issues/2935

Closing as bug was confirmed in ibc-go: https://github.com/cosmos/ibc-go/issues/2935


Flaky feature tests

Here are the ones I've identified so far:

[ ] "I can navigate to Course Show Page"
[ ] "Search by Professor"

Taken from: https://travis-ci.org/hacsoc/the_jolly_advisor/builds/92203942

The numbers being compared look to be 1. The Professor ID of the professor used to search (Professor.first) and 2. The Professor ID associated with each Course in the result of the search
This is weird because you'd normally expect Professor.first to return an ID of 1. But still the test should work with an ID of 2 or anything else... hmm.

Professor.first is 1 iff no professor records have been deleted

@JKobyP pinging for update. are you working on this? If not, I'd like to take it. I'm in a test-writing mood :)

I'm stealing this because we have builds failing

For the professor one, the test is flawed. There could be a professor who's name is a prefix of another professor, so the second professor's courses would appear in the results.

The "show page" test is flawed as well. If a course does not have a title, then on the explorer page it will show "Title Not Found", but on the show page it will show an empty string.


Issue with Pablo Console Immediately Exiting

I was working on getting Pablo to run inside a Docker container; doing so would let me run several pablo servers on the same hardware with minimal effort. Docker assumes that the application running in the container is running in the foreground and awaiting a SIGQUIT (or other sig) to exit, otherwise it just sits there without exiting.
For some reason when Pablo executes in a container it always immediately exits and I'm not sure why. Is there any way to upgrade the console app to explicitly await for a CTRL-C or other combination so that it sits in the foreground and awaits? I know that it currently does that with CTRL-Z (I think) but when I've tried to do this it always exits immediately.
mono /usr/local/bin/PabloDraw.Console.exe -p=gtk --server --port=14400 --file=/usr/local/bin/ansi/server-joint.ans -op=admin -pw=pablorocks -ul=editor --autosave=60 --backup --text-ice=false --text-use9x=false

I'll try to look into this when getting the console compiled for .NET 5 native executables.  Thanks for reporting the issue!

Happy to test with Docker if you get a build you think is ready. I think some simple docker instructions on running it would be useful and I could handle that in a Readme.

On Feb 5, 2021, at 7:16 PM, Curtis Wensley<EMAIL_ADDRESS>wrote:

I'll try to look into this when getting the console compiled for .NET 5 native executables. Thanks for reporting the issue!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I'm not quite sure, but the 3.3.0-beta1 might change how this works, please give it a try and let me know!

Closing this as mono is no longer involved.  Please let me know if there's still issues with 3.3.x or above.


ci: update actions/checkout in GitHub Actions workflows to v4

Description
This updates actions/checkout to v4, it's current version.
Changelog:

v4.1.0

Add support for partial checkout filters

v4.0.0

Support fetching without the --progress option
Update to node20

Tasklist

[ ] Ensure all CI builds pass
[ ] Review and approve

This seems to fail on all the jobs using the ubuntu:18.04 Docker container image. :(

Yeah, this looks like a known issue for Ubuntu 18.04 which is incompatible with Node required by the checkout v4 action:

https://github.com/actions/checkout/issues/1442#issuecomment-1697949642
https://github.com/actions/checkout/issues/1474

I can't see what can be done about it, other than postpone v3 to v4 pgrade or remove the jobs based on Ubuntu 18.04 (losing GCC 6, Clang 3.9, 4.0 and 5.0).

I can't see what can be done about it, other than postpone v3 to v4 pgrade or remove the jobs based on Ubuntu 18.04 (losing GCC 6, Clang 3.9, 4.0 and 5.0).

I am not sure that losing those CI jobs is acceptable. So I decided not to update the workflows that contain containerized builds to to actions/checkout@v4 and just update the others instead. It may not be the ideal solution, but it's better than nothing, and the jobs should pass now - again.

Another workaround could be to split this posix job
https://github.com/boostorg/gil/blob/e24c87fde24a4027bc7a0a5c873ff18c39097128/.github/workflows/ci.yml#L16-L24
into posix and posix-legacy, and move 18.04-based builds to the later, then the posix could be upgraded to checkout@v4.
This would mean copying some YAML boilerplate, but I personally don't die hard for DRY in YAML-s :)

That split would make the YAML file even longer and more complicated than it is now. I don't feel that actions/checkout@v3 vs. v4 is such a big improvement that it is worth the effort to make the CI configuration more complicated and maintain two copies of basically the same CI steps.

Sure. By the way, I kind of steal that from Peter Dimov's https://github.com/boostorg/mp11/blob/develop/.github/workflows/ci.yml 😊


3D printed modular frame/chassis

Include design of modular 3D printed frame/chassis

Uses Nvidia Jetbot chassis as base

Platform to mount a laser scanner
Mount for perception system (Raspi cam, OAK-1/D, Intel Realsense, ...)
Modular top deck for different development boards (single board computers): Rasperry Pi, Jetson Nano
Fit DG01D-E motor with encoder

WIP: URDF

You can find a slightly modified version of Jetbot in the remo_description ROS package. It is designed to be modular and allows using different addons (e.g. lidar platform, camera mounts and single board computers).

Currently there is only one lidar platform for the Slamtec RPLidar A2 but it should be easy to add a new platform that is suitable for other lidar models.
Additionally there are camera mounts for three different camera types. The main camera holder makes it easy to switch between different camera types.

Raspicam v2 with IMX219
OAK-1
OAK-D

And finally you can choose between two "decks" to mount either Nvidia Jetson Nano or a Rasbperry Pi.

Jetson Nano
Raspberry Pi 4 B

If you are interesed, you can 3d print all the stl files and make use of the ROS packages in the diffbot repository to drive this robot in Gazebo simulation and the real world. This is all in early stage but additional documentation of all packages can be found at https://ros-mobile-robots.com/packages/remo_description.html.


Add files via upload

@rashaatta I have to close this request without merging, because you requested to add a non-existent domain to this repository: ;; connection timed out; no servers could be reached Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!


Correcttion - Update resources.json

Syntaxis correction from acceptedValues to accepted_values

Should resolve ISSUE-4 (link)


unable to expand domains

I already have ssl certs from letsencrypt that I had obtained a few months ago using lego. The cert was a SAN for mysite.com and www.mysite.com
I wanted to to expand(or obtain a new) SAN cert by adding dev.mysite.com and staging.mysite.com
I did that by running this command:
<EMAIL_ADDRESS>CLOUDFLARE_API_KEY=something /usr/local/bin/lego/lego --dns="cloudflare"<EMAIL_ADDRESS>--domains="mysite.com" --domains="www.mysite.com" --domains="staging.mysite.com" --domains="dev.mysite.com" --path=/etc/nginx/.lego -k "rsa2048" run
and output was:
2016/12/12 23:00:23 [INFO][mysite.com, www.mysite.com, staging.mysite.com, dev.mysite.com] acme: Obtaining bundled SAN certificate
2016/12/12 23:00:28 [INFO][mysite.com] acme: Could not find solver for: http-01
2016/12/12 23:00:28 [INFO][mysite.com] acme: Trying to solve DNS-01
2016/12/12 23:00:30 [INFO][mysite.com] Checking DNS record propagation...
2016/12/12 23:00:34 [INFO][mysite.com] The server validated our request
2016/12/12 23:00:35 [INFO][www.mysite.com] acme: Could not find solver for: tls-sni-01
2016/12/12 23:00:35 [INFO][www.mysite.com] acme: Could not find solver for: http-01
2016/12/12 23:00:35 [INFO][www.mysite.com] acme: Trying to solve DNS-01
2016/12/12 23:00:36 [INFO][staging.mysite.com] acme: Could not find solver for: tls-sni-01
2016/12/12 23:00:36 [INFO][staging.mysite.com] acme: Trying to solve DNS-01
2016/12/12 23:00:37 [INFO][staging.mysite.com] Checking DNS record propagation...
2016/12/12 23:00:40 [INFO][staging.mysite.com] The server validated our request
2016/12/12 23:00:41 [INFO][dev.mysite.com] acme: Could not find solver for: http-01
2016/12/12 23:00:41 [INFO][dev.mysite.com] acme: Could not find solver for: tls-sni-01
2016/12/12 23:00:41 [INFO][dev.mysite.com] acme: Trying to solve DNS-01
2016/12/12 23:00:44 [INFO][dev.mysite.com] Checking DNS record propagation...
2016/12/12 23:00:47 [INFO][dev.mysite.com] The server validated our request
2016/12/12 23:00:48 [www.mysite.com] Could not obtain certificates
Error presenting token: API error -> 81057: The record already exists.
I'm using lego version v0.3.1 on ubuntu 16.04  with go version go1.6.2 linux/amd64
I noticed that certbot have an --expand flag that should be used in a case like this: https://certbot.eff.org/docs/using.html?highlight=expand
I'm I doing something wrong or doesn't lego support SAN certificate expansion?

Hey, I'm assuming you have solved this by now?
Anyway, notice for this domain it never gets to the DNS validation? As the error suggests, THE Cloudflare API is complaining/failing:
2016/12/12 23:00:35 [INFO][www.mysite.com] acme: Could not find solver for: tls-sni-01
2016/12/12 23:00:35 [INFO][www.mysite.com] acme: Could not find solver for: http-01
2016/12/12 23:00:35 [INFO][www.mysite.com] acme: Trying to solve DNS-01
[...]
2016/12/12 23:00:48 [www.mysite.com] Could not obtain certificates
Error presenting token: API error -> 81057: The record already exists.

The TXT record it would be trying to create is the following:
_acme-challenge.www.mysite.com
Verify in Cloudflare that there is no record already matching that. Cloudflare is failing at this stage as it is unable to add a record that already is listed (duplicate).

thanks @LukeHandle for the insight.
I had solved it by purging all my previous certificates and obtaining new ones with all the subdomains I want.
I close this issue.


Build: react-hot-loader should be a dev-dependency

Currently it is a dependency in package.json.

@izhaknys Please open a PR.

https://github.com/KleoPetroff/react-webpack-boilerplate/pull/179


add OpenRewrite recipes for Apache Commons

Description
enhance OpenRewrite configuration with the rewrite-apache library

enable Apache Commons Collections recipe
enable Apache Commons Math recipe

Key changed/added classes in this PR

rewrite.yml

This PR has:

[ ] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

in the absense of answers: I'll close this PR as I still don't understand why the need to enable these recipies

I was looking into recent dependabot PRs and it seemed like there are still commons-lang uses ;
which should be upgraded to commons-lang3 - I've done some exploratory work here which have also enabled a rewrite rule for it;  then I've realized: you might be interested in doing this - if is that so; please feel free to pick any changes from my branch.


dcpy.extract - archive raw data

#499
Also addressing #396
There are a couple big steps to happen here, largely squished into commit 2
Commit 1 is simpler - functions to grab GIS datasets from edm-publishing bucket. Since we currently assume "staging" folder is latest, using that as a proxy - use that to get last updated timestamp, look for that version and confirm that an actual version from that date exists (rather than blindly trusting that the last updated reflects the accurate version).
Commit 2 is the meat of this.
Starting with the types, in extract.metadata.py we have the Template object. This refers to the template.yml files we store in library/extract, and is meant to be a literal reading of them (does not get "computed" as in data library). The other big ones are in edm/recipes.py. These types are meant to be accessed/used by the recipes api, so I wanted them to live here. For now, have both a "LibraryConfig" type (refers to config.json structure currently used in dcpy.library) and "ExtractConfig". Towards the end of this project we likely want to align these a bit more (or at least just figure out how things are going to be backwards compatible) but for now, while we develop, I'm just keeping them entirely separate. This ExtractConfig is the "computed" version of the template.
What goes into computing it? I don't call it "computing" anymore, because I wanted the data flow to be a bit more intuitive. We have a couple main steps from reading a template to archiving raw data.

generate runtime timestamp
read in template, passing version as jinja template options. This does mean that having {{version}} in the yml is only supported when version is supplied explicitly. Added 4th commit where this its validated that vars in template are supplied.
get version if not supplied. For socrata or GIS dataset, look it up. Otherwise, use generated timestamp to create "today" version
download file (if not a local file)
archive file, with config that includes version, timestamp, and filename of raw file. This is stored in `edm-recipes/raw_datasets/{dataset}/{timestamp.isoformat()}

Commit 3 - tests. I don't test the "full" call, but each of the components of it (each of the above steps)

First pre-review comment from @sf-dcp - add docstring to "config" types

Tests failing due to weird bpl_libraries api failure. Hopefully resolves on its own

Exciting stuff! Does make more sense overall compared to the previous pr

And hopefully these PRs keep trending in that direction!


Components: ClipboardButton

Add a new clipboard button that handles copying and a hook for when copying is finished.
No screenshots as it's just a button with some special props.

@saramarcondes Haii! I left some comments :).
The last thing we gotta do is export this component in the main src/index.js.
Unfortunately, the remake command doesn't automatically add it in the src/index.js file 😊


Bump Joda time to 2.10.2

I'm looking into removing Joda time, but this will be a big PR. First, we need to bump Avro to 1.9.0 to remove that Joda dependency.

Why remove Joda time?

Joda has been superseded by JSR310: https://community.oracle.com/docs/DOC-983209
Even the author of Joda recommends updating to native Java java.time.*, which has been released since Java: Joda-time is no longer in active development except to keep timezone data up to date. From Java SE 8 onwards, users are asked to migrate to java.time (JSR-310) - a core part of the JDK which replaces this project. For Android users, java.time is added in API 26+. Projects needing to support lower API levels can use the ThreeTenABP library.

Since the joda-time version was changed, the LICENSE.BINARY file should have updated in this PR accordingly. This will be automatically checked after #7998.


feat: actions for no cni eks cluster creations

In this commit we add the new way to create an eks cluster without addons. We then use coredns and kube-proxy as the approach here is just to create the cluster without CNI so we can install cilium directly. We then added another action to create the nodegroups in a different step of the workflow.

Fixes: https://github.com/cilium/cilium/issues/33970
create eks cluster without aws cni

/ci-eks

/ci-eks

Error: Unable to install Cilium: unable to detect node OS, cluster has no nodes I need to figure out a fix for this before merging this PR

Here is the fix: https://github.com/cilium/cilium/pull/36336

Ok we can reopen the PR once the fix is closed, thank your @viktor-kurchenko :pray:

Ok we can reopen the PR once the fix is merged, thank your @viktor-kurchenko 🙏

@Artyop the fix was merged today.


Feature/plugin

Closes: https://github.com/ubccpsc/classy/issues/353
Merge the SDMM plugin PR since it has been deployed for the last few months and seems to be working well.

There are some build issues here. Is there a commit to the Portal Dockerfile that is missing?
How does the Portal submodule application know about the custom views during the production build process?
I can get the build to work by implementing this:

But then I run into errors during the runtime of the application:

Was this tested using the Dockerization of the applications or was the application built outside of the containers and run for SDMM? I'm trying to understand if code is missing here and more build production work has to be done.

Overall, the major issues:

build fails because this PR is not compatible with the Docker micro-architecture. Integration work needs to occur to make the plugin available inside the container to be copied by webpack to the appropriate file path if the plugin is available. Also, another plugin_path variable may have to be defined, as the plugin_path on the Docker HOST is likely a different filepath than the plugin_path in the container. (ie. Docker Host: /users/andrew/classy-plugin versus inside container: /app/classy-plugin/)
redundant /plugin/ path that cannot be accounted for by looking at file and folder structure of the classy-plugin repository.
custom files are included in this PR when they should be abstracted into a plugin

Minor issues (nice-to-have):

Semantic 'Custom', 'Default', 'Testing' inconsistencies. I know it is minor, but it makes it hard to understand what the code does when there are nested try-catches and conditional statements that act as a prior block for a new conditional statement downstream in the code. Manageable but could be cleaned up.

Thanks for all your comments @andrewstec . You are right that we had to reconfigure docker a bit, but it is working in production for the SDMM right now.
@braxtonhall could you remind us what you ended up needing to do to get the plugin to work with the base Classy image?

I'm pretty sure every change I made was either here or here.
I think the way it works now is everything custom (like the extended docker-compose) lives in classy-plugin. This clones the docker-compose from classy, and then clones classy during the build process.

I'm pretty sure every change I made was either here or here.
I think the way it works now is everything custom (like the extended docker-compose) lives in classy-plugin. This clones the docker-compose from classy, and then clones classy during the build process.

I think ideally, if a plugin is not available for a course, we would want the ubccpsc/classy repository to build and run independently of any plugin. If a plugin is available for a course, then it can substitute key files to customize it. I think the plugin should do most of the integration work, such as any cloning and inheritance of a docker-compose file. However, the ubccpsc/classy project could always search for tentative replacement custom controller, routes, and HTML files if they are in a particular location.
@rtholmes Would that be an okay point to build up to and I will check-in and see what other issues occur?

What is the new architectural design incorporating plugins? Is there some documentation on that? What 'plugs into' what, and how?

@winstan The plugin 'plugs-in' a common Classy instance. Right now every course needs its own Classy instance and knowing what to modify can be challenging (and tempting to make changes that escape a course). With this model a course should only modify the plugin which only contains course-specific resources.
@andrewstec While you could have a stand-alone Classy, I think this just makes it too tempting to make course-specific changes to Classy itself (spoken as someone who has done this many times for 310). I think the better way would be to have a default plugin that can spin up a 'base' version of classy and that courses could fork as needed for their own use.

@rtholmes I cannot support the architectural design behind this PR.
I am not willing to abuse the concept of a plug-in: https://en.wikipedia.org/wiki/Plug-in_(computing)
Classy must be the thing accepting the plug-in, not the other way around. Note that the CI we have set up no longer makes sense if Classy itself becomes the plug-in. (This is why it's failing.)
How about Andrew and I take this on? We'll need to get your input on the plugin interface, but I think we can get a draft started by lifting what you've done in this PR.

@winstan you can get hung up on the name all you want, this is just a composition mechanism to avoid having classy get forked everywhere and having to manage all of those integrations.
The SDMM has changed to the plugin and 310 probably will too to make it easier for course staff to maintain their course-specific code going forward. Or 310 can not make the change but would also stop doing their own course-specific Classy development and would have to revert to issuing critical issue requests as the term progresses, but again that is not up to me as I won't be teaching the course during the next 16 months.

@winstan sorry, missed the second part. You can take it on all you want, it just wasn't happening on its own so we did it ourselves. You'll probably want to start with 210 since it has the least course-specific code and then build out the 310 plugin after.
@braxtonhall don't worry about the 310 plugin work, @winstan and @andrewstec are going to design and implement the solution we'll use going forward (we'll leave the SDMM as-is until this is implemented since it is already deployed).

Ok, we'll get it sorted. Thanks for the work in this PR; what you've done here is useful, and no doubt we'll reuse some bits. :)


WTS statements should not be bounded at 255 characters.

Currently, the DB limits the WTS statements to 255 characters. This should be a TEXT field rather than VARCHAR.

Filed this on the wrong repo :(


[7.x] Adds "unless" method to Mailable class

Adds opposite Mailable::unless method for Mailable::when introduced in PR #31828.
Example use case:
return<EMAIL_ADDRESS>            ->subject('Example subject')
            ->view('mail.example')
            ->unless($product->downloadable, function ($message) use ($shippingInfo) {
                $message->attach($shippingInfo->getRealPath(), [
                    'as' => $shippingInfo->getClientOriginalName(),
                    'mime' => $shippingInfo->getClientMimeType(),
                ]);
            });

I really think just having when is fine for this.


Auto-update runtime when Composer adopt a new version of SDK or any structure change

As you can see, we are consistently having bugs that is pending in SDK side, it could be resolved once we bring a new version of SDK that contains the fixes.
For those runtimes managed by Composer via runtime plugin, it can be auto-updated when we detect a SDK version mistach.  It could be a fair simple fix by compare .csproj in local case, but will save user's effort a lot, this is yet another benefit we get from managing runtime for user.
We will leave user customized runtime alone.

We can expand the scope to include structural changes, the simplest solution could be just add a version.txt file and detect the mismatch there.


Documentation doesn't seem correct for instantiating a Radio Thermostat object?

I have a feeling I'm doing something wrong, but when I tried to follow the README to instantiate a Radio Thermostat device, it silently failed. Instead, what I had to do was this:
ct80 = radiotherm.thermostat.CT80(ip)
        temp = ct80.temp['raw']
        humidity = ct80.humidity['raw']

This was on Python 2.7.6. Notice I specified the CT80 directly but my guess is that's not what I should be doing. Doing it this way does work (I mostly wanted to grab the temp and humidity for logging periodically).
As an aside, I'm having nearly the exact same problem in Home Assistant and it seems to try to use the radiotherm library like the README as well (and seems to be failing).

Checked with the Home Assistant devs (see https://github.com/home-assistant/home-assistant/issues/2576#issuecomment-234029191) and it looks like it could be related more specifically to the CT80? A CT50 user seems to have no issue with how Home Assistant does things (which I think is inline with the README examples).
Here are some basic tests for what I am seeing:
(homeassistant) hass@HomeAssistant:~/tests$ cat busted.py
import radiotherm

try:
    tstat = radiotherm.get_thermostat("<IP_ADDRESS>")
    print ("Test 1: " + str(tstat))
    print (tstat.temp['raw'])
except Exception as e:
    print (e)
    pass

try:
    tstat =  radiotherm.thermostat("<IP_ADDRESS>")
    print ("Test 2: " + str(tstat))
    print (tstat.temp['raw'])
except Exception as e:
    print (e)
    pass

try:
    tstat = radiotherm.thermostat.CT80("<IP_ADDRESS>")
    print ("Test 3: " + str(tstat))
    print (tstat.temp['raw'])
except Exception as e:
    print (e)
    pass
(homeassistant) hass@HomeAssistant:~/tests$ python busted.py
Test 1: None
'NoneType' object has no attribute 'temp'
'module' object is not callable
Test 3: <radiotherm.thermostat.CT80 object at 0x7f15d9a5c7b8>
78.0
(homeassistant) hass@HomeAssistant:~/tests$ python --version
Python 3.4.3
(homeassistant) hass@HomeAssistant:~/tests$

Found the issue, and it's not related to documentation but to a new revision of the CT80. I'll try to put together a PR.


Style

Using a 4 spaces indentation, instead of 2
Defining simple styling rules for the future

Bitbucket: https://bitbucket.org/elen4/ceinms/ceinms/issue/7
Originally reported by: Claudio Pizzolato
Originally created at: 2014-06-10T02:24:49.660

FIne with me (even if I prefer two :D ) ... but change tab to space in editors.. two many tabs around :)

Original comment by: theBoss

and remember to avoid trailing whitespaces, git hates them!

Original comment by: elen4


Update submodule, oapi-codegen

Summary
In order to update the go-algorand submodule there were a bunch of changes.

Updating dependencies in go.mod since go-algorand has bumped these same deps
Changing block-generator's imports of the algod models
Updating the oapi-codegen usage for the Indexer APIs. The newer version of the generator caused some type aliases to be created where there previously was none, and changed one of the error messages for 400 responses.

Test Plan
No new functionality added, so all existing CI/release testing applies.

Added a few commits:

Updated circleCI and the make lint command to use golangci-lint
Various import order changes, spelling fix, etc. that were failing the new lints
Final fixes for the code gen changes to fix failing tests.

Looks like this also addresses #1300 :+1:


Update GCP Github Actions Auth Steps

Motivation
Integrates changes from https://github.com/spacemeshos/go-spacemesh/pull/5241 into develop
Changes

see https://github.com/spacemeshos/go-spacemesh/pull/5241

Test Plan
n/a
TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed
[x] Update changelog as needed

bors merge


Could you please update this doc?

We used this for automation processes and it's figured out that it doesn't work. Now debugging it.
[Enter feedback here]

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

ID: e50dfe50-c177-f976-753b-9fa689d20f92
Version Independent ID: 7f787259-8ce5-9ba6-8df7-58ab0b89dd5c
Content: Back up and recover Azure VMs with PowerShell - Azure Backup
Content Source: articles/backup/backup-azure-vms-automation.md
Service: backup
GitHub Login: @v-amallick
Microsoft Alias: v-amallick

@mykolaichuk Thanks for reaching out. Can you please elaborate where you were facing issue and which section doesn't work ?

@mykolaichuk As requested earlier, can you please elaborate where you are facing issue ?

@mykolaichuk As we haven't heard from you, we will close the issue for now. If there are further questions , please revert and we will be glad to assist you.


Oarc

Loads more work to rip out anything other than route stuff. This seems to work for individual flights but /routeset isn't tested yet.

What exactly is happening here...?

Just trying to implement routes without accessing adsb.lol

:+1:

Feel free to get in touch via IRC if you want to discuss it more, might be easier. I don't bite. :-)


feat: improve mouse + keyboard interaction

Unifies mouse and keyboard focus to end up in a more predictable entry selection experience:

Updated so it can be incorporated independently.


Disconnect behavior throws exception on worker thread

we have a bug in our app where we aren't passing messages through to a broken and back properly, so we time out.   We are the client, using MqttNet.   On a timeout we attempt to close the client (via _client.DisconnectAsync()) and then we dispose it.   Some time later the app crashes with an exception on a worker thread, related to the fact that when MqttNet closes a socket it might get an 'object disposed' exception from system worker threads related to when the socket was previously open.   Here is what stack overflow says about having to explicitly deal with this issue:
https://stackoverflow.com/questions/37135733/after-disposing-async-socket-net-callbacks-still-get-called

This is a known issue. It is hard to fix (as you can see in the stackoverflow post). Please try the upcoming 3.0.9-rc2. We made some changes in order to catch those exceptions.

@LADSoft Would you consider this as fixed now?

will check it out tomorrow.

it seems to work ok.


Provide command-line approaches to get access tokens

It is required to provide command-line approaches to get access tokens, from Jupyter Notebooks and in terminals.

Experimented with 4 approached and documented the steps in the following wiki page.
Getting Cognito JWT Tokens in Command Line
https://github.com/unity-sds/unity-cs/wiki/Getting-Cognito-JWT-Tokens-in-Command-Line


Submissions questions

Excuse me, what kind of files(in ZIP) need to submit in PROBA-V Super Resolution post mortem?
I have an account but don't know how to use it. Thank you!

Hi @Suanmd!
You can find all information you need here. Anyway, it is a zip folder with all 290 prediction images named in a precise way.
Finally, in the RAMS test notebook you can find all the code you need to automatically create a submission.
If you have further questions, please let me know.

Hi @Suanmd!
You can find all information you need here. Anyway, it is a zip folder with all 290 prediction images named in a precise way.
Finally, in the RAMS test notebook you can find all the code you need to automatically create a submission.
If you have further questions, please let me know.

Thanks very much!!!!

Hi @Suanmd

Hi @EscVM !
Thank you for your work! I am working on a new framework to solve the MISR problem.
Since I am not deeply involved in this field, I would like to add some experiments to make my work more abundant.
I'd like to ask you, is there any other public dataset for satellite multi-image super-resolution.
Thank you!!


Build failures with GHC >= 7.10 in v0.4 to v0.5.2

Funsat/Monad.hs:73:10: error:
    • No instance for (Applicative (SSTErrMonad e st s))
        arising from the superclasses of an instance declaration
    • In the instance declaration for ‘Monad (SSTErrMonad e st s)’
   |
73 | instance Monad (SSTErrMonad e st s) where
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^

Funsat/Monad.hs:97:10: error:
    • Could not deduce (GHC.Base.Alternative (SSTErrMonad e st s))
        arising from the superclasses of an instance declaration
      from the context: Error e
        bound by the instance declaration at Funsat/Monad.hs:97:10-52
    • In the instance declaration for ‘MonadPlus (SSTErrMonad e st s)’
   |
97 | instance (Error e) => MonadPlus (SSTErrMonad e st s) where
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

As a Hackage trustee I have created Hackage revisions that should prevent users from encountering these errors. See e.g. https://hackage.haskell.org/package/funsat-0.5.2/revisions/.

This issue is just for your information.

Thanks!


db hint

about code here: https://github.com/participedia/api/blob/master/api/helpers/db.js
You do not need to manually format arrays, pg-promise automatically supports arrays and escapes them correctly :wink:

Thanks for the hint @vitaly-t!

Also, if you upgrade to the latest pg-promise version, you will be getting a lot of warnings for the way you misuse QueryFile. Your code needs to be refactored there.
See how QueryFile is used in pg-promise-demo :wink:

bad / invalid checks:

https://github.com/participedia/api/blob/41bf2a4de8be982c1f6649d91140eb7a477b786a/api/controllers/user.js#L48

this one can never happen, because you are using methof oneOrNone, so no data will resolve with null always, as per the API;

https://github.com/participedia/api/blob/41bf2a4de8be982c1f6649d91140eb7a477b786a/api/controllers/user.js#L145

Can never happen, because you are already using method none that expects that no data will be returned.


something is wrong with cdn?

https://codepen.io/diomed/pen/dwXYKQ
despite including latest version from unpkg CDN
something's off, and styling of nes.css doesn't really show.
any ideas?

Hello @diomed. Please, check out this issue #6 and PR #82.
We added a nes prefix to all of our classes mainly to avoid compatibility issues with other frameworks, so your code isn't working because of that.
Try adding it in all of your classes and see if the result is as expected.
Thank you.

@diomed If this doesn't solve your issue, please comment and we'll reopen your issue.

If you want to use the old NES.css, you can use<EMAIL_ADDRESS>👍


Generating a test based on source examples

It would be cool if we could have a task to run all the code examples from the docs and check that they don't throw exceptions both when used with ReactDOM.render and ReactDOMServer.renderToString. I'd like to put it in  npm test task for my project and have it checked with CI.
We just need to get the examples using examples.loader, and do it for all the code chunks.
I would even implement it myself, but I can't figure out how. I thought I could write something similar to mocha-loader, but I just don't get what's going on there (it's a pitch loader, whatever that really means).
Or maybe enhanced-require (unmaintained :disappointed:) in Node would help? I have no idea.
I do not argue that we need a feature like this in react-styleguidist, but I'd like to have this for my project, and imho having a recipe how to do this could be also useful for others.

Not sure I can help you much with this. And I agree that it’s not in the scope of this project. But if you need the examples loader I can extract it to a separate package.

I tried to build something, but I had to stop here.

But leaving that bug aside, I was able to run a test for one component using this code:
require('testdom')('');

var React = require('react');
var TestUtils = require('react-addons-test-utils');
var _ = require('lodash');
var babel = require('babel-core');
var babelConfig = require('./package.json').babel;

global.React = React; // needed for all examples

describe('Button', function() {

    global.Button = require('./ui/Button');
    // var markdownContent = require('./ui/Button/examples.md');
    var markdownContent = require('./examples'); // because of https://github.com/istarkov/babel-plugin-webpack-loaders/issues/98
    var codeChunks = _.filter(markdownContent, {type: 'code'});

    _.forEach(codeChunks, (chunk, index) => {

        it(`should work as in example ${index}`, function () {
            var transformedCode = babel.transform(chunk.content, babelConfig).code;
            var vDom = chunk.evalInContext(transformedCode, _.noop); // noop for setState
            TestUtils.renderIntoDocument(vDom);
        });

    });
});

@sapegin I made some more progress, but I need to change one thing in styleguidist: instead of:
 require('styleguide!')

we would do:
  require('styleguide!' + pathToConfigFile)

Then it would be possible to reuse that loader. Otherwise it always looks for the config path in process.argv...

@mik01aj You have push access ;-) I’ll make a new release.

@sapegin I tried, but it's difficult because the config is needed pretty much everywhere. I believe it should be passed explicitly to every "part", rather than required by each module. I could add a flag to override the logic of finding and loading the config, but this feels ugly.

Maybe the server and build could call some config.init(argv) at the beginning. I don't see any better way since we need to pass the config to other loaders too (like props.loader), and we even can't serialize the config because it contains JS functions.

That’s difficult but important task. But I’m still not sure about the best (or at least good) way to solve it.
Passing the config (not just a file path) explicitly would be the best but seems impossible with loaders. But we can start with just a file name, it’s better than nothing anyway.

@sapegin please have a look at https://github.com/sapegin/react-styleguidist/commit/a4e9cf2565ac67972157e4e6de14370fd25bb6a1. This is the simple solution (not a nice one)

Better than nothing, don’t know how to improve it ;-)

So I added one more commit and finally got it working.
https://gist.github.com/mik01aj/5b0be7da5453b84a8a2a51b57611c2c7

So, to sum up, I was able to setup the code for my project (code in gist) but it's hacky as it uses some undocumented APIs (setting globals manually, chunk.evalInContext, component.nameFallbak typo, etc). If more people want it, we could refactor styleguidist so that it's easier to do this kind of tests.

Cool! I’d suggest to close it now until anyone wants more.

FYI: I updated my gist for v3.0.

I’m working on Node API and thinking about removing this hack. But I want to preserve functionality you need. Check #183 for details.


StreamBuilder not setting the correct value for connectionState for some Streams

In order to simplify reproduction of this issue, I created a sample App here.
I found this bug while addressing an issue reported in my library, so I adapted the user's example here. I know that StreamBuilder shouldn't be used like this for this particular use case, but still the bug shouldn't exist either if the user chooses to use it.
The App has 2 bottom navigation buttons.  But then afterwards snapshot.connectionState stays at ConnectionState.waiting even though we get a value from the stream, which goes against the ConnectionState docs:
  /// Not currently connected to any asynchronous computation.
  ///
  /// For example, a [FutureBuilder] whose [FutureBuilder.future] is null.
  none,

  /// Connected to an asynchronous computation and awaiting interaction.
  waiting,

  /// Connected to an active asynchronous computation.
  ///
  /// For example, a [Stream] that has returned at least one value, but is not
  /// yet done.
  active,

  /// Connected to a terminated asynchronous computation.
  done,

A StreamBuilder on ConnectionState.waiting shouldn't have any data on snapshot.data (awaiting interaction), data should only be available after it goes to ConnectionState.done (a [Stream] that has returned at least one value).
I think I found the origin of the bug, looking at _StreamBuilderBaseState we can find this:
  void _subscribe() {
    if (widget.stream != null) {
      _subscription = widget.stream.listen((T data) {
        setState(() {
          _summary = widget.afterData(_summary, data);
        });
      }, onError: (Object error) {
        setState(() {
          _summary = widget.afterError(_summary, error);
        });
      }, onDone: () {
        setState(() {
          _summary = widget.afterDone(_summary);
        });
      });
      _summary = widget.afterConnected(_summary);
    }
  }

Some streams, I suspect streams with a cached value (if you know more about it, please do let me know), will go immediately into the listen callback activating _summary = widget.afterData(_summary, data);, which should trigger ConnectionState.active, but since this was called at the same time that the _subscribe() function is running, _summary = widget.afterConnected(_summary); will be called just afterwards, overriding the value of _summary to ConnectionState.waiting.
One solution is to check if _summary can be set to ConnectionState.waiting before setting it, which isn't simple as this is a base class calling generic functions. So another soluting might be using a try-catch block, something like this:
  void _subscribe() {
    if (widget.stream != null) {
      try {
        S _oldSummary = _summary;
        _summary = widget.afterConnected(_summary);

        _subscription = widget.stream.listen((T data) {
          setState(() {
            _summary = widget.afterData(_summary, data);
          });
        }, onError: (Object error) {
          setState(() {
            _summary = widget.afterError(_summary, error);
          });
        }, onDone: () {
          setState(() {
            _summary = widget.afterDone(_summary);
          });
        });
      } catch(error) {
         _summary = _oldSummary;
         rethrow;
      }
    }
  }

I didn't test it, but I believe this will set the StreamBuilder to ConnectionState.waiting at first and if some callback is ready to be called synchronously it will just set the correct value to _summary. In case there were any errors while subscribing the listener the catch block sets _summary back to its previous value, as this is the behavior we have right now. I believe that's why ConnectionState.waiting was being set last, just in case if there were any errors on subscription it's value wouldn't change, but still this solution isn't flawless as widget.afterConnected(_summary); being called first on a derived class could have side effects.
This is just a recommendation on how to fix this, as I didn't test this code and I am not that much experienced with all the details of StreamBuilder and how this might effect it.

Hi @feinstein
your sample app heavily relies on flutterfire
I attempted to reproduce the case with this code sample
does this represent the case you are describing?
Thank you

Hi @iapicca, it does because I wanted to be sure it would represent 100% the case I have here, whereas a simplified stream could not. I thought it would be ok as the sample doesn't need any configuration, just press Run and it would show the bug.
Your examples doesn't reflect my bug, as it throws a Bad state: Stream has already been listened to..

Hi @feinstein
to make the case reproducible it's important that
a possible bug won't depend from ecternal factors,
in this case a flutterfire plugin;
as in this stackoverflow question the situation seems to depend from firebase,
to make sure that isn't the case it would be ideal to reproduce this behaviour
without 3rd party plugins.
For example as the docs state

Changing the StreamBuilder configuration to another stream during event generation introduces snapshot pairs of the form:
new AsyncSnapshot.withData(ConnectionState.none, 5)
new AsyncSnapshot.withData(ConnectionState.waiting, 5)
The latter will be produced only when the new stream is non-null, and the former only when the old stream is non-null.

this behaviour is reproducible just changing the stream in the streambuilder
import 'dart:async';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
    home: MyHomePage(),
  );
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  bool _isDouble = false;

  Stream<int> get _count async* {
    for (int i = 0; i < 100; ++i) {
      await Future.delayed(const Duration(seconds: 1),);
      yield i;
    }
  }

  final StreamTransformer _transformer = StreamTransformer<int, int>.fromHandlers(
    handleData: (int data, EventSink<int> sink)  => sink.add(data*2),
    handleDone: (sink) => sink.close(),
  );

  void _doubleIt() => setState(() => _isDouble = !_isDouble,);

  @override
  Widget build(BuildContext context) => Scaffold(
    body: Center(
      child: StreamBuilder<int>(
        stream: _isDouble ? _count.transform(_transformer) : _count,
        builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
          print('shapshot state: ${snapshot.connectionState}\nsnapshot data: ${snapshot.data}');
          return !snapshot.hasData
          ? Text('waiting...')
          : Text('${snapshot.data}');
        },
      ),
    ),
    floatingActionButton: FloatingActionButton(
      child: Center(
        child: Text(_isDouble ? 'x0.5' : 'x2',)
      ),
      onPressed: _doubleIt,
    ),
  );
}

if this sample doesn't represent your case
please provide a minimal reproducible code sample
that doesn't depend from external packages or plugins
thank you

@iapicca I am sorry but I don't agree with you.
1 - The docs mention ConnectionState.none and ConnectionState.waiting pairs, but my bug produces ConnectionState.done and ConnectionState.waiting pairs.
2 - What ever is the root cause, whether if it's firebase, or any other library, StreamBuilder should behave the same, we can't have a framework that works only for certain streams and not others, better call it SomeStreamsOnlyBuilder then.
3 - I understand that a concise small, encapsulated, sample is easier on you guys to test, but at the same time it's troublesome for me to isolate things that much. I want to help Flutter get better as much as I can, that's why I have opened so many bug reports, but I can't be working for free for Google all that many hours, I have clients and a tight schedule, if you really want a sample for this it will take me some time to do it as this will require a deep investigation on my part, but it's clear the bug's there and in a major Flutter UI component.

ConnectionState.waiting not getting the write value


Add RISC-V IOMMU support

This PR adds support for RISC-V IOMMU second-stage translation and fault signaling in Bao:
Main changes:

Implemented riscv-specific IOMMU interface functions in src/arch/riscv/iommu.c.
Added src/arch/riscv/riscv_iommu.h and src/arch/riscv/riscv_iommu.c with functions for RISC-V IOMMU configuration.
Defined deviceid_t type.
Modified VM/arch-specific platform data structure struct arch_vm_platform to define second-stage translation scheme.
Added IOMMU HW data to arch-specific platform data structure struct arch_platform.

Software versions
OpenSBI v1.0 (https://github.com/riscv-software-src/opensbi/tree/v1.0).
Linux 6.3.0-rc7 (https://github.com/tjeznach/linux/tree/tjeznach/riscv-iommu-aia).
Testing
This support was tested running Bao in a CVA6-based SoC w/ RISC-V IOMMU and 4 DMA devices attached (PULP iDMA). Two setups were used to test the implemented support:

One setup runs a baremetal application on top of Bao, performing memory transfers with Guest Physical Addresses using all four DMA devices.
For the second setup, a device driver was developed for the iDMA module, allowing to perform memory transfers using the Linux kernel DMA API. A user app is used to initiate memory transfers in all 4 DMA devices.

In both setups, unmapped addresses were used to test fault signaling. In both cases the transfer is responded with error by the IOMMU, the Fault Queue writes a fault record and informs Bao via wired interrupt.

@ninolomata @DavidMCerdeira could you provide some feedback here too?

@josecm I've rewritten the commit history using the conventional format as requested. I've also signed-off all commits.

I believe we should strive to use the correct architecture-depend vocabulary in the architecture specific portion of Bao code. This means that for SMMU driver we would still use the type streamid_t as it is the term use

@malejo97 so maybe inside the arm-specific smmu files you can still use streamid_t but either recast it or just alias it with a typedef.

Makes sense to me. I've aliased deviceid_t to streamid_t in ARM files

I believe we should strive to use the correct architecture-depend vocabulary in the architecture specific portion of Bao code. This means that for SMMU driver we would still use the type streamid_t as it is the term use

It makes sense to keep using arm terminology inside the arm-specific drivers.
@malejo97 so maybe inside the arm-specific smmu files you can still use streamid_t but either recast it or just alias it with a typedef.

Makes sense to me. I've aliased deviceid_t to streamid_t in ARM files

@malejo97 , sorry to be pedantic here, but please revisit the git history and make these two changes:

change the type of the commits tagged as refact to ref. We will introduce a CI module that forces commits
remove the modification made on the commit 7ad6afa95b109168340de6a381669b7e633f4895 that removes the line 14 of the src/arch/riscv/inc/arch/iommu.h file that was introduced in 3ae95cbe76fa46829f231c66273d45751e9d9e67. For the sake of the clarity, just don't introduce the modification on the first place so you don't need to remove it afterwards.

@malejo97 , sorry to be pedantic here, but please revisit the git history and make these two changes:

change the type of the commits tagged as refact to ref. We will introduce a CI module that forces commits to follow those types
remove the modification made on the commit 7ad6afa that removes the line 14 of the src/arch/riscv/inc/arch/iommu.h file that was introduced in 3ae95cb. For the sake of the clarity, just don't introduce the modification on the first place so you don't need to remove it afterwards.

Done. Both commits automatically dissapeared from the history.

@malejo97 the build was failing when compiling arm platforms due to some include recursion and include order dependencies (which should not have been there in the first place, mea culpa) streamid_t was not defined for certain files.
My commit fixes this. Could you please incorporate the changes in this commit in c35a24e?

@malejo97 the build was failing when compiling arm platforms due to some include recursion and include order dependencies (which should not have been there in the first place, mea culpa) streamid_t was not defined for certain files.
My commit fixes this. Could you please incorporate the changes in this commit in c35a24e?

Done! Changes incorporated in a390f7c.


Fixed powershell compatibility and robustness issues

Change Description:
Let's start with robustness issues: no error handling was implemented in powershell scripts. There are executed through execSync, which throws if the error code is not 0. We want execSync to fail if the script fails. See
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_preference_variables?view=powershell-7.3#erroractionpreference
CA certificate validation was only checking expiration date, which is not enough to prevent dev environment corruption (certificate mismatch, duplication, ...). The following checkings have been added:

CA certificate in store must match ca.crt
This certificate must match the issuer of localhost.crt

There was also an issue in clean-up logic. Both verify and uninstall are relying on isCaCertificateInstalled. Since this function only returned valid certificates, uninstall was never triggered.
Do these changes impact command syntax of any of the packages? (e.g., add/remove command, add/remove a command parameter, or update required parameters)
No.
Do these changes impact documentation? (e.g., a tutorial on https://docs.microsoft.com/en-us/office/dev/add-ins/overview/office-add-ins)
No.
Validation/testing performed:
Tested from cmd, powershell (Windows powershell) and pwsh (Powershell 7).

/Azurepipelines run


any() will return null for Bitmap class

    private var mockedBitmap: Bitmap = mock()
    private var coloravg: ColorAverageCalculator = mock {
        on { getAvgColor(any()) } doReturn "#000000"
    }

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method com.xxx.xxx.xxx.xxx.getAvgColor, parameter bitmap

I'm not sure what I'm doing wrong, getAvgColor takes a Bitmap as a parameter
ps: I also tried passing mockedBitmap to getAvgColor() and all it calls the actual method (tries to actually calculate the avg color of the mocked bitmap) instead of returning #000000 right away
any<Bitmap> does not solve the problem (same result)

any() will always return null. Make sure your getAvgColor is mockable so it is not executed and the NPE isn't thrown.

What do you mean by "Make sure your getAvgColor is mockable".
Mocking the method getAvgColor is exactly what I'm trying to achieve.
This is the method signature fun getAvgColor(bitmap: Bitmap): String and it won't take null as a parameter.

I'm guessing that ColorAverageCalculator is not an interface and is open:
open class ColorAverageCalculator {

  fun getAvgColor(bitmap: Bitmap): String {
    /* ... */
  }

If getAvgColor is not marked open, Mockito cannot stub this method, and the method will be executed when you call on { getAvgColor(any()) } doReturn "#000000". Since any() does return null, Kotlin's null-checking will throw the error you see.
The solution here would be to mark getAvgColor as open, or make ColorAverageCalculator an interface.


Preferences
No response

@mauro-balades @IAmJafeth can u please see what is the the issue i have tried multiple times tried with a github link, imgur link still it just keeps giving error.

i have tried with i.imgur as well check this https://github.com/zen-browser/theme-store/issues/120 it still didn't work

Hi @F4bC0d3
The linked on #120 seems to redirect to a html file:
curl -I https://imgucurl -I https://imgur.com/gallery/black-knight-zen-browser-theme-Ayavd6I| grep content-type

content-type: text/html

As well with the Github link you used on #119
curl -I https://githcurl -I https://github.com/F4bC0d3/Black-knight/blob/main/Screenshot%202024-08-22%20221845.png | grep content-type

content-type: text/html; charset=utf-8

You should use a link that points directly to the .png file, you can use this one for example: https://raw.githubusercontent.com/F4bC0d3/Black-knight/main/Screenshot 2024-08-22 221845.png
curl -I https://raw.githubusercontent.com/F4bC0d3/Black-knight/main/Screenshot%202024-08-22%20221845.png | grep content-type

content-type: image/png
x-content-type-options: nosniff

Please create a new submission using this link, reach me out if you need further assistance


A couple style transfer networks to implement

https://github.com/linfengWen98/CAP-VSTNet
https://github.com/siyuhuang/QuantArt

I just noticed that the code for CAP-VSTNet isn't licensed, so I made an issue https://github.com/linfengWen98/CAP-VSTNet/issues/18

I don't know how I keep missing that... sorry

I looked at these repo multiple times since we first talked about it and didn't notice. So no worries :)


SVG renderer: Glpyhs overlap

Glpyhs from SVG renderer overlap (HTML rendering is fine).
Steps to reproduce:
PDF: overlap.pdf
npm  install
gulp  dist-install
node  examples/node/pdf2svg.js  /tmp/overlap.pdf
firefox  svgdump/*.svg

Hi can I please take this?

Sure, feel free to work on this.


refactor: move jest-snapshot types to devDependencies

Summary
Some of the dev-only dependencies are incorrectly placed in dependencies package.json field while they should be in devDependencies. This needlessly increases installation time & node_modules size

Codecov Report

Merging #12058 (b9da870) into main (7a34a69) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main   #12058   +/-   ##
=======================================
  Coverage   68.89%   68.89%
=======================================
  Files         324      324
  Lines       16670    16670
  Branches     4814     4814
=======================================
  Hits        11484    11484
  Misses       5153     5153
  Partials       33       33

Continue to review full report at Codecov.

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

Thanks for the PR! These types are exposed in our own types, so they are dependencies (albeit only at build time for consumers, but still)


reduce property record storage on JIT server

We only really need to know if a property ID is numeric, rest of property record was only being used for debug output.

:shipit:

@dotnet-bot test this please


update requirements  & some stuff !

requests is external library
exit if there's no leaks
user can't see the password

The tool not exiting if there's no leak because if someone wants to check a password for many websites and it's meant to not see the password :3


Remove reference to component.UseLocalHostAsDefaultHost

https://opentelemetry.io/docs/security/config-best-practices/#protect-against-denial-of-service-attacks mentions this feature gate that was removed in open-telemetry/opentelemetry-collector/pull/11412. We should remove any mention of it from the official docs.

Ah, actually it clearly says what versions this is available on, my bad :sweat_smile: I think there is nothing to do here


Call to undefined method Intervention\Image\Facades\Image::make()

I am unable to make images.  I get the following message:
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Call to undefined method Intervention\Image\Facades\Image::make()
open: /Users/Sites/gcfs/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php
I am running Intervention\Image 1.6.2

See for yourself if maybe have a model named Image. That would make a problem here.

Has this been fixed? I had to downgrade to "intervention/image": "1.*" to fix this issue.

Add

use Image;

on top of your controller without changing anything in app.php. It will work fine in laravel 5.*

@amjithps over 6 months since u commented but wanted you know it worked =) Thanks :+1:

It's still not working with:

laravel/framework                     v5.2.35
intervention/image                    2.3.7
even if I follow the installation.

I have problem implementing intervention, I fix this and some other problem, I run xampp in local and laravel framework 5.2, this is what you should do:
1- add these line in your composer.json
"laravelcollective/html": "5.2.",
"intervention/image": "dev-master",
"guzzlehttp/psr7":" ~1.1",
"Illuminate/Html": "~5.0",
"illuminate/support": "4.|5.*",
2- add provioder to your app.php in config folder
Intervention\Image\ImageServiceProviderLaravel5::class,
add this line to alias
'Image' => Intervention\Image\Facades\Image::class,
3- open cmd.exe or windows powershel and write this command:
cd to your working folder of your project when you have your composer.json
composer update
4-i have these class included in my controller
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\View;
use Illuminate\Http\Request;
//use Intervention\Image\Image as Img;
//use Intervention\Image\ImageManager;
use Intervention\Image\ImageManagerStatic as Image;
//use Symfony\Component\HttpFoundation\File\UploadedFile;
use App\Http\Requests;
I think use Intervention\Image\ImageManagerStatic as Image; was the main class for intervention
5-this is my whole upload section
if (Input::hasFile('image'))
{
$file = Input::file('image');
$destinationPath = 'images/services';
$extension = $file->getClientOriginalExtension();
$filename = str_random(12).".{$extension}";
			$upload_success = $file->move($destinationPath, $filename);
			Input::merge(array('imageAddress' => $destinationPath.'/'.$filename));

			//intervention image resize
			$img= 'images/services'.'/'.$filename;
			$img = Image::make(public_path($img))->resize(200, 200);
			$img->save('images/services'.'/'.$filename);

		}

you just need these three lines
//intervention image resize
$img= 'images/services'.'/'.$filename;
$img = Image::make(public_path($img))->resize(200, 200);
$img->save('images/services'.'/'.$filename);

Same problem for me. Changing alias to "Img" doesn't work, downgrading to 1.* also didn't worked :( Tried everything with fresh Laravel 5.3 to make it work :(

Laravel, Intervention and Amazon S3
$file = $request->file('file'); // Get file input
$img = Image::make($file); // Create Intervention instance
$name = time() . '_' . $file->getClientOriginalName(); // Example file name
$payload = (string)$img->encode();
$upload = Storage::disk('s3')->put($name, $payload, 'public');

Don't forget:
use Intervention\Image\Facades\Image;

so folks, I don't know if it's resolved, but I ran that command "composer require intervention / image" and it worked again. I'm using version 7.29


Update resources to schema v4.21.0

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


findIn not work with relation

BookModel relation definition:
author_id: this.number(0),
author: this.belongsTo(AuthorModel, 'author_id'),

author is null when using findIn like:
BookModel.query().with('author').findIn([1, 2])
and works well with whereIdIn:
BookModel.query().with('author').whereIdIn([1, 2]).get()

Thanks for reporting this @lukaslaskovski. This looks like a bug that's been hiding behind the sofa.


[T3A3][T17-A2]Musa

Ready for review

@ghurabah93 Some comments added. Please close the PR after reading comments.