Implicit value formatting

Hi, I was configuring cxxopts for new project and used some implicit values. They look a little too complex for me
--fullscreen [=monitor_name(=PRIMARY)]

with a little tweak (see below) you can have one of those
--fullscreen [monitor_name]=PRIMARY
--fullscreen [monitor_name=PRIMARY]

but I know it may not fit everyone.
Would you consider using std::format (since C++20) to allow more customization? Either per-option or at higher level.

Here is the little tweak on cxxopts.hpp around LN2150.
At the end of format_option is for options with implicit value formatting like
result += " [=" + arg + "(=" + toLocalString(o.implicit_value) + ")]";

but I would like it to look like one of those
result += " " + arg + "=" + toLocalString(o.implicit_value);
result += " [" + arg + "=" + toLocalString(o.implicit_value) + "]";

to be more in line with the one without implicit value
result += " " + arg;

My personal goal is to have <argument> for options with required values and [argument=DEFAULT] or [argument]=DEFAULT.
I like this library, if you like I will prepare the change as Pull Request. I just need to know whenever you like the idea and how to approach it.

I think your suggested syntax does look better. I'm happy to look at a PR with the changes. I don't really want to use std::format because I want to keep supporting older versions of c++.

Our team would prefer syntax like the following:
--foo [=BAR]

Handling of empty strings is also sub-par, showing up like this right now:
--foo [=FOO-ARG(=)]

We would prefer the empty implicit value to be replaced with <empty>.

Sorry for late reply due to lack of time.
I hastily put together the small formatting tweak (--output [BIN=b.def]) in MR to my fork.
If you wish, there is another MR with ability to specify format for each option (not a good idea, more of PoC). It can be behind CMake option() so you need to explicitly enable it (for those who don't have C++20 support or just don't want the functionality).
I would like to tweak it to be configured on cxxopts::Options instead of Value/HelpOptionDetails but I will need to find time to look into it.


Read the video from android asset folder

I must to read the video from android asset folder, so using require or putting the video in android/raw doesn't suit my needs.
I know this issue has been reported, but it doesn't seem to actually fix it. Hope someone can help me, thanks.
Below are the paths I've tried, but unfortunately none of them work.
source={{ uri: 'file:///android_asset/test.mp4' }}
source={{ uri: 'asset:/test.mp4' }}

Related References：
Using file path in react-native-video
Path of Android asset folder
The same issue but he fix it by adjusting source code
Read the video from android raw folder but not my case
The same issue：
#2096, #1826

try like require('../../assets/vuclink1.mp4')
<Video       ref={(ref) => {         this.player = ref       }}      source={videoURL}     style={{       position: 'relative',       top: 0,       left: 0,       bottom: 0,       right: 0, width:"100%",height:"100%",     }} />

try like require('../../assets/video.mp4')
<Video ref={(ref) => { this.player = ref }} source={videoURL} style={{ position: 'relative', top: 0, left: 0, bottom: 0, right: 0, width:"100%",height:"100%", }} />

Thank you for your answer, but please clarify my problem first, my file is not in the top-level directory, but in the compiled asset directory of android. Your answer is for files placed in the top-level directory

According java code, it asset:// should be a valid uri to use it. but I didn't find the 'full' implementation (I was expecting specific implementation).
As a workaround you should be able to use file:///data/data//test.mp4
But depending on installation place of the app this path can change...
According to this:
https://stackoverflow.com/questions/51853695/play-video-with-exoplayer-through-a-folder-in-the-assets-folder
You can also try to use the uri asset:///test.mp4
Please let me know if you find a solution.

did you try with : assets-library:// ?

This will need a new loader adding to support loading files from assets.
An example of this being done in exoplayer can be seen here
We'd essentially want to add a detection for an asset:// type and add a new loader here https://github.com/react-native-video/react-native-video/blob/66b2ba3fcfd4efb7863530da76950ba397ebde85/android/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java#L722

@freeboub I tried the way you provided, but unfortunately it doesn't work


Persist compiler validation does not take into account escape character

Description:
$subject. Following is valid entity definition. However, this throws errors from validations
type 'Building record {|
    readonly string 'buildingCode;
    string city;
    string state;
    string country;
    string postalCode;

    Workspace[] workspaces;
|};

type Workspace record {|
    readonly string workspaceId;
    string workspaceType;

    Building location;
    Employee employee;
|};

When looking through this, I noticed ballerina allows Ballerina base types to be escaped in records.
@MaryamZi Is this the expected behaviour?
type 'Building record {|
    readonly string 'buildingCode;
    'string city;
    string state;
    string country;
    string postalCode;

    Workspace[] workspaces;
|};

When looking through this, I noticed ballerina allows Ballerina base types to be escaped in records.
@MaryamZi Is this the expected behaviour?
public type 'Building record {|
    readonly string 'buildingCode;
    'string city;
    string state;
    string country;
    string postalCode;

    Workspace[] workspaces;
|};

This is being tracked in https://github.com/ballerina-platform/ballerina-lang/issues/39441


Module cannot initialise when compiled with LTO

Initially please make sure the problem hasn't been already addressed:

[ Y ] Are you using the latest driver?
(https://www.displaylink.com/downloads/ubuntu)
[ Y ] Are you using the latest EVDI version?
(https://github.com/DisplayLink/evdi/releases)
[ Y ] If you are using a DisplayLink device, have you checked 'troubleshooting'
on DisplayLink's website?
(https://support.displaylink.com/knowledgebase/topics/103927-troubleshooting-ubuntu)
[ Y ] Is this issue related to evdi/kernel?
(if it is rather connected to DisplayLinkManager please take a look at support
https://support.displaylink.com or forum https://www.displaylink.org/forum/)

Some information for baseline would help a lot:

Linux distribution and its version
Gentoo ~amd64
Linux kernel version
5.7.3
Xorg version (if used)
N/A
Desktop environment in use
N/A

When the module is compiled without LTO:
CFLAGS="-march=skylake -mabm -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed"
CXXFLAGS="-march=skylake -mabm -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -march=skylake -mabm -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fuse-linker-plugin -pipe -falign-functions=32"

$ dmesg | grep -i evdi
[   32.537517] evdi: [I] Initialising logging on level 5
[   32.537517] evdi: [I] Atomic driver:yes
[   32.537578] evdi: [D] evdi_add_devices:156 Increasing device count to 4
[   32.537617] evdi: [D] evdi_crtc_init:389 drm_crtc_init: 0 p000000001915a3c8
[   32.537623] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.537626] evdi evdi.0: [drm] Cannot find any crtc or sizes
[   32.537630] evdi: [W] evdi_painter_send_update_ready_if_needed:645 Painter does not exist!
[   32.537739] [drm] Initialized evdi 1.7.0 20200327 for evdi.0 on minor 1
[   32.537770] evdi: [D] evdi_crtc_init:389 drm_crtc_init: 0 p00000000b23fa811
[   32.537773] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.537775] evdi evdi.1: [drm] Cannot find any crtc or sizes
[   32.537778] evdi: [W] evdi_painter_send_update_ready_if_needed:645 Painter does not exist!
[   32.537871] [drm] Initialized evdi 1.7.0 20200327 for evdi.1 on minor 2
[   32.537895] evdi: [D] evdi_crtc_init:389 drm_crtc_init: 0 p0000000073a432d2
[   32.537899] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.537901] evdi evdi.2: [drm] Cannot find any crtc or sizes
[   32.537904] evdi: [W] evdi_painter_send_update_ready_if_needed:645 Painter does not exist!
[   32.537971] [drm] Initialized evdi 1.7.0 20200327 for evdi.2 on minor 3
[   32.537994] evdi: [D] evdi_crtc_init:389 drm_crtc_init: 0 p0000000077774758
[   32.537997] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.537999] evdi evdi.3: [drm] Cannot find any crtc or sizes
[   32.538001] evdi: [W] evdi_painter_send_update_ready_if_needed:645 Painter does not exist!
[   32.538100] [drm] Initialized evdi 1.7.0 20200327 for evdi.3 on minor 4
[   32.689645] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.689653] evdi: [D] evdi_driver_postclose:133 (dev=0) Process tries to close us, postclose
[   32.689654] evdi: [I] Task 669 (plymouthd) of process 669 (plymouthd)
[   32.691759] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.691767] evdi: [D] evdi_driver_postclose:133 (dev=0) Process tries to close us, postclose
[   32.691768] evdi: [I] Task 669 (plymouthd) of process 669 (plymouthd)
[   32.693665] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.693670] evdi: [D] evdi_driver_postclose:133 (dev=0) Process tries to close us, postclose
[   32.693670] evdi: [I] Task 669 (plymouthd) of process 669 (plymouthd)
[   32.694873] evdi: [D] evdi_detect:94 (dev=0) poll connector state: disconnected
[   32.694878] evdi: [D] evdi_driver_postclose:133 (dev=0) Process tries to close us, postclose
[   32.694879] evdi: [I] Task 669 (plymouthd) of process 669 (plymouthd)
[   45.491176] Modules linked in: evdi(O) ...

When the module is compiled with LTO:
The difference being that *FLAGS includes -flto=16
CFLAGS="-march=skylake -mabm -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=16 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed"
CXXFLAGS="-march=skylake -mabm -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=16 -fuse-linker-plugin -pipe -falign-functions=32 -Wl,-O1 -Wl,--as-needed"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -march=skylake -mabm -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=16 -fuse-linker-plugin -pipe -falign-functions=32"

$ dmesg | grep -i evdi
[   25.286218] evdi: unknown parameter 'initial_device_count' ignored
[   38.110022] Modules linked in: evdi(PO) ...

Thanks for the report :) Will take a look at it :)

@displaylink-dkurek
The question here would be how the system CFLAGS are passed to evdi. build. So far I see you force CFLAGS to FLAGS from top Makefile.

As @abucodonosor noted we were overriding the CFLAGS when compiling module.
With commit c085b0110242c58d87a720321a28f9c92f417d73 this should not be a problem anymore.
Hope this simple change will fix the problem.

That fix makes sense, thanks to you both for looking in to it. Unfortunately I'm unable to test at the moment since I stopped using LTO system-wide. So, I'll close it for now.


Add sitemap to robot.txt

Hi,
I see a reference to the sitemap in the source code, but the docs doesn't show how to use it.
I've tried something like the following and it doesn't seem to work.
{
  robots: {
    sitemap: '...'
  }
}

Any clue?
Thanks

Hi @iwatakeshi, try with Sitemap

@iwatakeshi
I'll fix it to identify with sensitive case

@iwatakeshi
fixed case sensitive on v2.4.1

add on documentation


why can not see any component in dialog

i add ad dialog and dialog layout and i add some component in but i can not see that it seem put in back ?why?

