.delay() order

Hi!
We have a queue with million of jobs. Since these jobs affect remote sites we use  delay(random) to run them over longer periods of time.
The problem is when the queue gets backed up. Instead of running the jobs ordered based on delay()'s (which would keep the random order), we're noticing batches of the same site.
Meaning, if the queue is backed up, the order created by delay() is ignored.
Is there any way around this?

delayed jobs are promoted to the inactive queue, so if your inactive queue is backed up, they are sorted by priority/lexo from redis point of view.


User interaction is not allowed error when in background

Thanks for the fantastic library :)
I've been getting this User interaction is not allowed for lot of users and looks like this happens when the app is in the background state.
Setup
From AppDelegate and in willFinishLaunchingWithOptions method:
func readUserCredential() throws -> UserCredential? {
    let localKeychain = keychain(for: .localKeychain)
    guard let credentialData = try localKeychain.getData("user_credential") else {
      return nil
    }
    return try JSONDecoder().decode(UserCredential.self, from: credentialData)
  }

and the Keychain is setup as:
localKeychain = Keychain(service: "localKeychainServiceIdentifier")
      .synchronizable(false)
      .accessibility(.afterFirstUnlockThisDeviceOnly)

And for lot of users, we get the error

We don't have any operation which require an UI action. We added more logging and found the issue occurs only when the app is the background state.
App is woken up either from a silent push or performFetchWithCompletionHandler which can lead to calling the function readUserCredential()
Any idea why this would be happening? Any leads would be much appreciated :) @kishikawakatsumi

We had a similar problem with our app, so perhaps this can be helpful or give a clue...
We created the KeychainAccess object using .afterFirstUnlock, but we still got User interaction is not allowed error when the app tried to access the data stored in Keychain while in iOS lock-screen/background.
It turned out, that the object we tried to access from Keychain, had previously been saved in Keychain (using the same key) but with a more restrictive access level, .whenUnlocked.
What we learnt was that access levels are set per object/key, not for the whole KeyChain.
Our solution was to delete the object/key when the app was in foreground, and then save it again with our desired access level, .afterFirstUnlock. After that, it was accessible even from iOS lock-screen/background.


chore: remove volume-snapshot backup from qdrant examples since it is not su…

…pported

/cherry-pick release-0.9

/cherry-pick release-0.8


Feature/add trivy scanner

First addition of the trivy scanner, focusing only on the SBOM generation for now.
Also, here we align the namings between go package and the related task package-image name.
Closes #592
Initial work for #605
Tasks:

[x] Updated design documents in docs/design directory or not applicable
[x] Updated user-facing documentation in docs directory or not applicable
[x] Ran tests (e.g. make test) or not applicable
[x] Updated changelog or not applicable

To me this looks good, but I have been involved with making the changes. Would be good to have some independent eyes look at this as well.

makes sense! FYI there is a change in this PR also related on how we now skip package-image steps. Before, we checked if the image was existing and, now, the plan is to check if the image artifacts exist already (image-digest and sbom.spdx). The reason to doing it this way is because we focus to handle the PR flow (so we would only skip the package-image steps if those artifacts are generated when a PR is happening).


Loading the scripting addition doesn't seem to be idempotant and can send Dock.app into a crash loop

Issue
Running yabai --load-sa (as root) when the SA has already been injected sends Dock.app into an indefinite crash loop
System Info

system: "x86_64-darwin"
host os: Darwin 20.1.0, macOS 10.16
yabai vers: v3.3.5
SIP: disabled

Questions/Thoughts