I have the same issue :(


feat!: Thread safe hooks, provider, and context

Change storage type of global hooks to a concurrent stack.

Should be able to add and remove from this without locking,

Protect references used from multiple threads with a Read/Write lock.
Change read only collection types to immutable collection types.

Readonly collections are just views into existing mutable collections. So they are still subject to the same modification problems. Immutable collections are supposed to be fixed and unchanging. Considering they are an interface you could still violate this constraint, but it is less likely.

Related to: https://github.com/open-feature/dotnet-sdk/issues/56

Codecov Report

Merging #79 (08e68ba) into main (d980a94) will decrease coverage by 0.01%.
The diff coverage is 95.45%.

@@            Coverage Diff             @@
##             main      #79      +/-   ##
==========================================
- Coverage   94.08%   94.06%   -0.02%
==========================================
  Files          20       20
  Lines         473      472       -1
  Branches       36       35       -1
==========================================
- Hits          445      444       -1
  Misses         16       16
  Partials       12       12

Impacted Files
Coverage Δ

src/OpenFeatureSDK/Model/FlagEvaluationOptions.cs
91.66% <85.71%> (ø)

src/OpenFeatureSDK/FeatureProvider.cs
100.00% <100.00%> (ø)

src/OpenFeatureSDK/OpenFeature.cs
100.00% <100.00%> (ø)

src/OpenFeatureSDK/OpenFeatureClient.cs
99.24% <100.00%> (-0.01%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I realized that I missed the client level context locking. So I have added that.

I've noticed another thing that needs to be resolved. The ReaderWriterLock type is disposable, so the containing type should implement disposable. Not really a problem for the global OpenFeature instance, because it isn't going anywhere. It is inconvenient for the client instances to be disposable though.
So I may want to consider a normal lock in that case.

@toddbaert @benjiro I switched the OpenFeatureClient locks to normal locks. This does mean if you are using one client from many threads, that it will have more contention. Maybe... make more clients.
The alternative would be to make it disposable, but that then becomes like a, "what color are your functions" kind of situation.
In OpenFeature.cs I am not disposing. I added a comment. The singleton isn't meant to go away, so disposing it doesn't make sense.

I know there's been a few changes on this, but I think it's this is good work and certainly more threadsafe than what we had before. I'm in favor of merging it unless there's objections.


Update README.md

Adds device requirements needed for contributing to Fluent Screen Recorder.

Thanks for your contribution


updating message

Teletraan customers frequently change their cluster settings (ami, instance type, etc) and wonder why their changes don't do anything. Hence updating the message to
Are you sure to save the changes?
Please note that the saved settings will only apply for newly launched hosts. If you have existing hosts in your cluster, you can use the "Replace Cluster" feature on the left to perform a rolling replacement of all existing hosts in your cluster.
Can see the updated popup on clicking save in the integ build associated with my changes
https://deploy-integ.pinadmin.com/env/helloworlddummyservice-server/yaqin-test-5/config/cluster/config/

nice~


Problem rendering SVG files in PDF with DITA-OT 2.4.x

SVG files that contain multi-line text are rendered with all text in the same line in PDF. For example:
 visio.svg.txt
gives the following output:

It works fine in DITA-OT 2.3.3, and it also works after copying the org.dita.pdf2.fop from 2.3.3 to 2.4.2.
Now, the org.dita.pdf2.fop plugin has changed completely between 2.3.x and 2.4.x, so I can't track down what causes the problem.
The SVG file displays just fine in Batik's Squiggle tool, so I would guess that it's not an error in the Batik 1.8 libraries. Which means it might either be in FOP 2.1 or in DITA-OT. Any ideas how to narrow that down?

This is an Apache FOP 2.x issue. The Apache FOP bundled with DITA OT was recently upgraded to 2.1:
https://github.com/dita-ot/dita-ot/pull/2399
I added the issue to the Apache FOP issues list a couple of months ago:
https://issues.apache.org/jira/browse/FOP-2617
You might want to test the last workaround proposed by them, to use in fop.xconf:
           <complex-scripts disabled="true"/>


feature: Add testimonial section

We have few good responses from our beloved users at ProductHunt and also we can collect from our users through a section in the website.

[ ] Add a section to collect reviews
[ ] Add testimonials section. Use acternity ui for the component

hey @ashutosh-rath02 please assign it to me under gssoc24. I want to work on it.

Hey @NilanchalaPanda one issue at a time. Please mention which one you would like to work on.

Hey @ashutosh-rath02, sure thing. I would first love to work upon some UI part of the website to finish it off quick. And then move upon the PDF Download issue.

Sure thing @NilanchalaPanda Assigning you this

Thank for the update @ashutosh-rath02, will start working on the issue.
Can you please share which testimonials you want to display on the website?

@NilanchalaPanda You can check ProductHunt for some reviews. Have you checked the tasks mentioned? You have to create a section to accept testimonials. How do you plan to do it?

We can store the reviews from the user in a JSON file, and then from the application itself we can parse it to display to the users, Sounds good?
I though of this approach because since there is no configuration for server & database as of now.

Sure @NilanchalaPanda make new path config/content/TestimonialData.js in the root directory and fetch the data from there

Okay, works 🙌🏻
Will add to the file in the mentioned directory.

Also @NilanchalaPanda include a Name, photograph and testimonial. Use acternity sliding cards as testimonials.
.vasudev this is my github username. You can dm me over here and I will provide you more testimonials

Sure, will use Acternity UI for testimonials section.
I didn't understood about the GitHub username part. Can you again comment, which messaging platform are you referring to for Testimonials Data.

Sure, will use Acternity UI for testimonials section.
I didn't understood about the GitHub username part. Can you again comment, which messaging platform are you referring to for Testimonials Data.

Sorry my bad. Discord username

Okay, got it 👍🏻

Okay, got it 👍🏻 I have sent a friend request.

Can you tag me once on GSSoC server Ashutosh | PA | Git-re . I didnt receive your friend request.

Now you can check, I have sent 🙌🏻

@NilanchalaPanda Any update on this?

Yes, working on the UI first then accordingly add the data.


Style/FormatString autocorrection can lead to issues

class BaseFormatter
  attr_accessor :format

  def initialize(format)
    @format = format
  end

  def manipulate_and_print
    puts "Base format: %s" % format
  end
end

class Formatter < BaseFormatter
  def manipulate_and_print
    manipulated = format.upcase
    puts "%s: %s" % [format, manipulated]
  end
end

# Example usage
base_formatter = BaseFormatter.new("Base Format")
base_formatter.manipulate_and_print

formatter = Formatter.new("Hello, World!")
formatter.manipulate_and_print

Expected behavior
Describe here how you expected RuboCop to behave in this particular situation.
idk. Honestly this is a close call. It seems (as expected and anticipated) that rubocop cannot "guess" if something else is in the scope.
Although, "annoyingly enough", said attribute (format) is part of the formatting itself.
Actual behavior
Describe here what actually happened.
Please use rubocop --debug when pasting rubocop output as it contains additional information.
class BaseFormatter
  attr_accessor :format

  def initialize(format)
    @format = format
  end

  def manipulate_and_print
    puts 'Base format: %s' % format
  end
end

class Formatter < BaseFormatter
  def manipulate_and_print
    manipulated = format.upcase
    puts format('%s: %s', format, manipulated)
  end
end

# Example usage
base_formatter = BaseFormatter.new('Base Format')
base_formatter.manipulate_and_print

formatter = Formatter.new('Hello, World!')
formatter.manipulate_and_print

Steps to reproduce the problem
This is extremely important! Providing us with a reliable way to reproduce
a problem will expedite its solution.
RuboCop version
Include the output of rubocop -V or bundle exec rubocop -V if using Bundler.
If you see extension cop versions (e.g. rubocop-performance, rubocop-rspec, and others)
output by rubocop -V, include them as well. Here's an example:
$ [bundle exec] rubocop -V
1.67.0 (using Parser <IP_ADDRESS>, rubocop-ast 1.32.3, analyzing as Ruby 3.3, running on ruby 3.3.5) [x86_64-linux]
  - rubocop-performance 1.22.1
  - rubocop-rspec 3.1.0

Rubocop cannot detect that you have overridden Kernel#format, particularly in another file. I'd highly suggest not doing such an override, or use rubocop:disable for your particular % format usage.

It's not completed, it's won't fix 🙏

pls @dvandersluis

Well, it can't really be fixed as noted above, given the static analysis limitations. I'm not sure what kind of a resolution are you expecting here.

To close the issue as won't fix, not completed
GitHub has a distinct status for that

Done.


x/crypto/sha3: unsafe pointer conversion

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

$ go version
go version go1.14 darwin/amd64

Does this issue reproduce with the latest release?
Go 1.14 is the latest release as of opening this issue, so yes.

After upgrading to Go 1.14 I noticed some test failing with the error message:
fatal error: checkptr: unsafe pointer conversion

The error only seems to occur when running tests with the -race flag. I was able to isolate the issue and create a somewhat minimal test to reproduce it:
package repro

import (
	"testing"

	"golang.org/x/crypto/sha3"
)

func TestSha3(t *testing.T) {
	k := []byte("this is a secret key; you should generate a strong random key that's at least 32 bytes long")
	buf := []byte{160, 69, 93, 207, 101, 230, 146, 196, 225, 119, 226, 222, 98, 172, 64, 93, 228, 135, 142, 216, 77, 7, 244, 36, 227, 157, 52, 224, 219, 66, 194, 174, 94, 160, 29, 204, 77, 232, 222, 199, 93, 122, 171, 133, 181, 103, 182, 204, 212, 26, 211, 18, 69, 27, 148, 138, 116, 19, 240, 161, 66, 253, 64, 212, 147, 71, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 229, 174, 236, 88, 233, 99, 68, 76, 119, 53, 56, 242, 58, 80, 253, 215, 9, 241, 163, 86, 38, 110, 224, 163, 179, 247, 171, 101, 15, 19, 87, 144, 160, 209, 47, 96, 255, 84, 213, 125, 96, 111, 10, 119, 234, 132, 74, 224, 250, 149, 82, 191, 222, 100, 212, 4, 242, 64, 88, 168, 191, 169, 188, 81, 36, 160, 252, 224, 45, 71, 222, 125, 170, 50, 73, 132, 192, 244, 207, 163, 40, 184, 120, 13, 117, 95, 242, 65, 52, 118, 84, 7, 101, 135, 121, 135, 200, 205, 185, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 53, 131, 137, 84, 64, 131, 26, 145, 223, 132, 94, 40, 147, 106, 128, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0}
	d := sha3.NewLegacyKeccak256()
	d.Write(k)
	d.Write(buf)
}

The issue does not happen with all possible values for buf. I'm not sure what is special about this specific value or what categories of values cause the bug. It seems that shorter values work in general.
I'm using<EMAIL_ADDRESS>which is the latest release as of opening this issue.
What did you expect to see?
The minimal test I shared above should pass and not trigger any errors.
What did you see instead?
The test does not pass. Here's the full output:
go test -race .
fatal error: checkptr: unsafe pointer conversion

goroutine 19 [running]:
runtime.throw(0x121c484, 0x23)
	/Users/alex/.go/src/runtime/panic.go:1112 +0x72 fp=0xc00004c560 sp=0xc00004c530 pc=0x1070032
runtime.checkptrAlignment(0xc00015402d, 0x11de3e0, 0x11)
	/Users/alex/.go/src/runtime/checkptr.go:13 +0xd0 fp=0xc00004c590 sp=0xc00004c560 pc=0x1044100
golang.org/x/crypto/sha3.xorInUnaligned(0xc000156000, 0xc00015402d, 0x88, 0x1c9)
	/Users/alex/programming/go/pkg/mod/golang.org/x/crypto@v0.0.0-20200302210943-78000ba7a073/sha3/xor_unaligned.go:21 +0x65 fp=0xc00004c5d0 sp=0xc00004c590 pc=0x11c3bd5
golang.org/x/crypto/sha3.(*state).Write(0xc000156000, 0xc00015402d, 0x1f6, 0x1c9, 0x5b, 0x0, 0x0)
	/Users/alex/programming/go/pkg/mod/golang.org/x/crypto@v0.0.0-20200302210943-78000ba7a073/sha3/sha3.go:138 +0x19e fp=0xc00004c670 sp=0xc00004c5d0 pc=0x11c2ece
github.com/albrow/sha3-issue-repro.TestSha3(0xc000150120)
	/Users/alex/programming/gomod/sha3-issue-repro/sha3_test.go:14 +0x1f9 fp=0xc00004c6d0 sp=0xc00004c670 pc=0x11c9689
testing.tRunner(0xc000150120, 0x121f450)
	/Users/alex/.go/src/testing/testing.go:992 +0x1ec fp=0xc00004c7d0 sp=0xc00004c6d0 pc=0x115d1ac
runtime.goexit()
	/Users/alex/.go/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc00004c7d8 sp=0xc00004c7d0 pc=0x10a1701
created by testing.(*T).Run
	/Users/alex/.go/src/testing/testing.go:1043 +0x661

goroutine 1 [chan receive]:
testing.(*T).Run(0xc000150000, 0x12165da, 0x8, 0x121f450, 0x0)
	/Users/alex/.go/src/testing/testing.go:1044 +0x699
testing.runTests.func1(0xc000150000)
	/Users/alex/.go/src/testing/testing.go:1285 +0xa7
testing.tRunner(0xc000150000, 0xc000131d50)
	/Users/alex/.go/src/testing/testing.go:992 +0x1ec
testing.runTests(0xc000134020, 0x1361d20, 0x1, 0x1, 0x0)
	/Users/alex/.go/src/testing/testing.go:1283 +0x528
testing.(*M).Run(0xc00014c000, 0x0)
	/Users/alex/.go/src/testing/testing.go:1200 +0x300
main.main()
	_testmain.go:44 +0x224
FAIL	github.com/albrow/sha3-issue-repro	0.172s
FAIL

Possibly related to https://github.com/golang/go/issues/35173

CC @FiloSottile @katiehockman @mdempsky
See also #37298, #35381.

Maybe someone on the Go team could provide some more clarity:

Is a false positive and a bug in checkptr or
Is checkptr is behaving as intended and this a bug in x/crypto?

This is definitely related to some of those issues, but I suspect it is its own thing.
The code here is basically:
(*[N]byte)(unsafe.Pointer(p))[:x:x]

The code guarantees that p points to an object of size at least x. But very temporarily, this generates a pointer to an object of size N. N may be bigger than x. If that causes the *[N]byte to look like it straddles objects, checkptr will complain.
It may be worth adding the pattern above as a special case. (@mdempsky: did we not already do that?)
Or convert the slice of byte to a slice of word some other way. Unfortunately that would only cover this instance, and we've been recommending this pattern for a while now, so I'm sure there are other cases like this in the wild.

The issue here is that it's creating an unaligned pointer: checkptr requires that *uint64 has to point to an unsafe.Alignof(uint64(0))-aligned address.
It looks like that code is only used on x86 and ppc64le, so it's probably fine to annotate xorInUnaligned with //go:nocheckptr.

Indeed, you're right, it's alignment not length.

@mdempsky, if unaligned pointers really are benign on x86 and ppc64le, then arguably checkptr should not enforce alignment on those platforms.
A //go:nocheckptr annotation should not be necessary for behaviors that are both not incorrect and not disallowed by the language (or unsafe package) spec.

Not a dup but #19367 would make everyone's life much easier.

@bcmills My rationale is that:

I don't think the Go spec / unsafe.Pointer safety rules unambiguously explain whether misaligned pointers are allowed. For example, the spec asserts "uintptr(unsafe.Pointer(&x)) % unsafe.Alignof(x) == 0". Arguably, this extends to "uintptr(unsafe.Pointer(&*p)) % unsafe.Alignof(*p) == 0", which isn't satisfied if p is a misaligned pointer.

Even if misaligned pointers are safe on some architectures, I think it's good practice for users to be warned that their code won't be safe on other architectures. In the case of x/crypto/sha3, the code is already explicitly annotated to only build on x86 and ppc64le, so it seems reasonable to require a //go:nocheckptr annotation too.
Theoretically even better would be cmd/compile could recognize the build tags and know the code will never run on a strict alignment CPU, but currently cmd/compile doesn't pay attention to build tags at all.

I'm open to being convinced otherwise though.
@OneOfOne The issue here is alignment, not size, of the slice. unsafe.Slice wouldn't help with that.

If unaligned pointers to integer types are not unambiguously allowed, then x/crypto should be changed not to use them: x/crypto is not coupled to the gc compiler and should be correct with any compiler that supports the language.
On the other hand, if unaligned pointers are safe on this architecture, they should not result in an error on this architecture. If we allow false-positives in race-mode checks, people will start ignoring (or annotating away) actual race-mode failures on the (mistaken) theory that they're false-positives.

This is way out of my league, but just my two cents - some large modules like go-ethereum are affected by this, so their downstreams (like me) are unable to move to Go 1.14 if they want to keep using -race.  Even if we don't agree on a long-term solution right now, we should have a workaround available as soon as possible :)

I think the immediate fix/workaround is to add //go:nocheckptr.
We can continue discussing whether that's the most appropriate fix afterwards.

See also #37298.

100% agree with last @mdempsky comment - please fix x/crypto/sha3 with //go:nocheckptr.
Let's have the discussion about whether x/crypto/sha3 is broken separately.

The //go:nocheckptr workaround is committed. I'd like to leave this issue open to either update the implementation or update the comment based on the outcome of #37298.

Thanks @bcmills . That sounds reasonable to me.

Fyi, go-ethereum tracking this same issue here: https://github.com/ethereum/go-ethereum/issues/20731

#37298 has been closed with the decision that checkptr will not warn about misaligned pointers-to-non-pointer types. So I think x/crypto/sha3 can remove //go:nocheckptr and this issue closed?


iOS: Don't try to clone an object backed by a different Runtime

Hi! Trying to test on iOS.
My Podfile:
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '11.0'

target 'GoodBeerApp' do
  config = use_native_modules!

  pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'

  use_react_native!(
    :path => config[:reactNativePath],
    # to enable hermes on iOS, change `false` to `true` and then install pods
    :hermes_enabled => true
  )

  pre_install do |installer|
    $RNMBGL.pre_install(installer)
  end

  target 'GoodBeerAppTests' do
    inherit! :complete
    # Pods for testing
  end

  pod 'Firebase/Analytics'

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable the next line.
  # use_flipper!()

  post_install do |installer|
    react_native_post_install(installer)
    $RNMBGL.post_install(installer)

  end
end

A code with spawnThread:
import {spawnThread} from 'react-native-multithreading'
...
  const onSelect = useCallback(async (value: number) => {
    await spawnThread(() => {
      'worklet'

      return 5
    })
  }, [])

Here is package.json:

   "react": "17.0.1",
    "react-native": "0.64.0",
    "react-native-gesture-handler": "^1.10.3",
    "react-native-mmkv": "^1.1.6",
    "react-native-multithreading": "^1.0.0",
    "react-native-reanimated": "^2.1.0",
    "react-native-safe-area-context": "^3.2.0",
    "react-native-screens": "^3.1.1",
    "react-native-star-rating": "^1.1.0",
    "react-native-vector-icons": "^8.1.0"

The log:
Assertion failed: (object->ctx_ == ctx_ && "Don't try to clone an object backed by a different Runtime"), function cloneObject, file /Users/eugenusov/project/hackaton/GoodBeerApp/node_modules/react-native/ReactCommon/jsi/JSCRuntime.cpp, line 611.
(lldb)

Maybe I did something wrong but tried with enabled Hermes but without success. There are ideas how it could be fixed?

That's weird, can you try with current Reanimated master? I just fixed a few threading issues there, but they haven't published a new version yet

Also, that's a JSC error but you have Hermes enabled 🤨🤨🤨


Cannot extract properties from JSCValue Object

Also asked here on Stack Overflow: https://stackoverflow.com/questions/58383168/how-to-access-a-jscvalue-objects-properties
[object HTMLBodyElement] is printed to the console, but the check fails when the object is checked for a class of HTMLBodyElement. Also, HTMLBodyElement is the only property the object has apparently. Trying to access another property just results in undefined.
I cannot use the jsc_value_object_enumerate_properties() function because I don't know how to turn a char** into strings or char*s that I can print to the console.
For now, my goal is just to get the HTML tag of the element, but later I want to also access all the CSS, the parent element, and all children element.

It was answered here: https://stackoverflow.com/questions/58514698/how-to-output-a-char/58514731#58514731
I am going to close this issue an open up a new one, this is turned out to be way harder than I thought it would be


Add more cfg aliases

Add cfg aliases for linux_android, bsd, and freebsdlike.  Use them in many places, though not everywhere they could theoretically be used.
Fixes #2188
What does this PR do
Checklist:

[x] I have read CONTRIBUTING.md
[ ] I have written necessary tests and rustdoc comments
[ ] A change log has been added if this PR modifies nix's API

Should we also do this for Solaris and Illumos?
cfg_aliases! {
    illumos: { target_os = "illumos" },
    solaris: { target_os = "solaris" },

    solarish: { any(solaris, illumos) }
}

BTW, we should document this in probably CONVENTIONS.md (or CONTRIBUTING.md?) so that our contributors can be aware of these aliases and use them in PRs

Are other config-aliases, like an alias mmsg for
#[cfg(all(
    feature = "socket",
    feature = "uio",
    any(
        target_os = "linux",
        target_os = "android",
        target_os = "freebsd",
        target_os = "netbsd",
    ),
))]

desirable for the future? Or should they just stay platform-related for the time being?

Are other config-aliases, like an alias mmsg for
#[cfg(all(
    feature = "socket",
    feature = "uio",
    any(
        target_os = "linux",
        target_os = "android",
        target_os = "freebsd",
        target_os = "netbsd",
    ),
))]

desirable for the future? Or should they just stay platform-related for the time being?

I think we can add them on an as-needed basis.

I just checked that the changes made in this PR are good.
But there are also still cfgs that haven't been updated, we should handle them as well, but not in this PR, instead, we should probably split the remaining job into several PRs, which will make code review easier.
For #2188, let's turn it into a tracking issue, once the tasks in it are all done, then we can close it.

For the requested changes, I have committed 2 with the GitHub UI, please ignore the left ones and handle them in other PRs


Syntax error fixed

On L552 res variable did not assigned properly.

Whoa, thank you for catching that!


✨ Add script to check pre-requisites

Summary
Provide a utility script to check several pre-requisites.
This may be useful in support of other scripts and for user debugging.
Command line:
$ ./check_pre_req.sh --help
Usage: ./check_pre_req.sh [-A|--assert] [-L|--list] [-V|--verbose] [-X] [program1] [program2] ...

              Output the args, separated by spaces, followed by a newline.  The return status is always 0.  If -n is specified, the trailing newline is suppressed.  If
              the -e option is given, interpretation of the following backslash-escaped characters is enabled.  The -E option disables the interpretation of these escape
              characters, even on systems where they are interpreted by default.  The xpg_echo shell option may be used to dynamically determine whether or not echo
              expands these escape characters by default.  echo does not interpret -- to mean the end of options.  echo interprets the following escape sequences:
              \a     alert (bell)
              \b     backspace
              \c     suppress trailing newline
              \e     an escape character
              \f     form feed
              \n     new line
              \r     carriage return
              \t     horizontal tab
              \v     vertical tab
              \\     backslash
              \0nnn  the eight-bit character whose value is the octal value nnn (zero to three octal digits)
              \xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)