What is a successful return from yabai --check-sa supposed to convey? That it is just installed? Or also that it has been loaded?
Running yabai --load-sa should be idempotent
Let me know if I can provide any further information for debugging (I'm not sure how to get the logs for Dock.app). I've provided more context below

Additional Context
I just upgraded to Big Sur the other day and in doing so saw the relevant documentation about the necessity of loading the scripting addition with sudo yabai --load-sa
I maintain the Nix package and nix-darwin service module. Part of the service module implements installation of the SA using a system daemon (so, run as root). I decided this was a nice place to load the SA, so as not to mess around with sudo.
The resulting script is simply:
#! /nix/store/8r6qgv5ihwkwwa4r4ydjjb0h3hk4viwi-bash-4.4-p23/bin/bash

if [ ! $(/nix/store/sli7prdi4ap4lx7idqfy2wawq86zdpwi-yabai-3.3.5/bin/yabai --check-sa) ]; then
  /nix/store/sli7prdi4ap4lx7idqfy2wawq86zdpwi-yabai-3.3.5/bin/yabai --install-sa
fi

/nix/store/sli7prdi4ap4lx7idqfy2wawq86zdpwi-yabai-3.3.5/bin/yabai --load-sa

As you can see, any time this daemon is loaded, it will run yabai --load-sa (as root).
When rebuilding the system configuration, all defined agents/daemons are reloaded, including this script.
Being that this is a frequent operation, when making configuration changes, I've found that when the SA is loaded over the top of an already running injection, it sends Dock.app into an indefinite crash loop.

I am unable to reproduce this when issuing the command twice from either the terminal, the yabairc file, or a combination of both.
It doesn’t really make sense to me, as the call to dlopen would be a noop the second time anyway.
That said it should be possible to check the images of the Dock process to see if the scripting addition has been loaded or not (when we have root privileges).
Sent from my iPhone
On 7 Dec 2020, at 12:14, Calum MacRae<EMAIL_ADDRESS>wrote:

Issue
Running yabai --load-sa (as root) when the SA has already been injected sends Dock.app into an indefinite crash loop
System Info

system: "x86_64-darwin"
host os: Darwin 20.1.0, macOS 10.16
yabai vers: v3.3.5
SIP: disabled

Questions/Thoughts

What is a successful return from yabai --check-sa supposed to convey? That it is just installed? Or also that it has been loaded?
Running yabai --load-sa should be idempotent
Let me know if I can provide any further information for debugging (I'm not sure how to get the logs for Dock.app). I've provided more context below

Additional Context
I just upgraded to Big Sur the other day and in doing so saw the relevant documentationhttps://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)#macos-big-sur---automatically-load-scripting-addition-on-startup about the necessity of loading the scripting addition with sudo yabai --load-sa
I maintain the Nix package and nix-darwin service module. Part of the service module implements installation of the SA using a system daemon (so, run as root). I decided this was a nice place to load the SA, so as not to mess around with sudo.
The resulting script is simply:
#! /nix/store/8r6qgv5ihwkwwa4r4ydjjb0h3hk4viwi-bash-4.4-p23/bin/bash
if [ ! $(/nix/store/sli7prdi4ap4lx7idqfy2wawq86zdpwi-yabai-3.3.5/bin/yabai --check-sa) ]; then
/nix/store/sli7prdi4ap4lx7idqfy2wawq86zdpwi-yabai-3.3.5/bin/yabai --install-sa
fi
/nix/store/sli7prdi4ap4lx7idqfy2wawq86zdpwi-yabai-3.3.5/bin/yabai --load-sa
As you can see, any time this daemon is loaded, it will run yabai --load-sa (as root).
When rebuilding the system configuration, all defined agents/daemons are reloaded, including this script.
Being that this is a frequent operation, when making configuration changes, I've found that when the SA is loaded over the top of an already running injection, it sends Dock.app into an indefinite crash loop.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/koekeishiya/yabai/issues/749, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABPDZV6J4YCXUPIKRNE7OQDSTS2JZANCNFSM4UQJX53Q.

The launch daemon is running before login, right @cmacrae?

Thanks for the quick response here @koekeishiya - I think @dominiklohmann may be onto something here (thanks!).
I'll have a play around with agents/daemons and see what the behaviour is. My initial testing hadn't caught this circumstance.
I imagine I'll likely be closing this issue soon after finding something that works 😅

Alternatively, yabai --load-sa could jus wait for the Dock to be ready for injection.

Do you have some tips for how that would work? We already retrieve the Docks PID using https://developer.apple.com/documentation/appkit/nsrunningapplication/1530798-runningapplicationswithbundleide?language=objc and so I am not sure how we would know how long to wait for.

I wonder whether you can wait for the Dock window's presence.

Added a check to the isFinishedLaunching property when attempting to get the pid for injection.


Navbar disappears after back button pressed on iOS

Using latest version of Framework7 (3.5.2) - also happens in previous versions (e.g 3.0.0)
App structure is as follows:
Vehicle list > Vehicle details > Condition check/Mechanical inspection
Going back from Condition check/Mechanical inspection to Vehicle details sometimes causes the navbar to vanish on iOS. Going forward again to Condition check/Mechanical inspection and back again to Vehicle details until the navbar doesn't vanish, we can then go back to Vehicle list, where there are some further rendering issues and app unresponsiveness.
A video clearly demonstrating the issues can be found here:
https://youtu.be/wIhR7WLa4oM
Back buttons are implemented as follows:
<f7-link icon-if-ios="f7:close" icon-if-md="material:close" class="back"></f7-link>

		<template id="page-vehicle"> 			<f7-page> 				<f7-navbar> 					<f7-nav-left> 						<f7-link icon-if-ios="f7:close" icon-if-md="material:close" class="back"></f7-link> 					</f7-nav-left> 					<f7-nav-title>Vehicle</f7-nav-title> 				</f7-navbar> 				<f7-list> 					<f7-list-item header="Make / Model / Variant" :title="[vehicle.manufacturer, vehicle.model, vehicle.variant].join(' ')" v-if="$f7route.params.vehicleId"></f7-list-item> 					<f7-list-item header="Colour" :title="vehicle.colour" v-if="$f7route.params.vehicleId"></f7-list-item> 				</f7-list> 				<f7-block> 					<f7-button big fill round :href="/condition/ + ($f7route.params.vehicleId ? $f7route.params.vehicleId : '')" class="mb">Condition Check</f7-button> 					<f7-button big fill round :href="/mechanical/ + ($f7route.params.vehicleId ? $f7route.params.vehicleId : '')">Mechanical Inspection</f7-button> 				</f7-block> 			</f7-page> 		</template>

You need to check the console. Looks like you may have some errors there. When you back to main view and app became unresponsive, it couldn't be without reason. So check the console for errors

This happens in XCode console when going from “Vehicle” to “Condition Check”
App[1897:516884] -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x281c016d0
2018-12-03 09:31:51.301824+0000 Vehicle Inspection App[1897:516884] *** WebKit discarded an uncaught exception in the webView:willRemoveScrollingLayer:withContentsLayer:forNode: delegate:  -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x281c016d0
No other errors seem to happen in either Xcode or safari remote debugging. There are no errors when we return to the home screen, even when the entire app crashes.

This stack overflow page seems to suggest an issue with -webkit-overflow-scrolling: touch;
It can apparently be worked around by using WKWebView instead of UIWebView - we're looking into it.

We've switched webviews and although that error message has gone away, we are still having the same problems.

Do you do some content updates during page transitions?

There is some code running in created()...
Vue.component('page-vehicle', {
	template: '#page-vehicle',
	data() {
		return {
			vehicle: null
		};
	},
	created() {
		this.vehicle = app.getVehicleById(this.$f7route.params.vehicleId);
	}
});

Vue.component('page-vehicle-list', {
	template: '#page-vehicle-list',
	data() {
		return {
			items : [],
			vlData: {
				items: [],
			},
			error: null,
			searchTerm: null
		};
	},
	mounted: function() {
		// fetch the data when the view is created and the data is
    	// already being observed
		var self = this;
		self.fetchData();
	},
	watch: {
		// call again the method if the route changes
		'$route': 'fetchData'
	},
	methods: {
		searchAll(query, items) {
			const found = [];
			for (var i = 0; i < items.length; i += 1) {

				var vehiclestr = [items[i].manufacturer, items[i].model, items[i].variant].join(' ');

				if ((items[i].registration && items[i].registration.replace(' ', '').toLowerCase().indexOf(query.replace(' ', '').toLowerCase()) >= 0)
					|| (vehiclestr && vehiclestr.toLowerCase().indexOf(query.toLowerCase()) >= 0)
					|| query.trim() === '') found.push(i);
			}
			return found; // return array with matched indexes
		},
		renderExternal(vl, vlData) {
			this.vlData = vlData;
		},
		fetchData() {

			const self = this;

			self.$f7.preloader.show();
			self.error = null;
			self.vehicles = [];

			app.ajax({
				url: config.motorvehicleinspections_api_base_url + '/vehicles',
				data: {
					username: localStorage.getItem('username'),
					usertoken: localStorage.getItem('usertoken')
				},
				success: function(data, status, xhr) {
					if(data.status && data.vehicles) {
						self.items = data.vehicles;
						self.$f7.virtualList.get().replaceAllItems(self.items);
						self.$f7.searchbar.virtualList = self.$f7.virtualList.get();
						self.$f7.preloader.hide();
						app.vehicles = data.vehicles;
					}
				},
				error: function(xhr, status) {
					// error
					self.$f7.dialog.alert('Sorry, the vehicle list is unavailable.');
				},
				store: true
			});
		},
		lookupVRM() {

			// yf17 ago

			const self = this;

			var dialog = this.$f7.dialog.prompt('', 'Enter vehicle registration', function (vrm) {

				self.$f7.preloader.show();

				app.ajax({
					url: config.motorvehicleinspections_api_base_url + '/vrmlookup',
					data: {
						username: localStorage.getItem('username'),
						usertoken: localStorage.getItem('usertoken'),
						vrm: vrm
					},
					success: function(data, status, xhr) {
						self.$f7.preloader.hide();
						if(data.status && data.vehicle) {
							// vehicle found
							var vehicle = data.vehicle;
							app.vehicles.push(vehicle);
							self.$f7router.navigate('/vehicle/' + vehicle.id);
						} else {
							self.$f7.dialog.alert('Sorry, no results found for that VRM.');
						}
					},
					error: function(xhr, status) {
						// error
						self.$f7.preloader.hide();
						self.$f7.dialog.alert('Sorry, VRM lookup is unavailable.');
					}
				});
			});

			// pre-fill input if valid VRM
			if(self.searchTerm.match(/(^[A-Z]{2}[0-9]{2} [A-Z]{3}$)|(^[A-Z][0-9]{1,3} [A-Z]{3}$)|(^[A-Z]{3} [0-9]{1,3}[A-Z]$)|(^[0-9]{1,4} [A-Z]{1,2}$)|(^[0-9]{1,3} [A-Z]{1,3}$)|(^[A-Z]{1,2} [0-9]{1,4}$)|(^[A-Z]{1,3} [0-9]{1,3}$)/)) {
				dialog.$el.find('input').val(self.searchTerm);
			}

		}
	}
});

Note that somebody else has had a similar issue, in relation to the rendering issues we are experiencing on the "home page". We tried taking the tabs out altogether but that didn't fix the problem.

Sorry, link to that issue: https://github.com/framework7io/Framework7-Vue/issues/257

Update: switching default theme from auto to md solves the issue so there seems to be a bug with the iOS theme.

Similar issue was on forum http://forum.framework7.io/t/2-major-issues-i-am-having-with-navigating-back/5210/8
In that case it was caused by calling router.navigate within component’s mounted hook, which is not allowed


Need to set a username or email error

Because accounts-password package expecting options object like this  {username, email, password}. Instead throws this error Need to set a username or email. Link to source

@denl95 Any particular reason (other than no response to your PR) that you closed this? AFAIK this is still an issue.


How to publish Musicbee playback stats to MQTT?

Sorry if this is an ignorant question or indeed if this could be construed as a support question.
But, how does one publish musicbee to MQTT in the first place?

I made a simple mqtt plugin for musicbee. However It's very quick and dirty which is why I havent released that plugin.
I probably won't release it as I don't really have the time to fix it up to make it OK for releasing it for others to use. Sorry about that :(

Ah. That's a shame.
If you ever get around to changing your mind though, maybe release it anyway as open source; like this one. That way someone could come along and fix it up.
Cheers

I would also be interested in said plugin since MusicBee is my go-to player on PC and would be nice to have it incorporated to HASS for automations (door bell ring etc).
Best,
io

Any chance this seeing the light of day? No one else seems to have a way to connect MusicBee to Home assistant and this sounds like the best shot we have...

I have MusicBee populating a "now playing" type of card in Home Assistant using the Now Playing to External Files plugin.  It is not for the faint of heart.  Overview of my workflow:
MusicBee side (via the plugin):

Export Artist, Track, Album, Year to a tags file in a place on your network readable by HA
Export Album Artwork to an image file that can be served via http

Home Assistant side:

Use a file sensor to detect and read changes to the metadata file (I found this easiest to do in Node-RED)
Use the generic camera plugin to read the album artwork via HTTP as a camera image
Horizontal stack card with picture entity card (showing my fake camera) and a markdown card on the right (showing metadata)

End result is below/attached:

Hey, I know you probably spent a lot of time with this setup, but I just uploaded the code of what I've been using these past few years over on this repo https://github.com/TroyFernandes/Musicbee-MQTT
I lost the code for the project a long time ago but found a backup recently, but the MQTT package for C# changed a little over the years so I just spent some time updating the code.
If you decide to try the plugin, let me know how (and if) it works for you.
Thanks

This is awesome @TroyFernandes - thank you for coming out of deep retirement to make this available!  I am most of the way there but am a tiny bit stuck and hoping you can kick me the rest of the way to completion.  Documenting what I've done here for you and anyone else reading this thread:
Working/Done:

Added hass-mqtt-mediaplayer custom component & entity to config.yaml
Musicbee player config (verified I'm seeing everything published as expected via MQTT Explorer)
Able to control Musicbee using direct service calls (dev tools) to the media player entity

Not working:

No artwork or track info showing up in HA media player card (or mini-media player card)

By what mechanism does the track info get populated into the media player entity?  Do I need to create some sensors manually?

Yes, you'd have to create sensors.
Ill just show you how I have mine setup.
I have a media_player entity in my configuration.yaml with the following:
- platform: mqtt-mediaplayer
  name: "Musicbee"
  topic:
    song_title: "{{ states('sensor.musicbee_song_title') }}"
    song_artist: "{{ states('sensor.musicbee_song_artist') }}"
    song_album: "{{ states('sensor.musicbee_song_album') }}"
    song_volume: "{{ states('sensor.musicbee_player_volume') }}"
    player_status: "{{ states('sensor.musicbee_player_status') }}"
    album_art: "musicbee/song/albumart"
    volume:
      service: mqtt.publish
      data:
        topic: "musicbee/command"
        payload: "{\"command\":\"volume_set\", \"args\":{\"volume\":\"{{volume}}\"}}"
  status_keyword: "true"
  next:
    service: mqtt.publish
    data:
      topic: "musicbee/command"
      payload: "{\"command\": \"next\"}"
  previous:
    service: mqtt.publish
    data:
      topic: "musicbee/command"
      payload: "{\"command\": \"previous\"}"
  play:
    service: mqtt.publish
    data:
      topic: "musicbee/command"
      payload: "{\"command\": \"play\"}"
  pause:
    service: mqtt.publish
    data:
      topic: "musicbee/command"
      payload: "{\"command\": \"pause\"}"

and then I have a sensor entity as well with the following:
sensor:
  - state_topic: "musicbee/song/title"
    name: "Musicbee_Song_Title"
  - state_topic: "musicbee/song/artist"
    name: "Musicbee_Song_Artist"
  - state_topic: "musicbee/song/album"
    name: "Musicbee_Song_Album"
  - state_topic: "musicbee/player/volume"
    name: "Musicbee_Player_Volume"
    icon: "mdi:volume-medium"
  - state_topic: "musicbee/player/playing"
    name: "Musicbee_Player_Status"
    icon: "mdi:volume-medium"

I was just missing the sensors - 100% working now!  And for anyone else setting this up, they go under your MQTT integration key.
Tomorrow I will take a long look at the hacky solution I documented above, maybe archive it, and then rip it out.  : )

Glad its working for you now!

Thanks for this very much appreciated :)
Only one hiccup for me here, what kind of sensor do I need for album art? Neither one of these work:
mqtt:
sensor:

name: "MusicBee Album Art test"
state_topic: "musicbee/song/albumart"
is always "unknown"

and
mqtt:
image:

name: "MusicBee Album Art"
image_topic: musicbee/song/albumart
content_type: image/png
image_encoding: b64

shows artwork fine but not sure how to use it on the mediaplayer entity declaration to show up.
Many thanks again :)

Unlike the text tags, you do not need to create a sensor for the artwork. It is encoded in base64 into an MQTT topic:

...which the mqtt-mediaplayer entity definition in your configuration.yaml can reference directly.  In @TroyFernandes's post above, it's this line:
album_art: "musicbee/song/albumart"

I just verified that yes indeed HA's built-in media player entity is picking up the artwork for me.  I personally use mini-media-player which is also picking it up.
Have you tried using MQTT Explorer or something of that nature to verify your MQTT artwork topic is being populated by Musicbee?  You may also need to play the next track in musicbee to trigger a publish.

Ah I think I found the issue on the console log, I'm getting error 500 from the nginx proxy addon probably, will have to debug it now..thanks for the help :)


setup_server_read_response_header: remove assertion

This addresses an intermittent assertion failure associated with Expect:
100-Continue via the h2origin.test.py autest introduced via #11536.
Since the 100 Continue is followed immediately by 200 OK, it is possible
that both are processed at once if the Expect: 100-Continue request has
no body. In these cases, the assertion will fail because
state_read_server_response_header will have processed the entire
response. Since that is now possible, we might as well just remove the
assertion. In theory, it can be kept for the case when there is no
response bytes available to read, but in those situations the assertion
isn't really doing anything because there will be no complicated logic
from state_read_server_response_header and we set the server_entry->vc
earlier in the function.

Cherry-picked to v10.0.x


[SPARK-41784][CONNECT][PYTHON] Add missing __rmod__ in Column

What changes were proposed in this pull request?
Add missing __rmod__ in Column
Why are the changes needed?
to be consistent with PySpark
Does this PR introduce any user-facing change?
no
How was this patch tested?
existing UT

this is the last missing column api

Merged to master.


Add createEnvironment.contentButton setting

Closes https://github.com/microsoft/vscode-python/issues/20982

@karrtikr We cannot catch all possible scenarios yet. Also, even if we do figure out scenarios, some users don't like this button at all.
We are going to add more context keys to the button to ensure when we do show we show it only where we think it is needed. So, this setting will exist regardless of the context we determine.


bug: innerText returns content of child

First, thanks for the linkedom! It's rly fast and robust compared to alternatives, AND it has way more and way better examples, which is awesome.
Now, for the issue :)
I'm trying to extract text from webpages to declutter them (like Reader mode), but observed that innerText also returns contents of tags that aren't included in the parent node innerText in browsers, visible
";
let text = parseHTML(str).document.documentElement.innerText;
console.log(text);
// expected: "visible"
// observed: "p{margin:0;}\nvisible"
let text2 = parseHTML(str).document.getElementsByTagName('style')[0].innerText;
console.log(text2);
// observed: "p{margin:0;}" - this is OK!

I don't have use cases for this and I guess your one is a crawler based on linkedom ... but if it's real DOM behavior you are after, with the engine that knows what is visible, what not, and what content should be considered for innerText I suggest you use a real browser and not this project? I have zero interest in bringing in here all the quirks that innerText, a thing added after Internet Explorer, has ... this is not why this project exists but also: PR welcome if it doesn't destroy peroformance and it's not on the way for future features and improvements 👍

OK I accept the point that innerText is non-normative as per https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute
Meantime the workaround if anybody stumbles on the same issue:
  let w=document.createTreeWalker(document)
  let t=[];
  while(true){
    let n = w.nextNode(); if(!n){break;}
    if(n.nodeType==3 && n.parentNode?.localName !='style'){
      t.push(n.textContent);
    }else if(BLOCK_ELEMENTS.has(n.localName)){
      t.push('\n');
    }
  }
  let text = t.join(' ')

@wizzard0 if that's all it takes I might implement that myself but ...

are you sure only style should be ignored? what about text inside SVGs or other cases?
wouldn't a script inside the body do the same, and with it others headers with content such as title?

In short, I am not sure you've solved the issue there, but if you did, I can easily bring that in or you can file a PR.

In short, I am not sure you've solved the issue there

Yeah I'm also not sure. I've searched a bit for a spec that could be followed and didn't found one.
So I guess I need to collect more edge cases first anyway.


Update testtrigger.md

IBM Cloud Continuous Delivery Bill of Materials
 Download Bill of Materials Report: [JSON Format]
Bill of Materials Diff
Compare To: [Branch = gas-stocktrader-patch-7] [Commitid = 70c1790a27c1dd08e0cab7cae87ae9e315865ebb]

IBM Cloud Continuous Delivery Deployment Configuration Analysis
:white_check_mark:    Manifest File: manifests/deploy-openshift.yaml
 No configuration risks discovered

IBM Cloud Continuous Delivery Vulnerability Report

 :white_check_mark: Manifest File: Dockerfile-openliberty/open-liberty:kernel-slim-java11-openj9-ubi

Vulnerability Data by Clair
No OS package vulnerabilities found

 :white_check_mark: Manifest File: pom.xml

Vulnerability Data by Snyk
No application package vulnerabilities found


Compatibility with new RTX 3080 cards

In case others have similar issues.
On Ubuntu 20.04 with driver 460 and Cuda 11.2, current docker compose did not work.
Until I added Gpu capability in docker-compose.yaml, pytorch did not see video card and complained about missing nvidia driver: RuntimeError: Found no NVIDIA driver on your system.
Next, after docker-compose.yaml fix, default version of torch, gave me this error:
GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
These are changes I made to fix errors above:
diff --git a/Dockerfile b/Dockerfile
index dc3d37a..d4b53b1 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,5 +12,6 @@ RUN apt-get update \
     python3 \
     python3-pip \
   && python -m pip install --no-cache-dir -r requirements.txt \