OTOH, there is this:
mspreitz@mjs13 kubestellar % echo $'\u2705 jq'
✅ jq

Added kcp and kflex

mspreitz@mjs13 kubestellar % hack/check_pre_req.sh
zsh: permission denied: hack/check_pre_req.sh

Oh, ugh, the $' that I showed earlier was from zsh not bash. On the Mac, $' is ALSO limited to one-byte code points.

So, after chmod +x, I get this:
mspreitz@mjs13 kubestellar % hack/check_pre_req.sh argo jq
\u274c ArgoCD CLI
\u2705 jq

So, sadly, I suggest replacing the checkmark and X with "installed:" and "missing: ".

Success on my mac!

@ezrasilvera @MikeSpreitzer I reworked the docs a bit more.

@ezrasilvera the script is designed to check a bunch of pre-req that may be useful now or potentially in the future. As difference scenarios have different requirements, the default behavior is to check them all. The default behavior is non blocking.
In the future, when the scenarios are more settled, it would be a good idea to have those as parameters: e.g. check_pre_req sceario1|example2|etc

@ezrasilvera the script is designed to check a bunch of pre-req that may be useful now or potentially in the future. As difference scenarios have different requirements, the default behavior is to check them all. The default behavior is non blocking. In the future, when the scenarios are more settled, it would be a good idea to have those as parameters: e.g. check_pre_req sceario1|example2|etc

I think this may confuse contributors. This script is pointed through the contributor MD file where we expect 99.999% of the users to not use either Argo and surely not KCP (which may not be even supported in 0.20 ) . If a user tries KS for the first time, and see a red X near argo he will conclude he needs Argo and follow your link to install it. In the output you show there isn't any message that indicates this is an optional dependency ..

I am sympathetic to the argument that the checking script should not be checking for kcp now because it is not needed at all. We can add checking for kcp in the future when it becomes relevant.

I am sympathetic to the idea of making some distinctions among categories. I am sympathetic to wanting a simple script. Rather than introducing the complexity of a way on the command line to limit the categories checked, a simpler approach would be to simple organize the output by category, with an explicit indication of category (e.g., group the output by category, with an introductory line per category).

I have pushed a new commit to try addressing several comments:

I removed kcp the list of checked programs
I have reworked the default output as:

$ hack/check_pre_req.sh
Checking pre-requisites for using KubeStellar:
✔ Docker
✔ kubectl
✔ KubeFlex
✔ OCM CLI
✔ Helm
Checking additional pre-requisites for running the examples:
✔ Kind
X ArgoCD CLI
Checking pre-requisites for building KubeStellar:
✔ GNU Make
✔ Go
✔ KO


[#593][part-1] feat: Codec compress support ByteBuffer

What changes were proposed in this pull request?

Codec add ByteBuffer type compress.

Why are the changes needed?
Fix: # (https://github.com/apache/incubator-uniffle/issues/593)
Does this PR introduce any user-facing change?
No.
How was this patch tested?
UT

@xumanbu There is one comment left https://github.com/apache/incubator-uniffle/pull/830#discussion_r1172480854


Strips brackets <> out of text

Anything that uses plain text brackets <> currently gets stripped out because of how the HTML parsing works. When true HTML parsing is supported this should be fixed.

There is no easy way to fix this. Recommend using brackets [] for optional quantities instead of carets <>, as using carets within HTML creates invalid HTML.


ERROR: 'SafariCourseIE' object has no attribute

Hello, I find safari.py that edit for authentication
https://github.com/ytdl-org/youtube-dl/commit/a9e03736dfb2038d6a569e6305f4ac727a8ac71b
i copy and paste in youtube_dl\extractor\safari.py and run
[safari:course] Downloading login page
[safari:course] Logging in
ERROR: 'SafariCourseIE' object has no attribute '_apply_first_set_cookie_header'
I hope help me

Read developer instructions.


Training on CIFAR100, I get 0.976 error

Hi
I cloned your pakage, and ran it on my machine (with small modifications to pytorch 0.3 - added "deterministic" flag on conv)
Using the default parameters (depth=40, growth_rate=12, n_epochs=300, batch_size=64, lr=0.1, momentum=0.9), the final result is:
Eval: (Epoch 300 of 300) [0079/0079]  Time: 0.00806 (1.999)  Loss: 0.19664 (1.823)  Error: 0.87500 (0.976)

I'm not sure what the issue is, but this package is only designed how perform temperature scaling.

@litgm I think there is something wrong with the method to calculate 'error'. The predicted label calculated by topk() is in size 128x1, but the size of label is 128. So, you should make them the same size then do torch.eq()

@DerekArrow that sounds like it's very possible! The demo script hasn't been updated since the latest PyTorch update. Thanks for the catch!


NixOS crashes with two GPT swap parts with same name

In my ignorance, I named a bunch of GPT partitions 'primary' in the process of provisioning my machine. As a result, systemd got quite confused about my two swap partitions:
[cstrahan@nixos:~]$ sudo nixos-rebuild switch
building Nix...
building the system configuration...
updating GRUB 2 menu...
installing the GRUB 2 boot loader on /dev/sda...
Installation finished. No error reported.
installing the GRUB 2 boot loader on /dev/sdb...
Installation finished. No error reported.
stopping the following units: network-interfaces.target, remote-fs.target, systemd-modules-load.service, zfs-mount.service
activating the configuration...
setting up /etc...
starting the following units: default.target, getty.target, ip-up.target, multi-user.target, network-interfaces.target, network.target, paths.target, remote-fs.target, slices.target, sockets.target, swap.target, systemd-modules-load.service, timers.target
A dependency job for swap.target failed. See 'journalctl -xn' for details.
warning: the following units failed: dev-disk-by\x2dpartlabel-primary.swap

● dev-disk-by\x2dpartlabel-primary.swap - /dev/disk/by-partlabel/primary
   Loaded: loaded
   Active: failed (Result: exit-code) since Mon 2014-06-30 01:59:04 UTC; 24ms ago
     What: /dev/disk/by-partlabel/primary
  Process: 5161 ExecActivate=/nix/store/0syx0na4m3nah8m0ks48m5rs485r60pb-util-linux-2.24.1/sbin/swapon /dev/disk/by-partlabel/primary (code=exited, status=255)

Jun 30 01:59:04 nixos swapon[5161]: swapon: /dev/sdb3: read swap header failed: No such file or directory
Jun 30 01:59:04 nixos systemd[1]: dev-disk-by\x2dpartlabel-primary.swap swap process exited, code=exited status=255
Jun 30 01:59:04 nixos systemd[1]: Failed to activate swap /dev/disk/by-partlabel/primary.
Jun 30 01:59:04 nixos systemd[1]: Unit dev-disk-by\x2dpartlabel-primary.swap entered failed state.

[cstrahan@nixos:~]$ journalctl -xn
-- Logs begin at Mon 2014-06-30 01:52:20 UTC, end at Mon 2014-06-30 01:59:04 UTC. --
Jun 30 01:59:04 nixos systemd-modules-load[5158]: Failed to insert 'pcc_cpufreq': No such devic
Jun 30 01:59:04 nixos systemd[1]: Started Load Kernel Modules.
Jun 30 01:59:04 nixos systemd[1]: Reached target Multi-User System.
Jun 30 01:59:04 nixos systemd[1]: Reloading D-Bus System Message Bus.
Jun 30 01:59:04 nixos dbus[1721]: [system] Reloaded configuration
Jun 30 01:59:04 nixos dbus-send[5167]: method return sender=org.freedesktop.DBus -> dest=:1.4 r
Jun 30 01:59:04 nixos systemd[1]: Reloaded D-Bus System Message Bus.
Jun 30 01:59:04 nixos dbus[1721]: [system] Reloaded configuration
Jun 30 01:59:04 nixos nixos[3751]: switching to system configuration /nix/store/b76h9alsxdmqns1
Jun 30 01:59:04 nixos sudo[3734]: pam_unix(sudo:session): session closed for user root

[cstrahan@nixos:~]$ cat /etc/nixos/hardware-configuration.nix
# Do not modify this file!  It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations.  Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, pkgs, ... }:

{
  imports =
    [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
    ];

  boot.initrd.availableKernelModules = [ "xhci_hcd" "ahci" "usbhid" ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/sda3";
      fsType = "ext4";
    };

  fileSystems."/boot" =
    { device = "/dev/md0";
      fsType = "ext4";
    };

  swapDevices =
    [ { device = "/dev/sda4"; }
      { device = "/dev/sdb4"; }
    ];

  nix.maxJobs = 8;
}

I'm pretty sure this has something to do with why my ssh sessions would last about 20s, before they would drop and require rebooting the machine.
I don't think we should we be using partition labels to identify partitions when the configuration has path like "/dev/sdaN", no?

@cstrahan can you reproduce this with a recent nixpkgs/nixos?

No response, so close @zimbatm.

I don't have any swap devices but all my generated hardware-configuration.nix files use /dev/disk/by-uuid/ paths. Assuming this has been fixed.


The object req goes away once I pass a param to my proxyChooser method

This code works
proxyChooser = function (pathname, req) {
  return req.cookies.airlineCode === globalAirlineCode;
};

acmeProxy = {
  agent: new HttpsProxyAgent('http://proxy.example.com:3128'),
  target: 'http://acme.example.com',
  ws: true,
  logLevel: 'silent'
};

app.use('/api', function (req, res, next) {
  var acode = 'acme';
  if (req.cookies.airlineCode === acode) {
    globalAirlineCode = acode;
    return next();
  }
  next();
}, proxy(proxyChooser, acmeProxy));

Until I change my app.use to this
app.use('/api', function (req, res, next) {
  var acode = 'acme';
  if (req.cookies.airlineCode === acode) {
    globalAirlineCode = acode;
    return next();
  }
  next();
}, proxy(proxyChooser('acme'), acmeProxy));

I really need to pass a string to the proxyChooser so I can fix the validation.

This is because in your non-working example, you are calling proxyChooser('acme') -- i.e. invoking the proxyChooser function with one argument, which is why the second argument is undefined -- you're not passing it in.
Without the full code is's hard to understand what the correct solution is -- I don't know what the proxy function is or how it works to give a good recomendation. I would suggest popping over to our support channel https://gitter.im/expressjs/express


Update to selenium-server-standalone 3.5.3

Fixes #29
Thanks :D

Checksums match:
james@james-xps:~/workspace/selenium-server-standalone(open-sausages-pulls/upgrade-353)$ sha256sum ~/Downloads/selenium-server-standalone-3.5.3.jar
66c137224997e631573aa2354c13db4f467dccb08a5345aea15ea70b69728f2f  /home/james/Downloads/selenium-server-standalone-3.5.3.jar
james@james-xps:~/workspace/selenium-server-standalone(open-sausages-pulls/upgrade-353)$ sha256sum bin/selenium-server-standalone.jar
66c137224997e631573aa2354c13db4f467dccb08a5345aea15ea70b69728f2f  bin/selenium-server-standalone.jar

@tractorcow thanks for the PR! Tag 3.5.3 is released here now :)