+  && python -m pip install --no-cache-dir torch==1.7.0+cu110 -f https://download.pytorch.org/whl/torch_stable.html \
   && rm -f requirements.txt \
   && rm -rf /var/lib/apt/lists/*
diff --git a/docker-compose.yml b/docker-compose.yml
index a112550..ba7ce58 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -13,3 +13,8 @@ services:
       - ${PWD}:/ws
     working_dir: /ws
     command: "python demo.py"
+    deploy:
+      resources:
+        reservations:
+          devices:
+          - capabilities: [gpu]
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index ba4a747..05f1227 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
 numpy
 opencv-python
 pillow
-torch
+# torch
 Flask
 requests

You need to use docker-compose version 1.27 or newer.

@dsvua   Thank you for your work!  If  some one  meet the same issue, He/She can refer this.


Server uses CPU when idle

I'm working on my laptop doing some recreational programming using Dart and Webstorm on my Mac laptop. The laptop is getting a bit hot so I looked into the cause. The Activity Monitor seems to be blaming the Dart Analyzer:
Dart Analyzer is consistently using about 5% CPU when idle. "Idle wakeups" is around 800 which is a lot higher than every other process except the kernel.
On the Energy tab, Webstorm's "average energy impact" is about 20% and if I drill down it's blaming the Dart subprocess for most of it.
Perhaps either the analysis server is doing something when it's supposed to be idle, or WebStorm is polling it? Not sure who to blame. Although, it seems like WebStorm wakeups would be more than 1 if it were polling.
Whatever it is, it seems to be persistent; shutting down WebStorm and starting it back up again results in the same CPU usage.
This is using:
WebStorm 10.0.4
dartanalyzer version 1.11.0.
--
When I spin up Dart Plugins for Eclipse, I see analysis server idle at around 2%.
It appears this is not unique to IntelliJ.

I have noticed this, too. I simply kill Atom (and the analyzer) if I'm not using it, because it drains battery. This is when it's idle, which is the concerning part.

My battery usage has been better since I first noticed this. I suspect possibly the move to the new task model helped? As well as atom buffering file overlay changes for very brief times before sending them into the analysis server (w/ the net result of the analysis server doing a lot less work). Removing the flutter label.

I believe this is no longer the case.


Add Russian language translation

See #119

Thanks!

@rowysock Do you think we can create a Github organization for this integration? I hope that this might speed up development and maybe also attract other developers :)

@TechHummel I've created an organization. You have an invite pending

Thanks for that! 👍
I wanted to create a new tag for a beta release (mainly so that I can ask people to test if bugs still occur with the latest version), howver, I am receiving a “You're not authorized to create a tag" error.

Made you an owner. Have fun :)


The wording implies that choosing a non-copyleft license means not caring about sharing and improvements

The way you present non-copyleft licenses is very, very incorrect.
I'm yet to see an open source project that wouldn't care about improvements. They all want contributions, but permissive ones choose not to try to force others to contribute (for various reasons).

How about: "I want people to pay it forward" ?
(also, see #260 )

We could go with "I want to prioritize user freedom." That attacks the problem from a different angle (although it may require the blurb to be adjusted to match).
Yes, it doesn't say anything about how this actually works legally, but I think that captures the intent, right? At least, the intent according to the FSF.

Justification
I'm here, in a closed discussion, because @mlinksva specifically suggested that I add my thoughts here with regard to the current state of the copyleft summary's phrasing.  I hope what I have to say helps.
TL;DR
This is a wall-of-text analysis of the discussion, points raised, and my thoughts on the matter.
The best options I've seen so far seem to be variations of one of the following:

"I want to perpetuate my license terms."

"I want to prohibit differently licensed variations."

"I prefer copyleft licensing."

Other suggestions all seem to come with fatal flaws, for reasons of flamebaity language or misleading implications.
Wall-Of-Text Bikeshedding
I think it's worthwhile to distinguish between accuracy, completeness, and precision.  We do not need to focus on precision of phrasing, because this is largely about giving people an immediate bit of help identifying desires and offering options.  We do not want to focus on completeness in the form of comprehensive descriptions of the concerns for each licensing category; there is enough information and opinion in the world on this subject to fill a library.  We do need to be accurate, in that the phrasing should not be misleading and should not step on toes too much.  This is an inherently political matter, and both neutrality and avoidance of technical error is important to avoid becoming flame bait or having the opposite of the intended effect (leading people to choose something misaligned with goals instead of actually helping).
One of the most overlooked requirements of accuracy is the case where one of the goals of a particular group is misidentified (perhaps only implicitly) as exclusive to that group when it might be common to more than one group (e.g. "I want my code to remain free").  Another of the most overlooked is the case where the goals advertised in the propaganda are actually at odds with the goals of a significant fraction of the people who choose a particular licensing category (e.g. corporate users of copyleft licenses whose real aim is to garner community support while maintaining an "intellectual property" advantage over competitors).
That out of the way, the following operates on an assumption we all care about the above concerns.

The problem with "enforced sharing" or "enforce sharing" is three-fold:

Copyleftists will take umbrage at use of that terminology because it seems harsh, even if accurate.  See comment by @bendiken.

While it seems accurate in intent, the reality is that it is inaccurate, because copyleft licensing is often ineffective in meeting that aim.  See comment by @Haacked.

While the intent of the licensing model might fit, people often use it specifically to discourage "sharing" in various ways, as part of their business model.

Numbers 2 and 3 are especially problematic for "require".  The GPL literally mandates, however, so "mandate" is strictly accurate; same applies to "demand".  I'm not optimistic about the acceptance level of those words to copyleftists, though (especially "demand").
I believe "simple and permissive" is quite appropriate for the category including the MIT License, in part because the conjunction of two characteristics of the license is fairly precise, in part because "we" should probably not be in the business of recommending complex copyfree licenses (to the extent they even exist), and in part because both terms exclude licenses such as AL2 and the most popularly known copyleft licenses.  The fact further discussion has led to eliminating the references to AL2 as "a permissive license similar to the MIT License" helps straighten this part of it out.
I think the artificial separation of accuracy and making the decision process simple/easy is misleading.  If the representations are inaccurate, they mislead people's decision-making.  Accuracy is important, though precision is less so, and comprehensiveness is definitely not particularly important in this case (in my estimation).  If what you really want is "making it as simple as possible for the developer looking to license his project" without any concern for accuracy, you should just tell everyone to use the MIT License and not bother offering options at all.  That's much simpler in every way, and does not provide accurate assessment of people's licensing preferences or accurate satisfaction those preferences.
The point about distilling the copyleft choice to its essential motivating factor is a good one, though that motivating factor is not necessarily "copying", "freedom", or "open source".  Even for those whose concern is some definition of "freedom", the same can be true of other license categories, and a more essential motivating factor applies in differentiating the licenses: perpetuity of terms.  In some respects, copyleft licensing policy is the open source equivalent to the Sonny Bono copyright extension: it uses legal mandate to extend its terms (in spirit, toward infinity).  Imagine my surprise when I saw that @tekkub came to the same conclusion, and (like me) found it difficult to formulate an appropriate, well-composed phrase to capture that essence.
Speaking of caring that code remains open source is fraught with difficulty.  It is likely to draw ire from both people who like the GPL and people who don't, because the former often despise the term "open source" (favoring "free software" instead) and the latter also often care that code "remains" open source and might pick fights over the application of the term "remains" (or "stays" or whatever).  The suggestion of "want every copy to be open source" runs afoul of the both groups as well, because (again) the former might not like the term "open source" and the latter might also want every copy to be open source (but priortize other concerns of that concern, such as a different definition of freedom and openness, different philosophical reasons for liking open source software in the first place, and so on).
Some more proposed phrasing seems to warrant special treatment:

perpetuate (or propagate) license terms
This is somewhat picky, in accessible phrasing, but strikes closer to the heart of the matter than anything else I've seen, apart from the fact that "perpetuate" (or my now-proposed alternative "propagate") may not be very evocative of the intent.

prefer copyleft licensing
This is obviously accurate, because it is tautological.  Tautologies are (unfortunately) probably not useful as a means of educating people about their licensing options and helping them pick a licensing category.  This phrasing only kicks the can farther down the street; we still haven't picked it up.  We might as well say "I don't like the other options, so here's something different.  Read on to learn what it is."
This seems to provide precisely one advantage: it is technically accurate and might satisfy the desire of copyleftists to have representation.  It might be argued that no more than this is needed, because people who care about copyleft licensing policy already know about it, and educating people who don't in a neutral, balanced, unbiased manner is a matter for a completely different website than choosealicense.  Taking this approach is tacit acknowledgement of a policy of just wanting the copyleftists to not complain about under-representation.  Just hope copyleftists don't catch on that this doesn't actually advance their cause at all, if going this way, I suppose.

prohibit closed forks
This seems pretty accurate, though not comprehensive.  I don't yet see any downside other than the obvious (the fact that no single, short statement can encompass the full scope of copyleft license complexity).

If the copyleft summary's language ends up being something that could be just as easily applied to the other categories, it really should include some variation of "mandate".  The idea of saying you want to "prioritize", instead of "mandate", freedom is dangerous; it is essentially propagandizing in favor of a particular category of license terms, thus turning the whole exercise into flamebait.  The words "at least, the intent according to the FSF" specifically highlights this problem.  On the subject of the AL2 section not including mandate-equivalent phrasing, I'd say it should also come with such a qualifier if the whole matter of AL2 phrasing had not been "solved" by not giving AL2 its own section.
To sum up, I like these options (or close equivalents of them) more than others I've seen for hopefully avoiding flamebaity or misleading phrasing, in descending order of preference, with 1 indicating my favorite:

"I want to perpetuate my license terms."

"I want to prohibit differently licensed variations."

"I prefer copyleft licensing."

In short, I think the bikeshed should be a nice, deep, slate-ish grey-blue, matte finish but with a touch of metallic hue.

Just my two cents: I think using positive language (I want to ensure X) is preferable to negative language (I want to prevent Y). That's the same reason that justifies the use of "protective" (instead of "restrictive") as the opposite of "permissive".
The third option (deferring the definition to "copyleft") should not be considered IMO, for the reasons you mentioned yourself (it just kicks the can further down the road).
So for what my opinion's worth, I think something along the lines of "I want any derivatives to preserve the end user's rights" (or any of the more concise formulations) might be the best bet for this admittedly hard-to-summarize concept.

I think using positive language (I want to ensure X) is preferable to negative language (I want to prevent Y). That's the same reason that justifies the use of "protective" (instead of "restrictive") as the opposite of "permissive".

+1

The third option (deferring the definition to "copyleft") should not be considered IMO, for the reasons you mentioned yourself (it just kicks the can further down the road).

+1

So for what my opinion's worth, I think something along the lines of "I want any derivatives to preserve the end user's rights" (or any of the more concise formulations) might be the best bet for this admittedly hard-to-summarize concept.

(2) also has "variations" that matches your "derivatives" and I think scope is important; using any license by definition perpetuates it ;)
Thus I suggest:

I want to perpetuate my license terms in derivatives

I want any derivatives to preserve the end user's rights.

This has problems regarding implied exclusivity of the sentiment and other issues I think I already addressed.

I want to perpetuate my license terms in derivatives.

This is not as problematic for purposes of accuracy and identifying the actual difference, as I think I already mentioned.
I really wish people would address all the identified problems before re-introducing a problematic formulation.  You obviously have reasons to prefer your suggested phrasing, @waldyrious, but do you have any commentary at all on the series of objections raised to that kind of phrasing?

do you have any commentary at all on the series of objections raised to that kind of phrasing?

I was hoping we could first agree on moving ahead with one general direction (hence my proposal to focus on option 2) and then refine it. I was under the impression that my previous comment (especially the bit about option 3) was in line with what you wrote yourself. Do you have objections to drop at least that option from the list?
I am afraid that trying to discuss the complexities of all 3 options simultaneously may make progress quite harder, unless we can summarize the pros and cons of each option in a more manageable format -- say, a table. What do you think?

I agree that just using the word "copyleft" and leaving it up to readers to have any clue what it means can be problematic in ways the other two options I identified are not problematic, so no, I don't have any objection to dropping that.
Your proposed language did not strike me as related to what I indicated as an "option 2" enough to make me think it was an attempt to refine its language.  Much of my reason for writing what I did was to emphasize the need to be both accurate and inclusive; I don't mean inclusive in the "be friendly" sense, though that's good too, but rather that when you say something you should consider whether you're implying exclusivity when the phrasing is actually inclusive.  Thus, saying something in a manner that implies it is exclusive to the copyleft option when its meaning is actually inclusive of people choosing other licensing options seems directly contrary to my points above.
To be more explicitly and directly clear:
You said "I want any derivatives to preserve the end user's rights."  This is a statement that could just as easily be made by someone who chooses a copyfree license instead of a copyleft license.  It could also apply to people who choose licenses that are neither copyfree nor copyleft.  It is, in other words, misleading as a way to indicate that if that's what you want you should choose a copyleft license.

Your proposed language did not strike me as related to what I indicated as an "option 2" enough to make me think it was an attempt to refine its language.

Precisely, it wasn't -- sorry if I wasn't clear about that. I don't actually feel qualified to refine the language (other than offering my interpretations as a layman, for what that might be worth), but as an end-user of licensed software, and someone moderately familiar with open source licensing, I believed I could offer an informed opinion on which of the 3 final options in your comment (after reading most of the concerns that preceded them) I thought we could get behind and continue the discussion with.
I hope it might help if I clarify that the only parts of my initial comment that I deem essential were (a) agreeing that delegating the definition to "copyleft" is not terribly useful, from which I suggested dropping option 3; and (b) stating my preference for positive language rather than negative language, from which I suggested dropping roughly "option 1-like" formulations in favor of roughly "option 2-like" formulations.
My adding of a concrete example of an option 2-like formulation was superfluous, and, understandably, ended up crossing a bunch of concerns you had raised before, and this turned up to be counterproductive.
My goal, which I hope is clearer now, was merely to propose a coarse narrowing down of the options on the table, so that we could then focus on the nuances of how to word the chosen option in a way that preserved both accuracy and clarity.
That said, I am willing to accept that directing the discussion in this constrained and top-down manner may not lead to the best results, and that an overall consideration of all possibilities simultaneously, with their nuances and trade-offs, might be needed to reach an optimal point in this wording landscape. But I hope that can be avoided, because as you surely will agree, this is a very complex subject with lots of concerns to balance out.

Re single rights holder dual licensing: "I want every copy made to be open
source"?

"I want it to protect users' freedom."?
Software isn't a subject, it's a class of object.
People are subjects who enjoy freedom.

Just a note about the "it": my reading of the sentence "I want it simple and permissive" doesn't associate the "it" with neither the license nor the software, but rather to a generic state of affairs, as in "I want things simple and permissive."
This is what feels more natural to me, probably also due to the leading question, "Which of the following best describes your situation?". If we do want to use "it" as unambiguously referring to the license, we might want to change the leading question to something like "What kind of license do you prefer?" (in which case the first answer should also be adapted, perhaps to something like "I want it to fit the community I'm working with.")

I'm not sure whether this will surprise anyone, but:
While I might quibble with some of the language and judgements @mlinksva used to arrive at his conclusion, I find the final conclusion presented at least somewhat acceptable, given the challenges involved in trying to make everyone happy-ish with the results of this exercise:

I want it simple and permissive.
I want it to protect software freedom.

I have pondered in the past whose freedom copyleft licenses really protect, primarily.  Initial developers often don't even see the results of their licensing, really, so it's difficult to pick them, even though initial developers who are explicitly trying to keep commercial competitors from bootstrapping from their work do at least tend to get some benefit.  Downstream developers are sometimes given the shaft by mounting administrative overhead in license compliance, or restriction of the ability to develop some types of derivative works (e.g. some Linux+ZFS distribution strategies), and even users are sometimes placed in the unenviable position of (usually unknowingly) illegally distributing copyleft works.
If you consider software as a thing that has rights, though, "software freedom" takes on a whole new meaning, and it becomes the clear winner.
Sure, this is kind of a tongue-in-cheek analysis, but it happens to coincide with a justification of sorts for the most recent suggestion from @mlinksva (along with the more serious justifications already provided).  In my opinion, it's a significant improvement over the language currently on choosealicense.com, and it definitely feels at least "close enough for now", so I say go for it until there's any kind of universally-ish acceptable improvement alternative.
I also think @waldyrious made a good point about the question preceding the three answers.  The question as phrased on the website is a smidgen clunky in its current form, anyway.  I might just amend the language of the proposed new question to say something like permissions, terms, or other phrasing than license, but I'm not really strongly opposed to the use of the word "license" there, either.
Writing, it turns out, can be difficult sometimes, as I learned from doing it professionally for a while.  Incremental improvements that don't come with notable issues are sometimes the best success we can hope to achieve.

@davelab6 - I think the point you raised is a point of contention over "Free Software" philosophy itself, actually.  On one hand, your statement is probably an acceptable point to raise about the problems of copyleft licensing from the point of view of copyfree licensing proponents, so I'm not sure that really detracts from the appropriateness of the phrasing @mlinksva proposed.  On the other hand, "software freedom" is actually within the sphere of acceptable, or even preferred, jargon amongst many copyleft licensing proponents -- and thus probably acceptable phrasing here from that perspective as well.  In this case, I think perhaps the fact your criticism of the phrasing matches up so well with the criticisms from an idealistic perspective that it's a wholly appropriate choice of phrasing in some sense.

Thanks for pointing out some additional ways the language on the home page is a smidgen clunky or ambiguous. I'd like to fix this (which requires more than just changing the GPL heading), indeed I was interested in more discussion on this issue largely because I'm planning to enable translations soon, and one way to make that easier and better is to start from easily understood English (which also aligns with the project's aims).
I'll probably make a PR with small edits to a few of the strings on the home page reflecting above, soonish, and can discuss there.

@mlinksva - I'm glad this has some value.  I worry at times that I might just be bikeshedding.


Clarify Cost Implications of Polling Algorithm

The "Trigger - polling algorithm" section states: "The queue trigger implements a random exponential back-off algorithm to reduce the effect of idle-queue polling on storage transaction costs".
Are these potential costs associated with only the storage transactions or does this polling also count towards the number of invocations & GBs of a consumption plan function? In other words is the polling itself considered a function invocation or is it external to the function and part of the functions runtime?
Also, when running a queue triggered function locally on an empty queue (with no hosts.json setting for maxPollingInterval) the polling does not work as described. Instead the polling starts with a very small random increment (10s of ms) and then maxes out at 2s and never goes above this - the docs above state it will max out at 1m.

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

ID: 5063120f-d48e-6a76-8e6d-208ead92d187
Version Independent ID: 72bb8ecc-6dec-079a-a9d4-52205466a8c6
Content: Azure Queue storage bindings for Azure Functions
Content Source: articles/azure-functions/functions-bindings-storage-queue.md
Service: azure-functions
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

Hi @macux - Thank you for your feedback! We will review and update as appropriate.

We need clarification on this.

This article was updated a while back with details to address @macux's questions. #please-close


Add functionality for managing workflow jobs

This commit adds functions for retrieving, canceling, and relaunching workflow jobs via the AWX API.
Closes issue #33

@cepitacio this will generate a v0.23.0, can you go back to your PR in the terraform provider and upgrade the dependencies to this version please?


Adding telemetry to get some insights about batch sizes

Closes https://github.com/microsoft/FluidFramework/issues/9153

Please take a look at comments :)

Always!


Rationalise the various user settings in LoginManager

Followup to #118 and related to #122
Various settings are transmitted through the orchestrator and other parties (for example webcam name and microphone name) and they're really local. But microphoneName != "none" is used to detect that the user has no microphone.
So this should be fixed, and representation should simply get a "also has voice" boolean. Then all these settings can become truly local.
Possibly related: the weird START_ message that is sent by the master when the session starts.

"Remember me" isn't working. Clear when using it on a new machine.


Type Providers in scripts don't work with SOURCE_DIRECTORY

In a script, if you use Paket to generate load scripts and then try to reference a literal path for a type provider, using SOURCE_DIRECTORY breaks intellisense.
#load ".paket/load/netcoreapp3.1/main.group.fsx"

open FSharp.Data
[<Literal>]
let DealSample = __SOURCE_DIRECTORY__ + "/sample.json"

type Deals = JsonProvider<DealSample> // Deals = Object

If you remove the __SOURCE_DIRECTORY__ bit and just use sample.json, it all works with intellisense. However, at runtime it fails because FSI thinks that the current path is .paket/load/netcoreapp3.1.
Using __SOURCE_DIRECTORY__ used to work, so this feels like a breaking change.

@baronfel any ideas? Does this sound like something with resolving correct FSharpProjectOptions for script files, or something like that?

Is this caused by https://github.com/dotnet/fsharp/issues/11610 ?


transaction-confirmation modal: show details does not change to hide details

but we will remove the show details to automatically displayed the detail box.

Done in #327


Feature/global loader

Description of changes:

Use a global progress loader instead of individual progress

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

A new PR to be created soon that has improved logic for global loading


Fix to skip printing the token received in the request header in the …

What this PR does:
When quarkus http access log is enabled (by setting quarkus.http.access-log.enabled to true), the access log is printed based on the format setting (quarkus.http.access-log.pattern) which is set to the value ‘common’ by default.
The ‘common’ pattern implies the format of %h %l %u %t \"%r\" %s %b where the field %u prints the ‘Remote user that was authenticated’ (Refer: io.quarkus.vertx.http.runtime.filters.accesslog.AccessLogHandler) and token that is passed on the X-Cassandra-Token is printed in the place of this template field.
By adjusting the access log pattern setting by excluding %u, the token will not be printed in the log any more.
Which issue(s) this PR fixes:
Fixes #2176
Checklist

[X] Changes manually tested
[ ] Automated Tests added/updated
[ ] Documentation added/updated
[X] CLA Signed: DataStax CLA

This works fine.. However, I think we should define this as well:
[quarkus.http.access-log.exclude-pattern](https://quarkus.io/guides/http-reference#quarkus-vertx-http-config-group-access-log-config_quarkus.http.access-log.exclude-pattern)

A regular expression that can be used to exclude some paths from logging.

And exclude:

/metrics
/stargate

And best is if we could actually use the ${quarkus.http.non-application-root-path} and ${quarkus.micrometer.export.prometheus.path}, so the regex could look like:
  http:
    access-log:
      pattern: "%h %l %t \"%r\" %s %b"
      exclude-pattern: ${quarkus.http.non-application-root-path}|${quarkus.micrometer.export.prometheus.path}

Makes sense. Let me test the exclude pattern separately and create a separate PR for that.


fixing thrown exception when providing deprecated encoding

I haven't been able to find the encoding 'utf-8' anywhere in the documentation of node, but it seems like some of their methods (such as this one you are using, Buffer.toString()) do accept that as an encoding without throwing an exception. I have changed my code to use the encoding 'utf8' instead of 'utf-8', but all that does is prevent me from traveling this code path that had a bug in it.
So here's a fix for the bug, along with a test that causes that code path to be travelled. I also added some npm scripts so you can just do npm test to run your tests, and npm run test-cov to get a coverage report on the library.
For the record, the exception that was being thrown by node-byline was ReferenceError: encoding is not defined

This is fix is simply:
-    return new Buffer(line, chunkEncoding).toString(encoding);
+    return new Buffer(line, chunkEncoding).toString(this.encoding);


how can i achieve this transformation?

Hello,
I need to create this transformation. Can someone tell me how can this be done using this great library?

What you need is this: https://github.com/luberda-molinet/FFImageLoading/wiki/Transformations-Guide#cornerstransformation


Add support for decorators in SandpackCodeEditor

Tell us how you think we can improve Sandpack
Is it possible to add decorators for CodeEditor as well similar to the CodeViewer decorators? If there is any other way to highlight certain lines that would work as well. A hacky way I can think of is to use the fact that each line has cm-line in class.
Packages affected

[ ] sandpack-client
[x] sandpack-react

Do you have any examples of how you would like to see us implement it?
The same interface as CodeViewer would be great.

Hey, currently, it's not possible via SandpackCodeEditor.
We encourage using decorators only on read-only mode simply because it's static, and decorators will have fixed values. On the other hand, a regular code editor is dynamic and would require handling different use cases, like removing decorators and updating their position.
But I'm curious to know how you would use these decorators on a live code editor. Could you give some examples? Maybe there are some cases I'm not taking into account.
If you're really interested in this feature, I will encourage trying to implement it by yourself using the following API: https://sandpack.codesandbox.io/docs/advanced-usage/components#extensions Plus, you can take some ideas from the original Sandpack implementation.
Hope it helps.

Ah! missed that in the doc. Thanks for pointing it out, extensions, and being able to grab the CodeMirror instance are both very helpful. We can close the issue.
As for the need, I'm trying to build a running tutorial broken into steps. So you set up the base in step1, add feature1 in step2, feature2 in step3, and so on. I want to highlight the difference in code between the subsequent steps clearly, for the reader to understand how the code is building up. But at the same time, they can also edit the code for any step. I'll remove the highlights on any code change, for now, to keep things simple. There'll also be a reset button that will reset the code to the original and bring back the highlights. There will be more users just skimming through the page or following the tutorial locally than those actually editing, where the diff highlight would be very useful.


Add code coverage

I'd like to have some code coverage numbers before shipping a 1.0 release. Unit tests are a bit anemic at this point, so there are probably some bugs that I've yet to discover.

coverage is at about 90% for csv. Good enough for me.

coverage is at about 90% for csv. Good enough for me.


Raise connection limit for postgresql

Current implementation of job history collection:

Each worker node has a  fluentd instance, which has exact one connection to postgresql.
The default connection limit for postgresql is 100.

This will limit the max number of worker nodes to 100.
TO DO:

[ ] Raise default connection limit to a higher number, and make it configurable
[ ] Check connection limit during installation

Actually we only use one fluentd instance. Thus connection limit is not an issue.


Allow element to be inserted at the end of array

Element can be inserted at the very beginning or between existing
array elements. To insert at the very end, however, requires push()
to be used. Allowing insertions at the very end makes insert()
consistent and Array easier to use.

Good call!


(Alpha) V2: Connecting Metamask via mobile links to website not app

When a user goes to app.shapeshift.com with a mobile device and tries to connect to their Metamask wallet the app  takes the user to the metamask website to download the app even if the app is already downloaded.

using mobile, visit app.shapeshift.com
Select "Connect Wallet"
Select "metamask"
Notice getting routed to download app instead of app opening

A/C:
When a user connects metmask through mobile the metamask app should open and prompt a wallet connection

This has regressed on one of the last releases.
https://discord.com/channels/554694662431178782/873244924026449940/931722005986832444


Preview vs Present

There seems to be an issue where the server side code renders markdown differently than the client side javascript code?
it renders the markdown with the html ... readable.
Markdown:
```sh
mkdir my-repository
cd my-repository
git init

Present&Preview:

mkdir my-repository
<span class="hljs-built_in">cd</span> my-repository
git init

Preview generated & updated after editing

mkdir my-repository
cd my-repository
git init

same here

I have updated reveal to 3.8. That might fix this issue

I was not able to reproduce it initially and I don't see it with #50 changes. Will merge and update docker today


follow link issue

VSCode Version: 1.3.0-insider
OS Version: Windows 10 14366.rs1_release

Steps to Reproduce:

download https://github.com/ms-iot/samples/blob/develop/IotCoreService/README.md
open this file
the file contains an url at Line 24
set mouse cursor over url or try to open the url (ctrl +)

the last char ')' should not be part of the url...

Nice catch! We don't count matching parens in link detection
The text is:
7. At this point, ServiceMain has been called.  There is no functionality presently in ServiceMain, but you can consult the [MSDN documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms687414(v=vs.85).aspx) to add functionality as desired!

Perhaps this can be fixed without counting brackets...


Use mock IPFS server in integration tests

We don't upload an IPFS icon in the integration tests, which is why we always use the fallback icon (the encointer heads logo) in these tests. However, the screenshots should display the Leu community logo. If we change the setting that the integration tests use the MockIpfs service, this will automatically happen.

According to my reviews, we are currently only using the getCommunityIcon method of Ipfs, and it has been found that no other methods or variables are being used. We hold the classes and their variables and methods named Ipfs, IpfsDio, and Object only to use the getCommunityIcon method. Additionally, the package named dio is only used within Ipfs. Generally, we use http within the application.
Questions:

How accurate is it to use mocks only for the getCommunityIcon method of Ipfs within the integration test?
What would happen if we remove the dio package from the project and used http instead?
Wouldn't using mock classes in the real-app-integration-test make our test unreliable?

Recommendations:

Let's remove the dio package.
Let's create a rule called HttpApi instead of Ipfs (since the file name is already like that) and use the http package within it. Let's bring the methods that use http in the project to this rule.
I suggest resolving the situation from CommunityStore (if isIntegrationTest is true...) and abandoning the use of mock Ipfs or MockHttpApi for integration testing.

To answer your questions:

How accurate is it to use mocks only for the getCommunityIcon method of Ipfs within the integration test?

The problem is, that the real ipfs api will never return a value in the integration tests, so it is useless anyway. However, this is something that we should fix in the long run: https://github.com/encointer/encointer-wallet-flutter/issues/1142

What would happen if we remove the dio package from the project and used http instead?

Nothing, this is a good change, the person who implemented this did probably not know that we already use http.

Wouldn't using mock classes in the real-app-integration-test make our test unreliable?

Yes, a bit. And as mentioned above, it should be changed in the future if possible.


Does IAuthorizationFilter Attribute work with FastEndpoint?

How can I implement my IAuthorizationFilter attribute correctly on a FastEndpoints endpoint?

IAuthorizationFilter does not exist in the asp.net minimal api world.
the closest you get is IEndpointFilter.
here's an example endpoint filter being used with fastendpoints.


Add a User Agent

What would you like to be added:
It should like this:
kueue-manager/v0.2.0 (linux/amd64)

The version should be fed using ldflags https://www.digitalocean.com/community/tutorials/using-ldflags-to-set-version-information-for-go-applications
Why is this needed:
For proper logging in apiserver.
Also, the first part of the user agent (kueue-manager) would be added as a Manager when using ServerSideApply.
Completion requirements:
This enhancement requires the following artifacts:

[ ] Design doc
[ ] API change
[ ] Docs update

The artifacts should be linked in subsequent comments.

/help

/help cancel
/assign


Small documentation mistake

https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp#L7986
It says that reading 1-9 in the decimal1 state will go to an error state, but actually it goes to the decimal2 state, as can be seen here
https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp#L8147-L8155

🔖 Release item
This issue/PR will be part of the next release of the library. This template helps preparing the release notes.
Type

[ ] ✨ New Feature
[ ] 🐛 Bug Fix
[ ] ⚡ Improvement
[x] 🔨 Further Change
[ ] 🔥 Deprecated function

Description

Fixed documentation of number scanner. #1895


detect_orientation fails

I am using ppa:alex-p/tesseract-ocr on ubuntu 16.04.
tool.detect_orientation(img) gives error as below:
KeyError                                  Traceback (most recent call last)
/anaconda3/lib/python3.6/site-packages/pyocr/tesseract.py in detect_orientation(image, lang)
213             output = {x: y for (x, y) in output}
--> 214             angle = int(output.get('Rotate', output['Orientation in degrees']))
215             # Tesseract reports the angle in the opposite direction the one we
KeyError: 'Orientation in degrees'

apologies this is likely a pyocr issue


Send spans asynchronously to prevent blocking process

Hi @iku000888 Thanks for helping out!
I've made some improvements based on your branch. Let me know what you think.
Thanks in advance.
https://github.com/hden/aws-xray-sdk-clj/pull/29

closing in favor of #29


audio erpr

Describe your bug here.
Mind you, if you are modding, please try testing your bug in a clean version of the engine instead, this ensures the bug is actually caused by the engine itself.
i was tryna load dialogue and it didnt work, and its not the script because it works in other mods.
Command Prompt/Terminal logs (if existing)
openfl/media/Sound.hx (line 407)
backend/Paths.hx (line 429)
backend/Paths.hx (line 190)
objects/TypedAlphabet.hx (line 39)
flixel/group/FlxGroup.hx (line 144)
flixel/group/FlxSpriteGroup.hx (line 209)
cutscenes/DialogueBoxPsych.hx (line 301)
flixel/group/FlxGroup.hx (line 144)
flixel/addons/ui/FlxUIState.hx (line 212)
backend/MusicBeatState.hx (line 81)
states/PlayState.hx (line 1649)
flixel/FlxState.hx (line 222)
flixel/FlxGame.hx (line 752)
flixel/FlxGame.hx (line 682)
flixel/FlxGame.hx (line 556)
openfl/events/EventDispatcher.hx (line 444)
openfl/display/DisplayObject.hx (line 1400)

Uncaught Error: Error loading sound from file: ./assets/shared/sounds/gf.ogg
Please report this error to the GitHub page: https://github.com/ShadowMario/FNF-PsychEngine

> Crash Handler written by: sqirra-rng

Are you modding a build from source or with Lua?
Lua and Source
Which branch of the engine are you using?
Latest (main)
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
All i added was a sound file named gf in mods>packname>sounds (which was in ogg format.)

The gf.ogg file may be corrupted(literally referenced from the error). You may need to recreate it(if you made the ogg) or re-download it.


Include outline/DocumentSymbol for Camel routes in features of readme

see https://github.com/camel-tooling/camel-language-server/issues/73

verified with master branch


ARROW-6916: [Developer] Sort tasks by name in Crossbow e-mail report

In the current e-mail report, the names are in arbitrary (hash-table-determined) order

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@8e19822). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #5688   +/-   ##
=========================================
  Coverage          ?   66.87%
=========================================
  Files             ?      534
  Lines             ?    75401
  Branches          ?        0
=========================================
  Hits              ?    50422
  Misses            ?    24979
  Partials          ?        0

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 8e19822...5c762c9. Read the comment docs.

+1


standardization, and fix for editors with non-occulous builds (missing popups)

\game\tools\worldEditor\scripts\editor.ed.cs function Editor::create() sets $GameCanvas = Canvas; with the rest following conversion conventions for https://github.com/GarageGames/Torque3D/pull/1297 . (see https://github.com/GarageGames/Torque3D/pull/1297/files#diff-e50af352c48fb4969d220ecd5a7521b9L79 on down)
:

How can I reproduce the problem? I tested a couple of editor popups and they appear to work.

At the time, the repro-check was adding and removing a terrain, and not receiving a popup. Must have been a transcription error this end somehow.

I'll double check. So you think these changes are unnecessary? Or going to resubmit?

Willing to say redundant unless similar lack of popups are otherwise reported, but will keep the fork around for say, a week or so just in case.

Okie dokie, thanks for this.


Step 1: Create a Task List

Step 1: Create a Task List
A task list creates checkboxes for people with access :book:in a repository to check off. They're very useful for tracking issues and pull requests.
If you include a task list in the body of an issue or pull request, you'll see a progress indicator in your issue list.
Watch out! The syntax for task lists is very specific. Be sure to include the spaces where required, or else they won't render.
Example

Outline my portfolio

```suggestion

introduction to

[x] Additional markup is supported, including @mentions, #references, links, emphasis, and HTML tags.
[x] List syntax is required.

You can nest lists below, too!

[x] This item is completed.
[x] This item is not complete.

#### Rendered

- [x] Additional markup is supported, including @mentions, #references, [links](url), **emphasis**, and HTML tags.
- [x] List syntax is required.
  - You can nest lists below, too!
- [x] This item is complete.
- [ ] This item is not complete.

### :keyboard: Activity: Add a comment

1. Add a comment to this issue, using Markdown to create a list of items to complete. Your task can include any tasks you wish, or you can use this example:

       - [ ] Turn on GitHub Pages
       - [ ] Outline my portfolio
       - [ ] Introduce myself to the world

1. Use the **Preview** tab to check your markdown formatting.
1. Click **Comment**.

For a printable version of the steps in this course, check out the [Quick Reference Guide](https://lab.github.com/public/communicating-using-markdown.pdf).

Watch below your comment for my response.

> _If you perform an expected action and don't see a response from me after a few seconds, refresh the page for your next steps._

__Originally posted by @github-learning-lab in https://github.com/jefferycline1/markdown-portfolio/issues/1#issuecomment-699600417__

``

Activate GitHub portfolio
Introduce myself to the world

Learn how to properly use markdown

-use markdown syntax to communicate on GitHub.

`

A

open GitHub portfolio

Introduce myself to world

Start hands on learning using  github

  open my GitHub portfolio

introduce myself to world]()[

use markdown resources to comunicate
use my provided repos to share my ideas

#``open my portfolio

Learn how to use markdown

I didn't see a task list in that comment. Remember, a task list starts with the syntax - [ ]  and then the task list item. The formatting is specific! Try again with a new comment. You can copy this one if you would like to see how they look:
- [ ] Turn on GitHub Pages
- [ ] Outline my portfolio
- [ ] Introduce myself to the world

If you would like assistance troubleshooting, create a post on the GitHub Community board. You might also want to search for your issue to see if other people have resolved it in the past.
Watch below your comment f

[ ]  Turn on GitHub pages
[ ]  Outline my Portfolio
[ ]  Introduce myself to the world


RFC: E notation BigDecimal parser

Related to : #9580
This implements a first pass at this (not stack based parser, to avoid needing a stack, just a translation of the parse table into logic)
PR which is still a work in progress and would benefit from your inputs should we wish to progress with this
created with the productions below (syntax below works in http://hackingoff.com/compilers/ll-1-parser-generator)
Scientific -> OptionalSign Number
OptionalSign -> s |
Number -> Digits OptionalFractional OptionalExponent | Fractional OptionalExponent
OptionalFractional -> '.' OptionalDigits
Fractional -> '.' Digits
OptionalExponent -> e OptionalSign Digits |
OptionalDigits -> Digits |
Digits -> Digit RepeatDigit
RepeatDigit -> Digit |
Digit -> n

Out of curiosity, what are perf gains?

@sija things are slower at the moment:
require "benchmark"

Benchmark.ips do |x|
  x.report("ex1 - long") do
    BigDecimal.new("+0829756293456064502345702345.283457863284759365e-7364756823")
  end

  x.report("ex2 - long error") do
    BigDecimal.new("138479783434.927347264629873647269348762e82347978e")
  rescue
    #
  end

  x.report("ex3 - short") do
    BigDecimal.new("1.1")
  end

  x.report("ex3 - short error") do
    BigDecimal.new("1.1-")
  rescue
    #
  end
end

On current master:
MRc:crystal stephen$ ./bin/crystal run --release bdp.cr

       ex1 - long 781.23k (  1.28µs) (± 0.90%)  672B/op   4.19× slower
 ex2 - long error 434.36k (  2.30µs) (± 1.56%)  785B/op   7.54× slower
      ex3 - short   3.27M (305.53ns) (± 1.15%)  464B/op        fastest
ex3 - short error 578.83k (  1.73µs) (± 1.59%)  464B/op   5.65× slower

this:
MRc:crystal stephen$ bin/crystal run --release bdp.cr
       ex1 - long 398.11k (  2.51µs) (± 1.12%)   1.2kB/op   4.99× slower
 ex2 - long error 275.56k (  3.63µs) (± 1.20%)  1.27kB/op   7.20× slower
      ex3 - short   1.99M (503.74ns) (± 1.52%)    784B/op        fastest
ex3 - short error 405.12k (  2.47µs) (± 1.45%)  1.04kB/op   4.90× slower

Apologies for the long delay on this... I will review if still relevant and fix up PR if needed (else close)

Are there cases that this new parser can handle and the original parser can't?

@lbguilherme The original motivation was the current implementation seems somewhat ad-hoc and contained a number of parse bugs (see #9547) mainly around invalid notation. I fixed all the issues I could find in #9577 but thought maybe a refactored parser would be better. This one was created from a stricter grammar for E notation so potentially could lead to a more robust parser of the notation.
I see however that since this was created, #10641 has been discussed, so maybe these changes are not relevant anymore in the bigger picture of a rewrite of BigDecimal.


my phone is in read-only mode

Hi,
I've installed scrcpy, it looks great.
it shows my phone, but i can't do nothing from the PC
(i'm using a Ubuntu 19.04 and a Xiaomi Redmi 7)
thx for your help

https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#mouse-clicks-do-not-work
https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323

Thx it works fine now


Support for HTTP proxy with authentication

Question: Does the library have support for HTTP proxies with authentication using the mqtt_tls_client_ws() API?
For example, the Paho Mqtt library supports HTTP proxies with authentication: https://github.com/eclipse/paho.mqtt.c/pull/542#issuecomment-430072283

No. I'm not sure but it seems that Boost.Beast doesn't support it so mqtt_cpp doesn't support it.
You can use the command proxytunnel.
https://github.com/proxytunnel/proxytunnel
It supports authentication.
proxytunnel -p proxy.sever:port -d target.host:port -a localport

for example,
proxytunnel -p proxy.yourdomain:8080 -d target.host:443 -a 10000

You can connect using <IP_ADDRESS>:10000.

ah, I see. Interesting, thanks for the link. I'll take a look

I have made changes to my local copy of the repo to allow mqtt_cpp to support proxy servers.  The footprint for my changes is relatively small - a new method was added to tcp_endpoint.cpp and ws_enpoint.cpp to find the lowest stream layer, and client.cpp has setters for the the proxy details and the connect_impl methods were changed to establish a TCP tunnel through the proxy server.
I have tested this using the proxy server called Squid and the results are good.  Also, the changes do not break any of the existing system tests or unit tests.  I don't think that I can easily add new system tests for this, as they would require a live proxy server.


Translate LIKE ANY expressions

Translate LIKE ANY expressions
Work in progress. See #422 for more information.
Status
This PR currently has very brittle support for translation.
Examples
1. Any + StartsWith
string[] collection = new string[] { "a", "b", "c" };

source.Where(x => collection.Any(y => x.SomeString.StartsWith(y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" LIKE ANY ('{a%,b%,c%}');

2. Any + EndsWith
string[] collection = new string[] { "a", "b", "c" };

source.Where(x => collection.Any(y => x.SomeString.EndsWith(y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" LIKE ANY ('{%a,%b,%c}');

3. Any + Like
string[] collection = new string[] { "a", "b", "c%" };

source.Where(x => collection.Any(y => EF.Functions.Like(x.SomeString, y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" LIKE ANY ('{a,b,c%}');

4. Any + ILike
string[] collection = new string[] { "a", "b", "c%" };

source.Where(x => collection.Any(y => EF.Functions.ILike(x.SomeString, y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" ILIKE ANY ('{a,b,c%}');

5. All + StartsWith
string[] collection = new string[] { "a", "b", "c" };

source.Where(x => collection.All(y => x.SomeString.StartsWith(y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" LIKE ALL ('{a%,b%,c%}');

6. All + EndsWith
string[] collection = new string[] { "a", "b", "c" };

source.Where(x => collection.All(y => x.SomeString.EndsWith(y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" LIKE ALL ('{%a,%b,%c}');

7. All + Like
string[] collection = new string[] { "a", "b", "c%" };

source.Where(x => collection.All(y => EF.Functions.Like(x.SomeString, y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" LIKE ALL ('{a,b,c%}');

8. All + ILike
string[] collection = new string[] { "a", "b", "c%" };

source.Where(x => collection.All(y => EF.Functions.ILike(x.SomeString, y)));

SELECT x."SomeProperty"
FROM source AS x
WHERE x."SomeProperty" ILIKE ALL ('{a,b,c%}');

Does this sound feasible to you? If so, do you see any blocking issues with the current implementation?

Yes, that sounds feasible. I'll review again and try to merge in the next couple of days. Note that 2.1.0 is supposed to come out this week, at which point the priority will be to release everything on the Npgsql side.

@roji Just pushed some changes to address your review.

Thanks, merged for 2.1.


Service Dialog - Element visibility on condition is not working

PV https://www.pivotaltracker.com/story/show/141443927.

@miq-bot add_label bug
@miq-bot add_label catalog

@miq-bot add_label catalogs

@miq-bot add_label euwe/yes

@chalettu client/app/core/dialog-field-refresh.service.js doesn't exist in Euwe. Please create an Euwe-specific PR (referencing this one) or suggest other PRs to backport.

Backported to Euwe via https://github.com/ManageIQ/manageiq-ui-service/pull/580


[WIP] Add hook and forwardRef support

WIP!!! Still need to validate and refine/polish some changes, but please feel free to discuss this.
Addresses:
https://github.com/FormidableLabs/radium/issues/1016
https://github.com/FormidableLabs/radium/issues/1010
This PR makes some big changes, and I understand if dropping support for React < 16.8 on master is not do-able at this time. However, the inability to use hooks and forwardRef with Radium means we are missing out on some of the great features being introduced to React.
Hopefully the changes in here can at least serve as a point for discussion (if everything works as-intended).

Requires React v16.8+
Supports hooks in radium wrapped components
Supports radium wrapped forwardRef components
Makes changes to the codepath for function components (see enhancer.js)
Uses hooks + new context API internally

I also had to upgrade babel, eslint + plugins, and flow to be able to use the latest version of React features + their associated flow types.
I had to comment out node 6 for appveyor because the eslint react hooks plugin is asking for node 7+

@nathanmarks major appreciation for this PR - We've been moving towards placing Radium into a more stable maintenance mode and avoiding larger refactors, but this type of work warrants a semver minor release that I think the community would really appreciate.

Hello @nathanmarks! I wanted to see if there was any assistance I could provide to aide with this pull request :) I have a few spare cycles this week and can help with review or getting the branch ready for merge.

@kylecesmat apart from one of the things I highlighted in a comment that needs covering still in the function component enhancer and some additional possible DRY-ing up between the class and function enhancers, would be great if you could give this a thorough review.
Do you guys have any codebases still running Radium that this could be tested on to validate it? (I noticed you had moved to emotion for some projects, which we are looking into as a long term replacement)
Would be great to make sure we haven't accidentally introduced any issues that aren't covered in the test suite (such as FOUC problems with media queries: https://github.com/FormidableLabs/radium/issues/626)

@nathanmarks Thank you so much for putting this together! I tried out your changes in our app to see how they work with our pretty complex implementation and to make it possible to use hooks in our radium-connected components, and so far so good! To make it easy to test and easy to deploy a version of our app that uses your work, I made a repo with all the built radium files that can be directly used as the dependency string with npm/yarn. In the package.json:
-  "radium": "0.25.2",
+  "radium": "brandcast/radium-built#c7bd574",

Thanks @acusti but that shouldn’t actually be necessary. Radium uses the ‘publishr’ to to add build deps and a postinstall can’t to actually do a build when installing from git branch, and does none of that when installing from npm/yarn (which has the built, not-in-git fiat files).
Did you find something wrong with a direct git branch dependency?

a postinstall to actually do a build when installing from git branch

That’s clever! I didn’t know, so I just manually ran all the build commands I found in the package.json (build-lib, build-dist, build-es), then copied those built files over into a bare repo (brandcast/radium-built) and committed them, then referred to the commit hash in the dependency string. It works, but using a “direct git branch dependency” sounds way easier. I’ll try this tomorrow:
  "radium": "nathanmarks/radium#add-hook-support",

@ryan-roemer I tried with the direct git branch dependency and the yarn install failed:
[4/4] 🔨  Building fresh packages...
error /Users/andrew/Projects/next-reference/node/node_modules/radium: Command failed.
Exit code: 1
Command: cd lib || npm run build
Arguments:
Directory: /Users/andrew/Projects/next-reference/node/node_modules/radium
Output:
/bin/sh: line 0: cd: lib: No such file or directory
npm WARN lifecycle The node binary used for scripts is /var/folders/77/wp1tljpd5jn40ghhw7lxl_gr0000gn/T/yarn--1561653493362-0.19655672276763525/node but npm is using /usr/local/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

><EMAIL_ADDRESS>build /Users/andrew/Projects/next-reference/node/node_modules/radium
> npm run clean && builder concurrent --buffer build-lib build-dist build-es

npm WARN lifecycle The node binary used for scripts is /var/folders/77/wp1tljpd5jn40ghhw7lxl_gr0000gn/T/yarn--1561653493362-0.19655672276763525/node but npm is using /usr/local/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

><EMAIL_ADDRESS>clean /Users/andrew/Projects/next-reference/node/node_modules/radium
> rimraf lib es dist

[builder:config:environment] {"cwd":"/Users/andrew/Projects/next-reference/node/node_modules/radium","dir":"/Users/andrew/Projects/next-reference/node/node_modules/builder/lib"}
[builder:config] Unable to load config file: .builderrc
[builder:local-detect] Error importing local builder: Cannot find module '/Users/andrew/Projects/next-reference/node/node_modules/radium/node_modules/builder/bin/builder-core.js'
[builder:local-detect] Using global builder at: /Users/andrew/Projects/next-reference/node/node_modules/builder/bin/builder-core.js
[builder:builder-core:start:52506] Started: concurrent build-lib, build-dist, build-es
[builder:concurrent] build-lib, build-dist, build-es
 * build-lib - builder run --env "{\"BABEL_ENV\":\"commonjs\"}" build-babel -- -d lib --verbose
 * build-dist - builder concurrent --buffer build-dist-dev build-dist-prod
 * build-es - builder run build-babel -- -d es
[builder:concurrent] Starting with queue size: unlimited
[builder:proc:start] Command: builder run --env "{\"BABEL_ENV\":\"commonjs\"}" build-babel -- -d lib --verbose
[builder:proc:start] Command: builder concurrent --buffer build-dist-dev build-dist-prod
[builder:proc:start] Command: builder run build-babel -- -d es
[builder:config:environment] {"cwd":"/Users/andrew/Projects/next-reference/node/node_modules/radium","dir":"/Users/andrew/Projects/next-reference/node/node_modules/builder/lib"}
[builder:config] Unable to load config file: .builderrc
[builder:local-detect] Using global builder at: /Users/andrew/Projects/next-reference/node/node_modules/builder/bin/builder-core.js
[builder:builder-core:start:52508] Started: run build-babel
[builder:local-detect] Error importing local builder: Cannot find module '/Users/andrew/Projects/next-reference/node/node_modules/radium/node_modules/builder/bin/builder-core.js'
[builder:run] build-babel - babel src --ignore "**/__tests__/*","**/__mocks__/*"
[builder:proc:start] Command: babel src --ignore "**/__tests__/*","**/__mocks__/*" -d lib --verbose
{ Error: Cannot find module '@babel/preset-flow' from '/Users/andrew/Projects/next-reference/node/node_modules/radium'
    at Function.module.exports [as sync] (/Users/andrew/Projects/next-reference/node/node_modules/resolve/lib/sync.js:71:15)
    at resolveStandardizedName (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePreset (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/files/plugins.js:58:10)
    at loadPreset (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/files/plugins.js:77:20)
    at createDescriptor (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
    at items.map (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:109:50)
    at Array.map (<anonymous>)
    at createDescriptors (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
    at createPresetDescriptors (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:101:10)
    at presets (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:47:19) code: 'MODULE_NOT_FOUND' }
[builder:proc:end:1] Command: babel src --ignore "**/__tests__/*","**/__mocks__/*" -d lib --verbose
[builder:builder-core:end:52508] Task: run build-babel, Error: Command failed: sh -c babel src --ignore "**/__tests__/*","**/__mocks__/*" -d lib --verbose

[builder:proc:end:1] Command: builder run --env "{\"BABEL_ENV\":\"commonjs\"}" build-babel -- -d lib --verbose
[builder:proc:error] Code: 1, Command: builder run --env "{\"BABEL_ENV\":\"commonjs\"}" build-babel -- -d lib --verbose
[builder:config:environment] {"cwd":"/Users/andrew/Projects/next-reference/node/node_modules/radium","dir":"/Users/andrew/Projects/next-reference/node/node_modules/builder/lib"}
[builder:config] Unable to load config file: .builderrc
[builder:local-detect] Using global builder at: /Users/andrew/Projects/next-reference/node/node_modules/builder/bin/builder-core.js
[builder:builder-core:start:52510] Started: run build-babel
[builder:run] build-babel - babel src --ignore "**/__tests__/*","**/__mocks__/*"
[builder:proc:start] Command: babel src --ignore "**/__tests__/*","**/__mocks__/*" -d es
[builder:local-detect] Error importing local builder: Cannot find module '/Users/andrew/Projects/next-reference/node/node_modules/radium/node_modules/builder/bin/builder-core.js'
{ Error: Cannot find module '@babel/preset-flow' from '/Users/andrew/Projects/next-reference/node/node_modules/radium'
    at Function.module.exports [as sync] (/Users/andrew/Projects/next-reference/node/node_modules/resolve/lib/sync.js:71:15)
    at resolveStandardizedName (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePreset (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/files/plugins.js:58:10)
    at loadPreset (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/files/plugins.js:77:20)
    at createDescriptor (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
    at items.map (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:109:50)
    at Array.map (<anonymous>)
    at createDescriptors (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
    at createPresetDescriptors (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:101:10)
    at presets (/Users/andrew/Projects/next-reference/node/node_modules/@babel/core/lib/config/config-descriptors.js:47:19) code: 'MODULE_NOT_FOUND' }
[builder:proc:end:1] Command: babel src --ignore "**/__tests__/*","**/__mocks__/*" -d es
[builder:builder-core:end:52510] Task: run build-babel, Error: Command failed: sh -c babel src --ignore "**/__tests__/*","**/__mocks__/*" -d es

[builder:proc:end:1] Command: builder run build-babel -- -d es
[builder:proc:error] Code: 1, Command: builder run build-babel -- -d es
[builder:finish] Hit 2 errors:
  * Error: Command failed: sh -c builder run --env "{\"BABEL_ENV\":\"commonjs\"}" build-babel -- -d lib --verbose

  * Error: Command failed: sh -c builder run build-babel -- -d es

[builder:builder-core:end:52506] Task: concurrent build-lib, build-dist, build-es, Error: Command failed: sh -c builder run --env "{\"BABEL_ENV\":\"commonjs\"}" build-babel -- -d lib --verbose

[builder:config:environment] {"cwd":"/Users/andrew/Projects/next-reference/node/node_modules/radium","dir":"/Users/andrew/Projects/next-reference/node/node_modules/builder/lib"}
[builder:config] Unable to load config file: .builderrc
[builder:local-detect] Using global builder at: /Users/andrew/Projects/next-reference/node/node_modules/builder/bin/builder-core.js
[builder:builder-core:start:52509] Started: concurrent build-dist-dev, build-dist-prod
[builder:concurrent] build-dist-dev, build-dist-prod
 * build-dist-dev - webpack
 * build-dist-prod - webpack --config=webpack.config.minified.js
[builder:concurrent] Starting with queue size: unlimited
[builder:proc:start] Command: webpack
[builder:proc:start] Command: webpack --config=webpack.config.minified.js
[builder:local-detect] Error importing local builder: Cannot find module '/Users/andrew/Projects/next-reference/node/node_modules/radium/node_modules/builder/bin/builder-core.js'
[builder:proc:end:1] Command: builder concurrent --buffer build-dist-dev build-dist-prod
[builder:proc:error] Code: 1, Command: builder concurrent --buffer build-dist-dev build-dist-prod
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build: `npm run clean && builder concurrent --buffer build-lib build-dist build-es`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script.

@acusti -- Thanks. I'll take a look.

@acusti -- good catch. This PR breaks the publishr workflow.
@nathanmarks -- I'm going to create a patch for you that will hopefully work for our publishr workflow. (package.json changes.)

@acusti @nathanmarks -- this should fix the publishr workflow I think!
diff --git a/package.json b/package.json
index 72b92e5..7e04935 100644
--- a/package.json
+++ b/package.json
@@ -61,6 +61,7 @@
     "@babel/plugin-syntax-dynamic-import": "^7.0.0",
     "@babel/plugin-transform-destructuring": "^7.0.0",
     "@babel/preset-env": "^7.0.0",
+    "@babel/preset-flow": "^7.0.0",
     "@babel/preset-react": "^7.0.0",
     "babel-loader": "^8.0.0",
     "builder": "^3.2.3",
@@ -76,9 +77,7 @@
     "react": "^16.8.0"
   },
   "devDependencies": {
-    "@babel/core": "^7.0.0",
     "@babel/node": "^7.0.0",
-    "@babel/preset-flow": "^7.0.0",
     "babel-eslint": "^10.0.1",
     "babel-plugin-istanbul": "^5.1.0",
     "caniuse-api": "^2.0.0",

@kylecesmat sorry, had a really busy couple of weeks!
Are you guys still wanting to see this get in as the final big update to Radium?

@nathanmarks absolutely no worries, thank you for taking time out of your life to contribute to this project :)
We'd love to include this feature in Radium. I think we're close, let me know if you're able to address the feedback above and we'll get it merged + released.

Started to finish up

Coverage decreased (-0.4%) to 94.914% when pulling 775b41524e3a2f06d1954b3ad87c5446361d6d5e on nathanmarks:add-hook-support into 707cd1159bb066b7bb677d6c580a4730f63d769f on FormidableLabs:master.

Coverage decreased (-0.4%) to 94.914% when pulling 775b41524e3a2f06d1954b3ad87c5446361d6d5e on nathanmarks:add-hook-support into 707cd1159bb066b7bb677d6c580a4730f63d769f on FormidableLabs:master.

@ryan-roemer following up on the publishr workflow, i just retried the nathanmarks/radium#add-hook-support dependency string and it installed successfully, so it seems that is all fixed 👍

btw, the coverage report on master is a little messed up 🤔 there's an issue with the line #s after a certain point in most files due to how the webpack rules were configured. I've fixed this.

@acusti how's the latest working for you? I think everything is done 🤔

@nathanmarks it’s working great! we put it through QA, found no issues, and are currently using it in production 🚀

@kylecesmat based on:

@acusti how's the latest working for you? I think everything is done 🤔

sounds like this is ready for a re-review!

@acusti @nathanmarks standby for some code review, will try to get this merged & released today!

Pulled this down and ran the suites/verified publishing. Lets merge this and get it released as v0.26.0 ✨


Astropy Quantity Method

Added a method make_quant() in PSS_util that checks to see if an input is an astropy quantity, and if it is not, makes it into one with default units. Bases on @paulthebaker 's  #13 .
Can be used as follows:
self.f0 = make_quant(f0,'MHz')

Returns astropy quantity with units of MHz.

My current plan is to merge changes once Travis CI checks out...

This just adds the make_quant and unit_init functions.  It doesn't use them anywhere, yet?

you'll have to add astropy to the requirements, so travis installs it before running

And correct the functions are there, but not used in the code yet.