Thank you!


Incorrect Youtube link and other suggestions

This for the Web page, not Raycast Extension.
When pasting "S5E5 Framework Building with Ryan Carniato" link https://open.spotify.com/episode/5dNTXSZtkQLm6HuVdboFtx?si=40b29ad1f62742b5, The youtube link is incorrect, leads to ryan's "JavaScript Frameworks in 2023" https://www.youtube.com/watch?v=6RIPfwxj24s
Also I'd suggest not showing other platform links if they don't exist.

@aquaductape Noted. Thanks for opening the issue, it's a good idea not to show links if it's Spotify exclusive content. on it


ci: update actions versions

Replacement for #22.
Updates github actions to latest version:

actions/checkout@v1 to actions/checkout@v3
<EMAIL_ADDRESS>to<EMAIL_ADDRESS>actions/setup-dotnet@v1 to actions/setup-dotnet@v3
actions/upload-artifact@v1 to actions/upload-artifact@v3
actions/upload-artifact@v2 to actions/upload-artifact@v3

Also replaces call to gitversion into two separate steps, one using the new execute action, and another updating the environment variable BUILD_NUMBER.

Thanks for this! I rebased my PR on top of this. Looking forward to 👀 your other PRs when I have some time. Thanks!


Document how to create plugins

It is possible to create plugins for clinton. Documentation should be added on how to do this. It's basically the same principle as ESLint.

a548d92f1b8db55d4fd161ed00081fb792b129a8


[Release] Download page for Mime4J 0.8.4

I'm want to remind you that a lot of the links are invalid (404 not found).

I am aware of that, because I did not uploaded the corresponding content yet.
I will do tomorrow. And eventually proceed with the release.


CHEBI:137334, please CHECK entry

Hi Adnan,
All the fields of this entry, SM(d18:1/12:0), are checked but the entry itself is not, so I would be grateful if you would do that.
Cheers,
Kristian

now checked.


feat: align publicPaths with webpack

Summary

[x] Add function type support to several publicPath options. They are:

output.publicPath
entry.[name].publicPath
generator<asset>.publicPath
EntryPlugin and DynamicEntryPlugin

[x] Support [hash] and [fullhash] for publicPath of output and entry
[x] Support full filename template args for generator.publicPath

Checklist

[x] Tests updated (or not required).
[x] Documentation updated (or not required).

bench!


Allow "nonexistent version" test to work without brew

Currently, this test fails if Homebrew isn't present as it expects a
Homebrew-specific output. This commit varies the expected output based
on whether Homebrew is installed.
This patch was originally created for the Debian package for ruby-build:
https://salsa.debian.org/ruby-team/ruby-build/-/blob/607093e5198cc75ffa8e9a3b551843be5f2f6d93/debian/patches/0001-Fix-nonexistent-version-test-to-work-regardless-of-e.patch

Turns out I had forgotten the context - the patch is a few years old at this point. It's not actually anything to do with Homebrew, and I can remove that part. The Debian build environment doesn't have the .gitdirectory. I'll update this PR to only check for the existence of .git - I think it's reasonable to want this test to pass when you download the tarball from GitHub instead of cloning.


Removing a hasOne relationship (a one-to-one relationship)

Laravel Version: 5.6.33
PHP Version: 7.1.18 (cli)
Database Driver & Version: pdo_mysql & mysqlnd 5.0.12-dev - 20150407 - $Id: 38fea24f2847fa7519001be390c98ae0acafe387 $

Description:
Any methods doesn't remove related object (attribute). The related attribute still exist in the object until the unset method does not be invoked explicitly.
The dissociation is a bit complicated.
Steps To Reproduce:
Removing a hasOne relationship (a one-to-one relationship)
Suppose that we have two tables:
Schema::create('phones', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->timestamps();
});

and
Schema::create('screens', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->timestamps();
});

Schema::table('screens', function (Blueprint $table) {
    $table->unsignedInteger('phone_id')->nullable();
    $table->foreign('phone_id')->references('id')->on('phones');
});

HasOne relationship (A phone has one screen)
class Phone extends Model
{
    public function screen()
    {
        return $this->hasOne(Screen::class);
    }
}

BelongsTo relationhip (A screen may belongs to a phone or not)
class Screen extends Model
{
    public function phone()
    {
        return $this->belongsTo(Phone::class);
    }
}

When removing a hasOne relationship:
>>> $phone = App\Phone::with('screen')->where('id', 3)->first();
=> App\Phone {#2860
     id: 3,
     name: "Ivory Douglas",
     created_at: "2018-08-17 14:10:34",
     updated_at: "2018-08-17 19:21:58",
     screen: App\Screen {#2875
       id: 3,
       name: "Scotty Schmitt DDS",
       created_at: "2018-08-17 14:10:34",
       updated_at: "2018-08-17 14:10:34",
       phone_id: 3,
     },
   }
>>> $phone->screen->phone()->dissociate();
=> App\Screen {#2875
     id: 3,
     name: "Scotty Schmitt DDS",
     created_at: "2018-08-17 14:10:34",
     updated_at: "2018-08-17 14:10:34",
     phone_id: null,
     phone: null,
   }
>>> $phone->push();
=> true
>>> $phone
=> App\Phone {#2860
     id: 3,
     name: "New name 1",
     created_at: "2018-08-17 14:10:34",
     updated_at: "2018-08-17 19:21:58",
     screen: App\Screen {#2875
       id: 3,
       name: "Scotty Schmitt DDS",
       created_at: "2018-08-17 14:10:34",
       updated_at: "2018-08-17 19:22:53",
       phone_id: null,
       phone: null,
     },
   }
>>> unset($phone['screen']);
>>> $phone
=> App\Phone {#2860
     id: 3,
     name: "New name 1",
     created_at: "2018-08-17 14:10:34",
     updated_at: "2018-08-17 19:21:58",
   }
>>>

The fresh method make one more query to DB and create one more object. For this reason it's better to use unset function.
>>> DB::listen(function ($query) { echo $query->sql, PHP_EOL; });
=> null
>>> $phone = App\Phone::with('screen')->where('id', 3)->first();
select * from `phones` where `id` = ? limit 1
select * from `screens` where `screens`.`phone_id` in (?)
=> App\Phone {#2869
     id: 3,
     name: "Mr. Tobin Nikolaus III",
     created_at: "2018-08-18 12:10:00",
     updated_at: "2018-08-18 12:10:00",
     screen: App\Screen {#2859
       id: 3,
       name: "Sienna Nader PhD",
       created_at: "2018-08-18 12:10:00",
       updated_at: "2018-08-18 12:10:00",
       phone_id: 3,
     },
   }
>>> $phone->screen->phone()->dissociate();
=> App\Screen {#2859
     id: 3,
     name: "Sienna Nader PhD",
     created_at: "2018-08-18 12:10:00",
     updated_at: "2018-08-18 12:10:00",
     phone_id: null,
     phone: null,
   }
>>> $phone->push();
update `screens` set `updated_at` = ?, `phone_id` = ? where `id` = ?
=> true
>>> $phone->fresh();
select * from `phones` where `id` = ? limit 1
=> App\Phone {#2878
     id: 3,
     name: "Mr. Tobin Nikolaus III",
     created_at: "2018-08-18 12:10:00",
     updated_at: "2018-08-18 12:10:00",
   }
>>> $phone
=> App\Phone {#2869
     id: 3,
     name: "Mr. Tobin Nikolaus III",
     created_at: "2018-08-18 12:10:00",
     updated_at: "2018-08-18 12:10:00",
     screen: App\Screen {#2859
       id: 3,
       name: "Sienna Nader PhD",
       created_at: "2018-08-18 12:10:00",
       updated_at: "2018-08-18 12:29:32",
       phone_id: null,
       phone: null,
     },
   }
>>>

I see.
2018年8月18日(土) 21:31 vovchok<EMAIL_ADDRESS>
The fresh method make one more query to DB and create one more object.
For this reason it's better to use unset function.

DB::listen(function ($query) { echo $query->sql, PHP_EOL; });=> null>>> $phone = App\Phone::with('screen')->where('id', 3)->first();select * from phones where id = ? limit 1select * from screens where screens.phone_id in (?)=> App\Phone {#2869     id: 3,     name: "Mr. Tobin Nikolaus III",     created_at: "2018-08-18 12:10:00",     updated_at: "2018-08-18 12:10:00",     screen: App\Screen {#2859       id: 3,       name: "Sienna Nader PhD",       created_at: "2018-08-18 12:10:00",       updated_at: "2018-08-18 12:10:00",       phone_id: 3,     },   }>>> $phone->screen->phone()->dissociate();=> App\Screen {#2859     id: 3,     name: "Sienna Nader PhD",     created_at: "2018-08-18 12:10:00",     updated_at: "2018-08-18 12:10:00",     phone_id: null,     phone: null,   }>>> $phone->push();update screens set updated_at = ?, phone_id = ? where id = ?=> true>>> $phone->fresh();select * from phones where id = ? limit 1=> App\Phone {#2878     id: 3,     name: "Mr. Tobin Nikolaus III",     created_at: "2018-08-18 12:10:00",     updated_at: "2018-08-18 12:10:00",   }>>> $phone=> App\Phone {#2869     id: 3,     name: "Mr. Tobin Nikolaus III",     created_at: "2018-08-18 12:10:00",     updated_at: "2018-08-18 12:10:00",     screen: App\Screen {#2859       id: 3,       name: "Sienna Nader PhD",       created_at: "2018-08-18 12:10:00",       updated_at: "2018-08-18 12:29:32",       phone_id: null,       phone: null,     },   }>>>

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/laravel/framework/issues/25250#issuecomment-414054811,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHPMHlGg4Wq6_iYfaAfwcrqBiDMJFP19ks5uSAkkgaJpZM4WCIHY
.

In the instance the relation is gone after dissociate(), so this seems to work fine, right? But push() does not persist the changes. The push() method retrieves $this->relations and this returns an empty array, as far as I can see.

There could be a dissociate method added to the HasOne relationship perhaps but for now you can just do $phone->screen->phone()->dissociate();. If you want the dissociate on the  HasOne relationship please open up an issue on https://github.com/laravel/ideas to gather support first.


Adding non-transient ability for messages

Description

Overview of Changes

N/A
Type of Change

N/A
Test Details

N/A
Additional Notes

N/A

You did it @lopezton-anthem!
Thank you for signing the Anthem Opensource Software CLA.


Add uname function to System module.

Well detailed description of the change :

Added the uname method to the System module as well as documentation and tests for new function. I left the System.platform variable for backwards compatibility.

Resolves: #533

Type of change:

[ ] Bug fix

[x] New feature

[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Housekeeping

[x] Tests have been updated to reflect the changes done within this PR (if applicable).

[x] Documentation has been updated to reflect the changes done within this PR (if applicable).

Preview (Screenshots) :

You had the right idea with the tests here: https://github.com/dictu-lang/Dictu/pull/535/commits/7f2a19c8ef4880a98a4ca437b5c118d11b4090b2
It's just that Platform should have been platform - Dictu is case sensitive!

You had the right idea with the tests here: 7f2a19c
It's just that Platform should have been platform - Dictu is case sensitive!

Go is my primary language and my fingers have muscle memory I guess. All sorted. Thank you for your patience.

Thanks for this!


Blank build.gradle has no guidance and shouldn't exist.

Surprising on opening this project with Intellij it started making the gradle wrapper, scripts and directory structure. There is no wrapper task or gradle-wrapper.properties in this directory so it defaults to whatever version of gradle is installed on the local machine which may or may not be compatible with whatever jvm is currently running.  This blank build.gradle file should not exist.  It creates 23 files that just need to then be ignored.

OK, so what should we do? Just remove the file? Can you submit a PR?

@pcholt

Whups - OK at the very least the gradle-wrapper should exist - I'll look into it tonight.

Please no. Do not put this in the root directory. Intellij and potentially other IDE's automatically process this file the first moment it is opened and any time it is changed.  What exists in the jvmbuild file is sufficient should people choose to use it.

Okay, I was a little confused at first, wondering what all the fuss was about. For me, it worked fine, in the IDE and everything.
Then I realised my mistake - yes, there is a blank build.gradle in the topmost root directory - which I never opened in my IDE! That's why I didn't notice this problem before pushing. I always used the IDE to open the buildJvm directory, rather than the root directory. If you open the project from the project root directory (which certainly seems the logical choice) then the blank build.gradle file screws everything up.
I've deleted the build.gradle file from the root directory. I'll add a few comments to the root README.md, pointing to  buildJvm/README.md, and add instructions to the end of buildJvm/README.md describing how to open the project in an IDE.
Thanks @jnellis for picking this up so quickly!


chore: switch to one way acks

Why
Every other uTP implementation uses one way fins.
We on the other hand use two way fins, like TCP. This has some advantages in some cases. But every usecase of uTP has been sending data one way.
Because we use two way and fluffy uses one way we have this problem where we only try to handle one way fins on the timeout of our connection which delays us finishing the uTP connection currently on Trin this is set to 1.25 seconds, this delay might also grow in size but that symantic interaction doesn't matter and any delay is enough justification to make this change. This delay will happen whenever we interact with Fluffy or Ultralight and if we want adoption this is unacceptable.
This is also currently causing interop issues with our bridge, well we can add another timeout exception for this case, it wouldn't fix the 1.25s delay so we might as well just implement 1 way fins.
https://portal-hive.ethdevops.io/?page=v-pills-results-tab&suite=1701568288-22f1ef76b380011a7f14fa3c85205088.json
Here is an example where these tests are failing because Trin thinks the uTP transfer is timing out, fluffy thinks it is successful. And in reality fluffy got the data, and we are waiting for no reason. We also spam fluffy with 8 fin packets for no reason which is another reason to do 1 way fins.
I tested this change on portal-hive and all tests passed using it using Trin and Fluffy. I tested the trin-bridge test again between fluffy and trin and it worked so it definitly fixes the issue I was seeing. In this process I also double checked the uTP logs to make sure there wasn't anything funny.
INFO[12-02|22:09:03] hiveproxy started                        container=814974ee4b19 addr=<IP_ADDRESS>:8081
INFO[12-02|22:09:03] API: suite started                       suite=0 name=trin-bridge-tests
INFO[12-02|22:09:03] API: test started                        suite=0 test=1 name="Trin bridge tests"
INFO[12-02|22:09:03] API: test started                        suite=0 test=2 name="Bridge test. A:fluffy --> B:fluffy"
INFO[12-02|22:09:04] API: client fluffy started               suite=0 test=2 container=5907afe4
INFO[12-02|22:09:04] API: client fluffy started               suite=0 test=2 container=6567d36d
INFO[12-02|22:09:04] API: client trin-bridge started          suite=0 test=2 container=fccdaf5f
INFO[12-02|22:09:18] API: test ended                          suite=0 test=2 pass=true
INFO[12-02|22:09:18] API: test started                        suite=0 test=3 name="Bridge test. A:fluffy --> B:trin"
INFO[12-02|22:09:18] API: client fluffy started               suite=0 test=3 container=f34274b2
INFO[12-02|22:09:19] API: client trin started                 suite=0 test=3 container=169b4b63
INFO[12-02|22:09:19] API: client trin-bridge started          suite=0 test=3 container=e28e7288
INFO[12-02|22:09:33] API: test ended                          suite=0 test=3 pass=true
INFO[12-02|22:09:33] API: test started                        suite=0 test=4 name="Bridge test. A:trin --> B:fluffy"
INFO[12-02|22:09:33] API: client trin started                 suite=0 test=4 container=80aad6e7
INFO[12-02|22:09:34] API: client fluffy started               suite=0 test=4 container=420b1cbc
INFO[12-02|22:09:34] API: client trin-bridge started          suite=0 test=4 container=ac997bce
INFO[12-02|22:09:47] API: test ended                          suite=0 test=4 pass=true
INFO[12-02|22:09:47] API: test started                        suite=0 test=5 name="Bridge test. A:trin --> B:trin"
INFO[12-02|22:09:48] API: client trin started                 suite=0 test=5 container=e9f6a740
INFO[12-02|22:09:48] API: client trin started                 suite=0 test=5 container=4bd2c4c7
INFO[12-02|22:09:49] API: client trin-bridge started          suite=0 test=5 container=532f876e
INFO[12-02|22:10:02] API: test ended                          suite=0 test=5 pass=true
INFO[12-02|22:10:02] API: test ended                          suite=0 test=1 pass=true
INFO[12-02|22:10:02] API: suite ended                         suite=0
INFO[12-02|22:10:03] simulation trin-bridge finished          suites=1 tests=5 failed=0

Here are the results with the change, the link above shows it all failing.
what did I do

I removed our timeout special case exception because it is no longer needed and we don't want to support symantics like that going forward as delay = bad.
I added 2 checks in on_packet() for the sender and receiver cases for handling one way acks
I had to reconfigure reads a bit because the way it was setup looked like it was copy pasted after write-buffer was written. The while pending_read.pop_front statements doesn't work, because it relied on a gridlock system so it would be impossible for it to even loop more then once. Because the loop in stream.rs only added a new one shot channel, when it was done handling the last one. So the while loops was functionally useless in process_reads. I also needed to do it this way so we would be able to flush the recv-buffer before closing the connection.

CI is failing because of this test close_succeeds_if_only_fin_ack_dropped
    let mut recv_stream = recv_stream_handle.await.unwrap();

    match timeout(EXPECTED_IDLE_TIMEOUT * 2, recv_stream.close()).await {
        Ok(Ok(_)) => {} // The receive stream should close successfully: only FIN-ACK is missing
        Ok(Err(e)) => panic!("Error closing receive stream: {:?}", e),
        Err(e) => {
            panic!("The recv stream did not timeout on close() fast enough, giving up after: {e:?}")
        }
    };

on line     Ok(Err(e)) => panic!("Error closing receive stream: {:?}", e),
The issue is because the connection is already closed because we do one way fins now I am assuming. So I assume we remove the close check on recv_stream @carver thoughts?

Is something like the test change in 9d4b185 what you are imagining?
Can you test cargo test --test socket locally? I'm finding that on master I get:

finished real udp load test of 1000 simultaneous transfers, in 8.156128821s, at a rate of 981 Mbps
On this PR I get timeout failures locally. Ah I see it now in CI too.

on_packet() is called a lot. Maybe the three separate destructuring calls to self.state has a measurable performance impact?

@carver ok the PR should be ready for another review now. I thought about it a bit after the call and I think the suggestions you made about a middle ground and the idea's around it were pretty good. Having a dedicated read thread for UDP made a big difference in performance as well and from my readings it seems like a common practice. I think the numbers speak for themselves. The big thing though is it improves overall consistency which to me is more important the improvement in throughput.
With this middle ground in place I think we are in a position were we can get this PR in.

Converting this to a draft since after some reading and such I don't think one-way-acks is that much of a priority in the grand scheme of changes or improvements which can be made. As I read and learnt more my understanding changed and the only case this would really fix is why our bridge using trace_gossip isn't working with clients other then trin.
read_to_eof() should return once the recv fin is fully acknowledge. Currently this doesn't work because how the read_buffer gets data in a lock step formation, so my change which removes that lock step can be merged to resolve that.
Currently the bridge isn't working correctly because it is relying on the return status of close to check if a connection worked correctly. But Trin recieving data from any client doesn't rely on the status of close, so any possible latency delays caused from closing logic wouldn't have an impact on latency of getting the data from the connection. There is some merit to having better interop on closing, but it isn't as big of priority as other changes I found we could make which would actual improve congestion, etc etc.

:partying_face: 1 way acks is back on!!!! I have figured out the missing links and also reverted the main blocker for 1 way acks sending local_fin after all data packets are already acted
Because with the realization I made today we can do 1 way acks without the compremise of delaying the closing of our connection!!!.
The fix which made this possible was 2 findings

if the sender sends their local_fin and doesn't recieve the ack because it got loss due to packet loss. We can consider resets packets gotten from the reciever to mean they finished successfully.
in ethereum/utp we weren't sending reset packets at all :scream:. That is a good find and I fixed it!

I have tested it quite a bit and this PR is performing as I would expect. So I am opening it for review.

The main way I am testing these changes is with Portal Hive. Our trin-bridge tests replicates the issue of us sleeping 60 seconds when interoping with fluffy. With this PR that issue is gone.
The other benchmark for success is if we pass the pseudo benchmark we have in this repo which tests for if we properly handle high stress situations which this PR is handling well.
So during this testing I haven't seen any things I would consider strange. On another note not related to this PR now since this interop bug is fixed we are able to monitor differences between trin and fluffy's uTP interop performance. There does seem to be a significant difference in how we handle congestion this could mean ours is currently not working or a problem with theres.


Restrict image formats for specific models

What kind of a pull request is this?

QA / Code Review

Code Checklist

[x] The code follows dotkom code style
[x] The code passes the defined tests
[ ] I have added tests for the code I added
[ ] I have provided documentation for the code I added
[x] The code is ready to be merged

(Possible) Breaking Changes

[ ] The changes are backwards compatible

[ ] I have updated the build configuration
[x] These changes requires changes to configuration in production

[x] I have applied the required changes in production
[x] I cannot apply the required changes in production before this is deployed.

I went through all images manually and fixed all places where an images was used for different purposes.  I used something like this locally:
from apps.gallery.constants import ImageFormat
from apps.gallery.models import ResponsiveImage

attrs = {
    "album_photos": ImageFormat.PHOTOALBUM,
    "article_set": ImageFormat.ARTICLE,
    "company_set": ImageFormat.COMPANY,
    "events": ImageFormat.EVENT,
    "hobbies": ImageFormat.GROUP,
    "item_set": ImageFormat.PRODUCT,
    "offline_issues": ImageFormat.OFFLINE,
    "online_groups": ImageFormat.GROUP,
    "resources": ImageFormat.RESOURCE,
}

def add_preset():
    for image in ResponsiveImage.objects.all():
        is_related_to = set()
        for related_attr, preset in attrs.items():
            related = getattr(image, related_attr)
            if related.exists():
                is_related_to.add(related_attr)
        if len(is_related_to) >= 1:
            image.preset = attrs.get(is_related_to.pop())
            image.save()

Description of changes
We've LONG had a problem where images for one type of use case have been used for a different kind of use-case.
This PR aims to restrict models to use a specific image format, which means you can't add an image meant for an article to an event.
Resolves #1463

Wohoo, no more #1463 :D


Link to Azure publish from command line is invalid

In the section "Publishing to Azure", the link in the sentence "The app can also be published to Azure from the command line" points to a page that does not describe how to publish a .NET Core web app to Azure using CLI.
In fact, I could not find any documentation describing how to publish an ASP.NET Core web project to an Azure web app using only the built-in tools from CLI (not using git).

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

ID: 62fb594f-04bf-c4d7-c94b-6cd6d8b12d75
Version Independent ID: 64e973ac-838d-4459-06b0-4e943bff936e
Content: Host and deploy ASP.NET Core
Content Source: aspnetcore/host-and-deploy/index.md
Product: aspnet-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/azure-apps/?view=aspnetcore-2.1#publish-using-command-line-interface-cli-tools

@tdykstra 	should I make an issue for the TOC entry publish with CLI which doesn't link to CLI publishing?

My link above does use CLI

The paragraph linked in your 1st post explains how to prepare the deployment files using dotnet publish command, but does not explain how to publish the files to Azure using CLI, which is what you usually need when scripting deployments. It only states:

Move the contents of the bin/Release/{TARGET FRAMEWORK}/{RUNTIME IDENTIFIER}/publish directory to the site in App Service.

I was really looking for a replacement for the MSBuild DeployOnBuild / PublishProfile command which I have been using with ASP.NET framework (maybe this still works? although I'd prefer using the dotnet CLI tool rather than MSBuild).

@madmox I think the preferred approach is the Azure Cloud Shell.
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnetcore-sqldb?view=aspnetcore-2.1

So, there is no way to build locally and publish using CLI tools? The Azure Cloud Shell example uses git deployment, which builds the project on the target web app.

@Rick-Anderson
@Rick-Anderson

should I make an issue for the TOC entry publish with CLI which doesn't link to CLI publishing?

It does do publish with CLI, using Git.  We couldd use this issue to add a link to non-Git CLI deployment if such an article exists.

From your remark @madmox, it looks like you're not trying to use MSDeploy (??).
Just as a btw @Rick-Anderson @tdykstra ... That description is in the publish profiles topic. We might need to cross-link better, since an Azure Apps profile should work via that approach. I haven't tried it from a CL ... just from VS ... but there's no reason to think it wouldn't ✨ Just Work:tm: ✨
https://docs.microsoft.com/aspnet/core/host-and-deploy/visual-studio-publish-profiles#publish-to-an-msdeploy-endpoint-from-the-command-line

@madmox WRT ...

from the dotnet CLI toolchain

There's dotnet msbuild ...

The command has the exact same capabilities as existing MSBuild command-line client.

It should work with a publish profile. I haven't tried it, but it seems like it would work. 🤞
@Rick-Anderson @tdykstra There's cross-linking opportunities here + possibly surfacing dotnet msbuild. If you'd like me to work this, we could schedule for late in the month. I don't think it would take long to resolve it.

@tdykstra I'd actually never known before that dotnet can publish. We don't have anything that publish with that route. Since App Service doesn't write for multiple permutations, is this something that most people will prefer instead of publishing with Git?

@Rick-Anderson @scottaddie @guardrex See question from Cephas -- what method should the Azure App Service docs focus on?  I'd say stick with Git publishing.

Git sounds good to me.
I suggest a cross-link over to the publish profiles topic at the end in an Additional resources section because that's a bit hard to find if one doesn't want to use Git. Could link it directly to that MSDeploy/CLI section that I mentioned earlier ... and then ...
That publish profiles topic section could have a cross-link over to dotnet msbuild. The text isn't really accurate the way that it's currently written because it was written before dotnet msbuild was a thing. Also, that section could use a passing remark (or a link to a bookmark in the topic) about Azure Apps. I'd test the approach (Azure Apps profile deployment) to make sure it works ... it should work ... there's no reason for it not to work.
I can work on this in a couple weeks if you guys want. I don't think it would take very long. Assign me and put it on the backlog if you like.

@madmox I should be able to get to this in a few weeks. If you have a good/bad experience ... gotchas ... additional thoughts ... please let me know here so that I can take your feedback into account for the updates.
My last post lays out some of the things that I'd like to do. Thus far, the dotnet msbuild command with an Azure Apps publish profile looks like a good bet for a scriptable scenario. I'll make sure cross-links surface the approach and to the dotnet msbuild command.

Thanks for the feedback. I'm OK with the clarifications you intend to make, it sounds good.
git deployment is definitely the thing you have to "push" forward as it is a more versatile approach, but at the time being it's not always possible / sometimes a bit complicated to set up correctly (thinking large projects taking forever to build on web apps, mixed csproj projects failing to build because of netstandard references issues (this one does not concern dotnet core), incompatible build extensions like webcompiler...). So yeah, you definitely need to make the dotnet msbuild section more visible in the doc!

Adding my two cents:
For the App Service side, I don't think of it as "which one do we want to push", but really "which one is representative of the audience at large", with the addition of "what is the one link to point people to find out more about .NET Core+App Service". The App Service article is not the place to become a collection of links for .NET Core customers, but primarily for a "first 5 minutes with the service" experience.
@madmox with the concerns you bring up, does it make Git an unattractive option for .NET Core customers? That's the question we would ask from our end. When you say it's not always possible/easy, are you saying the majority case or the minority case? All those issues you brought up are things that we probably should cover in our .NET/Core specific "Configure app" article we intend to rewrite. Do you have a doc somewhere that outlines the issues and configuration steps to address each?


Improve Documentation Examples

Code examples in the go quickstart directly use main function for all the create/update/trigger workflows.
package main

import (
 "context"
 "fmt"
 "log"

 novu "github.com/novuhq/go-novu/lib"
)

# Create a subscriber
func main() {
    ctx := context.Background()
    subscriberID := "<REPLACE_WITH_YOUR_SUBSCRIBER>"
    subscriber := novu.SubscriberPayload{
     LastName: "Skjæveland",
     Email<EMAIL_ADDRESS>     Avatar:   "https://randomuser.me/api/portraits/thumb/women/79.jpg",
     Data: map[string]interface{}{
      "location": map[string]interface{}{
       "city":     "Ballangen",
       "state":    "Aust-Agder",
       "country":  "Norway",
       "postcode": "7481",
      },
     },
    }

 resp, err := novuClient.SubscriberApi.Identify(ctx, subscriberID, subscriber)
 if err != nil {
  log.Fatal("Subscriber error: ", err.Error())
  return
 }

 fmt.Println(resp)
}

It is probably better to make them modular as separate functions instead of main which are callable by other functions, for example the kotlin quickstart uses that form of modularization.
suspend fun updateSubscriber(): ResponseWrapper<SubscriberResponse>? {
        val novu = Novu(apiKey = "API_KEY")
        val subscriberRequest = UpdateSubscriberRequest(
            email =<EMAIL_ADDRESS>            firstName = "John",//optional
            lastName = "Doe",//optional
            phone = "123456789",//optional
            avatar = "sample-avatar"//optional
        )
        val subscriberId = "12345"
        return CoroutineScope(Dispatchers.IO).async {
            novu.updateSubscriber(subscriberId, subscriberRequest)
        }.await()
    }

No, Please work on other issues. It's fine for the quickstart to call the main function. Both of those approaches work either ways.

sure got it @unicodeveloper


Missing template themes camaleon_cms v2

Hi!
I get this error when to try reset user password.
Uncaught exception: Missing template themes/camaleon_first/views/layouts/mailer, camaleon_cms/html_mailer/layouts/mailer, /layouts/mailer with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
Exiting
  * "...app/views"
  * ".../gems/camaleon_ecommerce-0.0.2/app/views"
  * ".../gems/camaleon_oauth-0.0.1/app/views"
  * ".../gems/doorkeeper-3.0.1/app/views"
  * ".../gems/camaleon_cms-2.0.1/app/views"

	.../gems/actionview-4.2.4/lib/action_view/path_set.rb:46:in `find'

I changed the line https://github.com/owen2345/camaleon-cms/blob/moduler/app/helpers/camaleon_cms/camaleon_helper.rb#L21
For this:
CamaleonCms::HtmlMailer.sender(email, subject, content, from, attachs, cama_root_url, current_site, template_name, layout_name).deliver_now

But the problem persist. I think that is a path problem must be need to append the ...app/apps path into the "searched paths".
Regards

Added the views path: "...app/apps"
@raulanatol  Please tell me if this works well for you.

It's works!
Thxs @owen2345!


Fixed an issue in BindingInfo validation

Fixed an issue in BindingInfo validation that caused multiple bindings with the same port and protocol treated as invalid.

BindingInfo for test case "Test-BindingInfo: BindingInfo contains multiple items with the same IPAddress, Port, and HostName combination" was updated for the new function behavior.

LGTM. Sorry for not getting back to this sooner.


⚠ Processors has degraded performance

In c1ef245, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 85 ms

Resolved: Processors performance has improved in 3e42e48.


Impossible to run SEED using TPUs with Google Cloud AI Platform

I'm familiar with setting up jobs in AI Platform, but what I'm confused by is that using TPUs with AI Platform requires that the job be configured so that the worker is of type "cloud_tpu." Per the documentation--when using TPUs with AI Platform--the master is where the Python code will run. The problem is that SEED requires that there be a master where the learner runs, and then multiple workers where the actors run. But, there's no way to specify multiple types of workers. So seed_rl/gcp/run.py line 85 throws the following error: AssertionError: Unexpected task type: chief.
As far as I can tell, it's impossible to run SEED using TPUs in Google Cloud AI Platform. This seems to be a huge oversight. Am I wrong?

Looks like there's already an active thread about getting the codebase to work with TPUs. Haven't had a chance to dig into it further to confirm whether or not it will work with AI Platform, but closing this issue.

Looks like there's already an active issue open about getting the codebase to work with TPUs. Haven't had a chance to dig into it further to confirm whether or not it will work with AI Platform, but closing this issue.


Admin Plugin: display message logic

When a resource has plugins (other than the admin) and the user does not have write access, he should not see the admin plugin nor any message about it.
When a resource has plugins (other than the admin) and the user has write access, he or she should  see the admin plugin.
When a resource does not have plugins configured and the user does not have write access, we should display the following message "This resource does not have plugins configured yet, and you don't have access to edit the resource. You can nonetheless see the resource metadata below.", followed by the non-editable admin plugin.
When a resource does not have plugins configured and the user has write access, we should display the following message "This resource does not have plugins configured yet. You can nonetheless edit the resource metadata below.", followed by the admin plugin.
Comment from Anna for context:

Here is the ticket, where the user attached a screenshot showing the blue bar displayed when a user only has read but no write permission on the project: https://bbpteam.epfl.ch/project/issues/browse/PMO-116.
I think for Darshan the displayed message was misleading.

This condition:

When a resource has plugins (other than the admin) and the user does not have write access, he should not see the admin plugin nor any message about it.

Should instead become:

When a resource has plugins (other than the admin) and the user does not have write access, she should see the admin plugin collapsed.


Re: unnamed.patch

This is hilarious, but: https://llvm.org/bugs/show_bug.cgi?id=16043 . I kinda gave up on trying to make patch for LLVM itself, and you patched it outside LLVM either...

Haha! I didn't realize you were the Paul Sokolovsky. It's a pleasure to finally get in touch with you! I discovered your original LLVM ticket months ago, and tried to send you an email at that time (which either got lost, caught in a spam filter, or was sent to an old email). For reference, I've included the original email below:

re: [PATCH] docs: Clarify how basic blocks without named label are handled.
Hi Paul,
I was asking similar questions as you did several year ago, namely how unnamed/implicit labels in LLVM IR works. Thank you for patching the spec! Any progress on the FAQ entry mentioned in the original issue 1? I'd be very keen on reading it. Do you still remember what kind of code changes you had in mind?
I was happy to read that others are also striving for a cleanup of the LLVM IR, making it a simple and internally consistent language with a format specification. I was looking for a formal specification and found previous efforts of creating one 2, but have not found a complete or officially accepted spec (e.g. EBNF).
Cheers /Robin Eklind

I grepped my mailbox, and found your mails ;-(. I'm sorry about this, I see they were sent on Feb 10, I travelled then for couple of weeks with very big mail backlog, which I apparently never fully went thru ;-(.
Anyway, the way it's stated in the README, it seemed that patch is to be applied to Go bindings, but on closer check, it's the same path as the main LLVM tree (perhaps, the bindings are official and included in the tree). So, what's the further fate of this patch - did you try to submit it upstream?

I grepped my mailbox, and found your mails ;-(. I'm sorry about this, I see they were sent on Feb 10.

No worries, it all worked out in the end using aforementioned patch :)

(perhaps, the bindings are official and included in the tree)

The Go bindings are official, so it will be the same tree.

So, what's the further fate of this patch - did you try to submit it upstream?

The Go bindings for LLVM will be replaced with a pure Go implementation, as further motivated in and tracked by issue decompilation#167. This will be part of the upcoming v0.2 release.

did you try to submit it upstream?

No, as discussions on llvm-dev lead me to believe that such a patch would be rejected. The intention of LLVM seems to be to keep the memory representation of LLVM IR low by never including explicit names of unnamed basic blocks (and other values).

No, as discussions on llvm-dev lead me to believe that such a patch would be rejected. The intention of LLVM seems to be to keep the in-memory representation of LLVM IR low by never including explicit names of unnamed basic blocks (and other values).

I don't see why it should affect that. The talk is about making external representation more regular and explicit. So, let's say again that your patch is not specific to Go bindings, it fixes generic LLVM ASM writing class. So, it handles generation. Then handling parsing part is what's remaining. Parsing already handles blocks without explicit label at all, which means that any label of the form "%" can be simply ignored. Better solution is actually compare number in the label with an internal counter, to guarantee well-formedness. That's all, no memory representation affected.
I encourage you to finish and submit this feature. With all the obvious "pros" like fixing long-standing issue and making LLVM IR more friendly for beginners, it's, well: writing a "public domain" decompiler is one thing, which may as well remain a hobby, but having a knowledge/experience with LLVM and patches to it "in CV" can get you a real job in the field.

This issue was moved to decomp/decompilation#182


Empty log files created at the root, although directory is specified

My logger file:
const winston = require('winston')
const { createLogger, format } = winston
const { combine, printf, timestamp } = format

const prettyPrint = printf(info => {
	return `${info.timestamp} ${info.level}: ${JSON.stringify(info.message)}`
})

const logger = createLogger({
	format: combine(
		timestamp(),
		prettyPrint
	),
	transports: [
		new winston.transports.File({ filename: 'logs/error.log', level: 'error' }),
		new winston.transports.File({ filename: 'logs/combined.log' })
	]
})

if (!['test', 'production'].includes(process.env.NODE_ENV)) {
	logger.add(new winston.transports.Console({
		format: printf(info => {x
			return `${info.level}: ${JSON.stringify(info.message, null, 2)}`
		})}
	))
}

module.exports = logger

Although I set the files to be created and maintained in the logs folder, empty copies of error.log and combined.log pop out at the root. It's annoying and it can be misleading. I tried to use path.join, but the results were the same.
Using 3.0.0-rc5.

Going to close this since we were unable to reproduce the issue. If you can consistently reproduce it on multiple machines please feel free to reopen it.

var winston = require('winston');

const logger = winston.createLogger({
  transports: [
    new winston.transports.File({
       filename: 'log/combined.log'
    })
  ]
});

module.exports = logger;

Only when there is log folder in the root directory, it would works.
Winston didn't create a log folder automatically.
And if  filename: '/log/combined.log' , an additional '/' , it can't work.


Windows VEnv Case normalization

Normalize casing on windows virtualenv names

Fixes #1925

When I was mulling this over the only thing I could come up with was to start from the base virtualenv directory and lowercase both sides of the equation to match before getting the actual path (but we might just lowercase that somewhere, I wasn't sure)

It probably be best to lowercase the whole path if we can afford to throw away all old virtualenvs.

I don't think we can afford that though, so we need an alternative

Maybe it’s better to use pathlib.Path.resolve() instead.

Fine with me but we need to check for existence first on windows, pathlib does not like it if you try to hand it a path that is invalid or doesn’t exist as I recall

I plan to add it to pipfile.Pipfile.find(). If it ever finds us a non-existent file we’re toasted anyway. lol

+1 from me then

Feel free to make the changes if you like

I added the resolve call, and changed the case-insensitive lookup a little so it loops through all possible envs, instead of only choosing the first. This should help with some edge cases with some sacrafice of speed, but with the resolve call it wouldn’t be reached in most cases anyway.

Looks good to me


App market homepage says "Featured apps" but it is really all apps

Steps to reproduce:

Go to https://apps.sandstorm.io/

Ask Asheesh, "Is there a way to see a list of all apps?"

Have Asheesh tell you, "Yeah, go to the homepage of the app market."

Expected behavior:

The front of the app market would say "All apps"

Actual behavior:

The front of the app market says "Featured apps"

This was fixed by https://github.com/sandstorm-io/sandstorm-app-market/pull/62

Thanks for noticing, @ocdtrekkie ! Marking as closed now.


Coin Flipper

Enter calculator name -
Coin Flipper
Describe calculator functionality -
Coin Flipper simulates a coin toss for heads or tails.
Under which category you wish to place it -

[ ] Computer Science
[ ] Mathematics
[ ] Physics
[ ] Chemistry
[ ] Biology
[ ] Art
[ ] Finance
[ ] Scientific
[ ] Health
[x] Games/Sports
[x] Let project owner decide
[ ] Suggest a new category - (Answer here)

Kindly assign this to me
cc : @SarthakKeshari

Hey @ShashWorks,
Assigned.
You may contribute your code under the folder path -
calc_for_everything\calculators\src\sports_games\coinFlipper
Issue completion deadline - 31st Oct 11:00:00 pm IST
NOTE - In case the issue completion deadline is not met, the issue will be assigned to a new participant


chore(tsconfig)!: Enable verbatim module syntax

This is a breaking change to our tsconfig.
I've enabled the verbatimModuleSyntax config which requires annotating type imports as such so they can be eliminated at build time. This required changes to the source files here and will require changes anywhere else this is used.
Closes #1314

will require changes anywhere else this is used

What changes are needed? Do we need to provide migration guidance to SDK users?

Do we need to provide migration guidance to SDK users?

This is not breaking to SDK users. We'll need to make updates on internal projects when we update anything consuming @arcjet/tsconfig.