Error when setting up account

I tried running account_setup; however, it had a Python error during run:
 …/tmp/spark  python3 account_setup.py

Getting credentials.
Multiple tenants detected. Please input the ID of the tenant you wish to use.
Tenants: /tenants/72f988bf-86f1-41af-91ab-2d7cd011db47, /tenants/17f57fb1-3a9e-4a8b-9521-db489c7594c0, /tenants/53ad779a-93e7-485c-ba20-ac8290d7252b, /tenants/ba7ce1c7-c6e7-4f24-a098-c18af62b23fb
Please input the ID of the tenant you wish to use: /tenants/72f988bf-86f1-41af-91ab-2d7cd011db47
Input the desired names and values for your Azure resources. Default values are provided in the brackets. Hit enter to use default.
Azure Region [westus]:
Resource Group Name [aztk]:
Storage Account Name [aztkstorage]: tmfaztkstorage
Batch Account Name [aztkbatch]: tmfaztkbatch
Active Directory Application Name [aztkapplication]: tmfaztkapplication
Active Directory Application Credential Name [aztk]: tmfaztk
Service Principal Name [aztksp]: tmfaztksp
Creating the Azure resources.
Created resource group.
Traceback (most recent call last):
  File "account_setup.py", line 369, in <module>
    storage_account_id = create_storage_account(creds, subscription_id, **kwargs)
  File "account_setup.py", line 84, in create_storage_account
    sku=Sku(SkuName.standard_lrs), kind=Kind.storage, location=kwargs.get('region', DefaultSettings.region)))
TypeError: __init__() takes 1 positional argument but 2 were given

Duplicate of https://github.com/Azure/aztk/issues/707


How to create control library ?

I'm using openui5 developing some mobile applications.
Now there're a bunch of custom controls I've created which will be reused in different projects, I'm reading the how to create custom control guide in developer guide, it mentions that

When several controls should be developed for reuse in different applications, we recommend to create a control library instead of using these notepad controls. Control libraries have additional features like automatic support for theming and right-to-left languages, but the implementation of the controls is the same as for notepad controls.

How to create a control library, currently I'm just manually copy paste the js files into different project, is there a better to do this ?

Hi, please see https://github.com/SAP/openui5/blob/master/docs/controllibraries.md
Regards
Andreas

Thanks man!!
Better include or link this article in the developer guide, what you think??


Problem with exponents

The following code:

Compiles to:
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print((Math.pow(4, 2)));
Serial.print('\t');
}
Which produces the error:
sketch.ino:9:19: error: use of undeclared identifier 'Math'
The Arduino code should be:
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print((pow(4, 2)));
Serial.print('\t');
}
Which compiles successfully and outputs 16.

This issue was resolved in the most recent update (coming today, already live at hummingbirdkit.com/blockly)


Ability to start processInstance with BusinessKey

Is there a possibility to start the de process Instance with a businessKey. I only see a way to start test a instance with variables.
Or this already possible ?

Hello,
Many thanks for your question! It is already possible, because the "primary" mechanism to start a new process instance is to write your own process instantiation code by using the startBy method:
Scenario.run(processScenario).startBy(() -> {
  return rule.getRuntimeService().startProcessInstanceByKey("myProcessKey", "myBusinessKey");
}).execute();

The other methods like "startByKey" and startByMessage" are just convenience methods to make the 80% - or eventually 95% - of use cases even faster to write. Having said that, we could of course allow for directly adding a business key to a scenario instance... I will therefore transform this into an improvement issue. Eventually you want to provide a pull request? 😄
Many greetings,
Martin.

Hi Matin,
just FYI, in recent versions, two methods with the following signature are available:
ProcessInstantiationBuilder createProcessInstanceById(String processDefinitionId);
ProcessInstantiationBuilder createProcessInstanceByKey(String processDefinitionKey);

the returned builder then allows to set all optional parameters like variables and business key, tenant id etc. May also be an option to primarily expose that...
Best,
Daniel

Hi Daniel, many thx I am aware! - not unthinkable, I would  probably need to extend the builder interface in order to integrate it into the fluent scenario run builder ... but I am cautious with these things, because "scenario" is currently fully backwards compatible with all existing versions of Camunda BPM which is of value in itself for a community extension.
(The above mentioned approach to create your own process instantiation function of course also allows to use those newer fluent builders Daniel speaks of!)

https://github.com/camunda/camunda-bpm-assert-scenario/pull/39

just FYI, in recent versions, two methods with the following signature are available:
ProcessInstantiationBuilder createProcessInstanceById(String processDefinitionId);
ProcessInstantiationBuilder createProcessInstanceByKey(String processDefinitionKey);

Maybe it's an option, but I've not found any examples in ReadMe :(


[BUG] repl-diskless-sync yes does not actually enable diskless replication

Describe the bug
A thing I noticed when debugging https://github.com/Snapchat/KeyDB/issues/512, setting repl-diskless-sync yes in the config doesn't actually enable diskless replication, because the logs contain MASTER <-> REPLICA sync: receiving streamed RDB from master with EOF to disk logs instead of MASTER <-> REPLICA sync: receiving streamed RDB from master with EOF to parser logs, and a temporary rdb file gets created in the rdb directory.
To reproduce
As per https://github.com/Snapchat/KeyDB/issues/512
Same config as in #512:
protected-mode no
tcp-backlog 511
timeout 600
tcp-keepalive 300
supervised no
loglevel notice
databases 16
always-show-logo yes
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 0 0 0
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes

repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no

save ""
appendonly no

server-threads 8
maxclients 100000
maxmemory 2Gb
maxmemory-policy noeviction

replica-serve-stale-data yes
replica-read-only no
active-replica yes
multi-master yes

Expected behavior
No files get created.
Additional information
Same logs contained in https://github.com/Snapchat/KeyDB/issues/512

There is a "repl-diskless-load" config you need to set on the replicas as well, it can be one of "disabled", "on-empty-db", or "swapdb". When "disabled" the replica will write the received rdb to disk first, when "on-empty-db" it will be diskless only if the replica is empty, when "swapdb" the new rdb will be read into memory then swapped with the existing db.

Thanks, swapdb seems to avoid writing to disk files, according to the logs.


updated bash path to ./Electron.app/Contents/MacOS/Electron

it had the trailing /Atom which no longer exists

Thanks!


Alternative simple busy/loading wrapper

On issue is that the spinner is at the center of the control, so if you scroll the control the spinner will scroll with it. Maybe it's a feature.

https://user-images.githubusercontent.com/22550674/178044310-4b118ea6-221d-43f7-98d0-bea7b3f8cafa.mp4

Hi @glutio,
There is a similar pull request which we are still not ready to merge as it requires UX design. We will keep both open to evaluate the pros and cons.

sure, no worries, just offering this simpler no JS alternative because I already had it available from my other project..

Added fullscreen mode

Now supports three usage options:
Using @ref directly
Using CascadingParameter passed to the child content
Using scoped service BusyLoadingService which may be shared by multiple wrappers

BusyLoadingService usage

After adding the the service this pull request became very similar to the one opened earlier. This is why we can't merge them both. TBH the other one is more inline with the existing Radzen.Blazor API and services and we will probably merge it after it receives the required UX design.
Please discuss with us via issues, forum threads or email any future work like to contribute. This will prevent conflicts like this in the future and won't lead to any waisted efforts.

Ok, no worries, although, frankly, I think mine's better ;) Cheers!
https://user-images.githubusercontent.com/22550674/178134236-5ae13196-f4f1-49bc-a796-5bc78fe9dd9f.mp4


Please add Licence file

https://github.com/Irrelon/node-blinkt/blob/master/readme.md
says:
{
Copyright and License
All works are copyright Irrelon Software Limited. You may use this project under any open-source license that you wish e.g. (MIT, GPL etc).
}
This is a bit unclear, maybe you can select on the most permissive licence that will allow to be mixed along others.

I've updated the license section a bit to try and be more clear but I think it is very clear already, you can use the software however you wish under whatever license you wish.

It's clear for you but not for machines :)
like NPM complaining:
npm WARN<EMAIL_ADDRESS>No license field.

So it's common to set a licence in tree to remove any ambiguity.
ps: I am ok to licence my patches merged in under any OSI, FSF, SPX, or Debian approved licences.

Ahh I see, gotcha.

ps: I am ok to licence my patches merged in under any OSI, FSF, SPX, or Debian approved licences.

If you merge changes into the project you are agreeing that those changes also fall under the extremely permissive license already in place, allowing any usage for any reason without restriction. I guess the best / closest license to what I'm saying is MIT?!?

OK MIT was in the set I listed ..
BTW "npm init" suggests to use ISC which very similar to MITs licences but without ambiguity (several MIT licences vs one ISC).

Related:

https://www.quora.com/Whats-the-difference-between-the-MIT-and-ISC-licenses

Is anyone against relicensing to permissive licence ?
@Irrelon , @MichalPaszkiewicz , @ottersoftware , @C-D-Lewis , @iotFab , @KarlNewark

It's fine by me.

Sounds great

Please go for it :)

I can do that but I would prefer the change to come from the main author @Irrelon

Making change now...

Done :)

readme should be updated  and LICENSE file too with
https://spdx.org/licenses/ISC.txt


Update CONTRIBUTING.md

Update CONTRIBUTING.md with more detailed PR guidelines.
To open and merge PRs, the following is to be respected:

Always open an issue for the PR you're working with as much detail as possible
Every PR should have an issue that it is trying to address, ideally one
The title of the PR should follow the schema: Issue <issue-number>: <PR-title>
Ideally, there should be at least two reviewers per PR
The author of the PR never gets to merge the PR; a PR can only be merged by a reviewer
Do a Squash and merge instead of merge, again, by a reviewer

Aaaaaah I forget to add as well that every PR should be linked to an issue (I know is implicit in the steps, but ........)

Merged on #376


Add hooks (achievements ?)

Is there an existing library you'd use to support this?

Hum, I really don't know, actually I only thought about hooks for achievements (kind of https://github.com/icefox/git-achievements), but hooks may unlock some useful workflows
We need to think about which kind of hooks may be useful, for instance, something like:

on_pre_ssh_connection(host, port)
on_after_ssh_connection(host, port, pid?)
on_ssh_connection_closed(host, port, duration, exitCode)
on_error(host, port, errcode)

About the library specifically I have no preferences, just keep in mind I'm thinking about porting this project in golang to enhance speed, ease of install and recode everything from zero to fix some hacks I did in the Python version, I will probably keep the 2 versions for a time so people can keep their preferred one (#35)

Cute. Don't forget anything related to writing a config file with ASSH for the first time. :)

hooks are implemented, achievements aren't yet


Clear Cart fixed

Issue: Weird Size of Call to Action Buttons on Smaller Devices #14

You can resolve the issues solve here #18.

You can resolve the issues solve here #18.

Should I need to make new PR to fix #18 issue?


Adjust bounds of the copy function

This PR addresses #21 (at least partially)
If the function is copy and has padding applied then pretty much any input provided to it should work. Currently, the input bounds are inferred based on the output dims and bounds and doesn't account for padding, so can be too restrictive causing the checks to fail.
This PR adds a special handling for the case for the copies which operate on the pipeline inputs.
Tested with:
bazel test //...

I think #85 is what we need here, which avoids a special case for pipeline inputs.


Add iree-cpuinfo to the Python Release packages

Request description
This is useful to see what IREE would use for CPU optimizations.
What component(s) does this issue relate to?
No response
Additional context
No response

Might also want to discuss that tool on this page: https://openxla.github.io/iree/guides/deployment-configurations/cpu/#compile-a-program, where --iree-llvmcpu-target-cpu-features is mentioned


Add assets integration

Refer https://www.aem.live/docs/aem-assets-sidekick-plugin
This is to be added on an experimental basis if ICICI have a use case for this. If not we can roll it back.

AEM Assets selector is visible in sidekick now


Change install_requires to not require Django

Addresses #44
Django being in install_requires makes it hard for a project using django_coverage_plugin and pip-compile to specify their own version of Django.

Remove "Django" from setup.py's install_requires
Raise RuntimeError in plugin.py if Django version is lower than 1.8

Seems reasonable, but kind of unfortunate.  :)


OnDataReceived

hi,
I have tried this code and everything is working fine except data receive , i am not able to receive data by my HC-05 module .
Data send by mobile is working fine ,  please suggest

Hi,
It may be too late, but this may help someone else.
I had the same problem and solved. Somehow the "setOnDataReceivedListener" method gets called more than once, and the mDataReceivedListener points two different objects. You can fix it as:
Find the following part in BluetoothSPP.java:
public void setOnDataReceivedListener (OnDataReceivedListener listener) {
            mDataReceivedListener = listener;
}

modify it:
public void setOnDataReceivedListener (OnDataReceivedListener listener) {
        if (mDataReceivedListener == null)
            mDataReceivedListener = listener;
}

Not sure that works... what happens if you want to add again a new receiver? The function will reject it because it was previously set.

Well, I accept there may be some side effects, but I am 100% sure that it works this way, if there are no other errors. By the way, I used the autoconnect example provided in the library itself adding datareceivedlistener to it.
Answering your question:
I can't think of any case having more than one event handler (or listener) in the same code for the same event that is useful. Even so, the library programmer would have provided an array of "mDataReceivedListener" and invoke all upon the event occurrence, i.e., upon data reception.

Well, the library does not offer an array parameter. Maybe you can't think of any case... but I certainly do and actually use. Just think of a program that passes different messages back and forth... for each message you would expect a different response, so one think you can do is re-program the receiver. I agree there are other ways to do it, though.
Besides, coming back to the original question from @mschopra , there are many reasons why you can't receive, but without further analysis it's impossible to come up with an answer. I don't know where @lazy21tr second call to setOnDataReceivedListener comes from... but there are other users (look in the isses section) that report that you need an end-of-line sent for the receiver to pass the message through. There is an Android BlueTooth Debug option in your phone that dumps the buffers to a file in the SD Card, maybe you can try that out.

Thank you @naevtamarkus for your thorough responses.
Of course there may be plenty of causes preventing data reception.  I use the same hardware as @mschopra, the HC05 module. Yes you are right that the receiver needs to send end-of-line characters since the library does a check (in BluetoothService.java, ConnectedThread's run section) for end-of-line before invoking the datareceivedlistener. But I think this is not an issue to fix, just a preference of the library programmer.
I don't have any problem regarding data reception anymore, that is why I commented here. I share my source files here as it may help someone who got stuck with the issue.

Hehe, this is interesting... I use HC05 too! Any Arduinos behind? :)
I actually have a problem with the setBluetoothConnectionListener... you gave me the idea with the setOnDataReceivedListener, funny that you mentioned setBluetoothConnectionListener just now!! It's very weird:
The thing is that, when I use this BT module from a normal activity it works like a charm (I mean, setting all those callbacks) but when I do it from a background thread (a BroadcastReceiver, to be specific) the callbacks somehow disappear! It looks like, in your case, someone-or-something is wiping them without my consent!
I will try your workaround when I have some time and, if that worked, I am going to send you flowers :) Not that is a solution, though... we need to find where this setBluetoothConnectionListener(null) comes from!

淡定
------------------ 原始邮件 ------------------
发件人: "Pablo<EMAIL_ADDRESS>发送时间: 2015年10月16日(星期五) 下午2:46
收件人<EMAIL_ADDRESS>主题: Re: [Android-BluetoothSPPLibrary] OnDataReceived (#30)
Hehe, this is interesting... I use HC05 too! Any Arduinos behind? :)
I actually have a problem with the setBluetoothConnectionListener... you gave me the idea with the setOnDataReceivedListener, funny that you mentioned setBluetoothConnectionListener just now!! It's very weird:
The thing is that, when I use this BT module from a normal activity it works like a charm (I mean, setting all those callbacks) but when I do it from a background thread (a BroadcastReceiver, to be specific) the callbacks somehow disappear! It looks like, in your case, someone-or-something is wiping them without my consent!
I will try your workaround when I have some time and, if that worked, I am going to send you flowers :) Not that is a solution, though... we need to find where this setBluetoothConnectionListener(null) comes from!
—
Reply to this email directly or view it on GitHub.

the setBluetoothConnectionListener was not listed as an issue by @mschopra or someone else (afaik), that's why i didn't mentioned it before.
hope you come up with a good solution :)

Yeah, sorry, I was using this thread as a chat :-)

Hi,
it seems that in my case, even after reading your comments above, using @lazy21tr 's patch, or using @lazy21tr 's shared "working files", I still don't receive data with BluetoothSPP. The BluetoothState.MESSAGE_READ never happens.
My BT SPP device is receiving the data I sent, and replies back, and I can see the reply in the Bluetooth HCI snoop log (so definitely is received by my Android tablet), but the event is never raised in the BluetoothSPPLibrary.
I am using:
compileSdkVersion 23, buildToolsVersion "25.0.2", minSdkVersion 23, targetSdkVersion 23
Any thoughts?

today I found the reason of it.
In bluetoothService.java, when reading message from input stream. the code below:
while (true) {                 try {                     int data = mmInStream.read();                     if(data == 0x0A) {                      } else if(data == 0x0D) {                         buffer = new byte[arr_byte.size()];                         for(int i = 0 ; i < arr_byte.size() ; i++) {                             buffer[i] = arr_byte.get(i).byteValue();                         }                         // Send the obtained bytes to the UI Activity                         mHandler.obtainMessage(BluetoothState.MESSAGE_READ                                 , buffer.length, -1, buffer).sendToTarget(); //                        arr_byte = new ArrayList<Integer>();                         arr_byte.clear();                     } else {                         arr_byte.add(data);                     }                 } catch (IOException e) {                     connectionLost();                     // Start the service over to restart listening mode                     BluetoothService.this.start(BluetoothService.this.isAndroid);                     break;                 }             }
When the byte equals '0x0D' which means ENTER, it will notify the handler.I debuged here, it entered with the message, but it not notified the method onDataReceived since there is no byte '0x0D'. When I  send the message contains '0x0D' (ENTER), it works.

public void run() {
byte[] buffer;
ArrayList arr_byte = new ArrayList();
        // Keep listening to the InputStream while connected
        while (true) {
            try {
                int data = mmInStream.read();
                if(data == 0x0A) {
                } else if(data == 0x0D) {
                    buffer = new byte[arr_byte.size()];
                    for(int i = 0 ; i < arr_byte.size() ; i++) {
                        buffer[i] = arr_byte.get(i).byteValue();
                    }
                    // Send the obtained bytes to the UI Activity
                    mHandler.obtainMessage(BluetoothState.MESSAGE_READ
                            , buffer.length, -1, buffer).sendToTarget();
                    arr_byte = new ArrayList<Integer>();
                } else {
                    arr_byte.add(data);
                }
            } catch (IOException e) {
                connectionLost();
                // Start the service over to restart listening mode
                BluetoothService.this.start(BluetoothService.this.isAndroid);
                break;
            }
        }
    }

I have same code but still it is not working.

add '\r' end,and it really works!

any one solved the problem


Need your contact info for discord

@WorldEditAxe

Sorry for bothering you like this. I just need to talk to you about your proxy reimplemenation. It's the only thing that works for my network and many other networks currently. EaglerXBungee lacks BungeeGuard support and support for modern security features and as such I've been using your proxy reimplemenation irregardless of its status.

Hi! My Discord tag is q13x#3661, please don't hesitate to reach out.


Overfit test set?

Hi,
In Image_Mesh_Recon_Direct example, the model that performs best in the test set is used for evaluation. Isn't this  biased? It is also the case in Geometric, Pixel2mesh...
In eval.py, it might be best to replace "best" by "recent",
Cheers,
Thibault

Sorry for the overloaded terminology. eval.py currently only runs on the validation set. For the official test split, one will need to change this line


"sudo npm install -g qxcompiler" hangs on macOS

NPM hangs attempting to install qxcompiler. I always get a few git errors, then it hangs on "extract<EMAIL_ADDRESS>MacBook Pro Computer:~ jim$ sudo npm install -g qxcompiler
Unhandled rejection Error: Command failed: /usr/local/bin/git clone --depth=1 -q -b master git://github.com/pgaubatz/es6-promisify.git /Users/jim/.npm/_cacache/tmp/git-clone-8d8a509f
/Users/jim/.npm/_cacache/tmp/git-clone-8d8a509f/.git: Permission denied

    at ChildProcess.exithandler (child_process.js:294:12)
    at ChildProcess.emit (events.js:182:13)
    at maybeClose (internal/child_process.js:962:16)
    at Socket.stream.socket.on (internal/child_process.js:381:11)
    at Socket.emit (events.js:182:13)
    at Pipe._handle.close (net.js:610:12)

Unhandled rejection Error: Command failed: /usr/local/bin/git clone --depth=1 -q -b editable-json https://github.com/johnspackman/json-to-ast.git /Users/jim/.npm/_cacache/tmp/git-clone-72fad80a
/Users/jim/.npm/_cacache/tmp/git-clone-72fad80a/.git: Permission denied

    at ChildProcess.exithandler (child_process.js:294:12)
    at ChildProcess.emit (events.js:182:13)
    at maybeClose (internal/child_process.js:962:16)
    at Socket.stream.socket.on (internal/child_process.js:381:11)
    at Socket.emit (events.js:182:13)
    at Pipe._handle.close (net.js:610:12)

⸨            ░░░░░░⸩ ⠹ extract:qooxdoo-sdk: sill extract<EMAIL_ADDRESS>^C
MacBook Pro Computer:~ jim$ uname -a
Darwin MacBook Pro Computer 15.6.0 Darwin Kernel Version 15.6.0: Thu Jun 21 20:07:40 PDT 2018; root:xnu-3248.73.11~1/RELEASE_X86_64 x86_64
MacBook Pro Computer:~ jim$

This may be more of an issue with NPM but other installs have no issue, and may be related to the git errors.

Can you try installing without "sudo" ? https://medium.com/@ExplosionPills/dont-use-sudo-with-npm-still-66e609f5f92

I use qx-compiler happily on my mac ...

setup nvm https://github.com/creationix/nvm
and consider NOT installing qx-compiler with -g ... keep it together with your project.

@dgtlrift Do you still have this problem or can the issue be closed?

No feedback within more than a month, closing.


[BUG] tarball version suffix get trimmed

setuptools version
69.3.0 and above
Python version
Python 3.8
OS
Linux / macOS / windows
Additional environment information
No response
Description
Found in https://github.com/apache/beam/issues/30955,
setuptools trim the version number of ".0" when tarball gets built
If the package version is 1.0.0, now, it trimmed to 1.
If the package version is 1.0.0.dev0, now, it trimmed to 1.dev0
Expected behavior
Version name should be consistent of that assigned to.
How to Reproduce
Here is a minimum setup.py
import setuptools

setuptools.setup(
    name="dumb-project",
    version="1.0.0",
    description="test project",
    install_requires=[]
)

Prior to 69.3.0, run python setup.py sdist produces a tarball named dist/dumb-project-1.0.0.tar.gz, as expected. Now, it produces a tarball named `dist/dumb-project-1.tar.gz
Output
setuptools 69.2.0
python setup.py sdist
running sdist
running egg_info
writing dumb_project.egg-info/PKG-INFO
writing dependency_links to dumb_project.egg-info/dependency_links.txt
writing top-level names to dumb_project.egg-info/top_level.txt
reading manifest file 'dumb_project.egg-info/SOURCES.txt'
writing manifest file 'dumb_project.egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md

running check
creating dumb-project-1.0.0
creating dumb-project-1.0.0/dumb_project.egg-info
copying files to dumb-project-1.0.0...
copying setup.py -> dumb-project-1.0.0
copying dumb_project.egg-info/PKG-INFO -> dumb-project-1.0.0/dumb_project.egg-info
copying dumb_project.egg-info/SOURCES.txt -> dumb-project-1.0.0/dumb_project.egg-info
copying dumb_project.egg-info/dependency_links.txt -> dumb-project-1.0.0/dumb_project.egg-info
copying dumb_project.egg-info/top_level.txt -> dumb-project-1.0.0/dumb_project.egg-info
copying dumb_project.egg-info/SOURCES.txt -> dumb-project-1.0.0/dumb_project.egg-info
Writing dumb-project-1.0.0/setup.cfg
Creating tar archive
removing 'dumb-project-1.0.0' (and everything under it)

setuptools 69.3.0:
$ python setup.py sdist
running sdist
running egg_info
writing dumb_project.egg-info/PKG-INFO
writing dependency_links to dumb_project.egg-info/dependency_links.txt
writing top-level names to dumb_project.egg-info/top_level.txt
reading manifest file 'dumb_project.egg-info/SOURCES.txt'
writing manifest file 'dumb_project.egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md

running check
creating dumb_project-1
creating dumb_project-1/dumb_project.egg-info
copying files to dumb_project-1...
copying setup.py -> dumb_project-1
copying dumb_project.egg-info/PKG-INFO -> dumb_project-1/dumb_project.egg-info
copying dumb_project.egg-info/SOURCES.txt -> dumb_project-1/dumb_project.egg-info
copying dumb_project.egg-info/dependency_links.txt -> dumb_project-1/dumb_project.egg-info
copying dumb_project.egg-info/top_level.txt -> dumb_project-1/dumb_project.egg-info
copying dumb_project.egg-info/SOURCES.txt -> dumb_project-1/dumb_project.egg-info
Writing dumb_project-1/setup.cfg
Creating tar archive
removing 'dumb_project-1' (and everything under it)

cc: @jaraco

Thanks for the report and sorry for the inconvenience.
I think this is another case of "working as intended", based on PEP 625. Curiously, I can't find in the spec where it's indicated that trailing zeros are stripped, but that's the way the normalization is implemented.
See #4300 where the same rationale applies.

The setuptools 69.4.0 release sdist tarball is affected too. The tarball is named setuptools-69.4.0.tar.gz while the directory with the sources inside is setuptools-69.4.  It would be great if both versions match.

See #3593 for the rationale behind this change. I do agree that it seems strange that the sdist filename doesn't match the internal name. That sounds like a bug. I'll follow up in that issue.

Given bugs in the normalization logic, I would consider reverting these changes or yanking the release, until the bugs are addressed; otherwise we might have to pin to an older version of setuptools until fixes are available.

Yes, that seems sensible.

The setuptools 69.4.0 release sdist tarball is affected too. The tarball is named setuptools-69.4.0.tar.gz while the directory with the sources inside is setuptools-69.4. It would be great if both versions match.

That's not what I'm seeing:
 draft @ pip download --no-binary setuptools setuptools==69.4.0 -q
WARNING: The candidate selected for download or install is a yanked version: 'setuptools' candidate (version 69.4 at https://files.pythonhosted.org/packages/7a/12/dc02a2401dac87cb2d3ea8d3b23eab30db4cd2948d5b048bf912b9fe959a/setuptools-69.4.tar.gz (from https://pypi.org/simple/setuptools/) (requires-python:>=3.8))
Reason for being yanked: https://github.com/pypa/setuptools/issues/4302
 draft @ ls *.tar.gz
setuptools-69.4.tar.gz

The version in the tarball matches the new, preferred, canonical version (as returned by packaging.utils.canonical_version).
It's true that the version of the tarball in GitHub is going to be different, but that's because the version is going to match the tags or release, which are out of scope for the PEP. Because the PEP specifies one thing but semver specifies another, it's not going to be possible for a project to keep them in sync.

I'm releasing v69.3.1 and v69.4.1 with hotfixes for this issue. Version numbers will once again retain trailing zeros.

The setuptools 69.4.0 release sdist tarball is affected too. The tarball is named setuptools-69.4.0.tar.gz while the directory with the sources inside is setuptools-69.4. It would be great if both versions match.

That's not what I'm seeing:

You are right, the sdist tarball for 69.4(.0) is named properly.  I'm sorry, I've got confused by the PyPI version which is 69.4.0 and this does not match the sdist.


New release on rubygems?

Hello,
I'm currently developing a gem which has to use old OAuth1.0 flow. I'm also using Typhoeus and I found out that on 0.4.7 the TyphoeusProxy#method is not working anymore. On the master branch, however, it is fixed. Since specifying gem dependency in Gemfile, instead of gemspec, is a bad practice and you cannot set "git" or "branch" option in gemspec, could you please release new version with code from current master branch?
Cheers,
Karol

https://rubygems.org/gems/oauth/versions/0.5.0


Draft: updates the release branch with our changes to the kserve fork

This MR updates the release branch with our changes to the kserve fork.
Changes:

Ported the changes from the zillow/kserve branch.
Updated the logic in gitlab-ci.yaml as the logic to identify the version has changed a little in the open source code. You can see those changes with the diff of the first and the last commit to this branch.

If there any other changes needed to the fork, a separate MR will be created.

I don't remember what issue we had with table_logger. Now it uses tabulate instead. So I haven't ported over this change. Let me know if I should.


"Unknown error reading socket" causing the integration to become unresponsive.

Thanks for the integration. It works well until the error is encountered. Deleting and re-adding the integration restores device availability and responsiveness. Unfortunately, the error reoccurs after a an hour or so.
From the log:
Logger: gehomesdk.clients.websocket_client
Source: runner.py:188
First occurred: 12:10:17 AM (8 occurrences)
Last logged: 12:10:18 AM
File "/usr/local/lib/python3.11/site-packages/gehomesdk/ge_appliance.py", line 136, in get_erd_value

What version are you running?  If you aren't on the pre-release 0.6.9-dev4, can you try that version?
Can you provide a full log

Thanks for the quick reply. I have installed pre-release 0.6.9-dev4 and it is working thus far. Will provide more feedback tomorrow.

No errors since I updated to pre-release 0.6.9-dev4 and the integration has maintained responsiveness. Seems that the issue has been resolved. Thanks much for the quick fix and great integration!


List entire workflow history for a user's session in the upload page.

List the entire workflow history for a user's session in the upload page so they know what they've run. Currently that workflow history disappears when users leave the workflow page.

Don't show nascent workflow status in the Upload view. Monitoring workflow status should be done in the Collection view.

Is this a duplicate of #27?  I think we may need to wireframe this history flow out to come to a decision on where to put it.


Latex in comments doesn't wrap

Long formulas extend past the edge of comments, and they shouldn't https://www.metaculus.com/questions/28706/#comment-199628

note that the project uses mathjax 3 which does not support line breaking as far as I can tell, so this would probably be an annoying fix.

We had the exact same problem in the old site. One more reason to switch to Katex. See #971.


Add a UML to the doc

A UML of the project would help to better understand the structure of the code.
See sol2uml

UML was added in the "Documentation" branch.
https://github.com/CMTA/DVP/pull/21


java.lang.NullPointerException - Wikidata data uploads fail

I'm trying to upload edits to Wikidata. However I cannot pinpoint the record that fails. My question is:
Is it possible to debug openrefine, to check why it fails?
Is it possible to skip failed uploads and continue with the next one?
To Reproduce
Current Results
Exception in thread "Thread-4" java.lang.NullPointerException
	at org.openrefine.wikidata.updates.ItemEdit.lambda$toEntityUpdate$0(ItemEdit.java:146)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.openrefine.wikidata.updates.ItemEdit.toEntityUpdate(ItemEdit.java:146)
	at org.openrefine.wikidata.editing.EditBatchProcessor.performEdit(EditBatchProcessor.java:173)
	at org.openrefine.wikidata.operations.PerformWikibaseEditsOperation$PerformEditsProcess.run(PerformWikibaseEditsOperation.java:262)
	at java.base/java.lang.Thread.run(Thread.java:829)

Expected Behavior

Screenshots

Versions

Operating System: Ubuntu
Browser Version:
JRE or JDK Version:
OpenRefine: Version 3.6.2

Datasets

Additional context

Thanks for the repor would be curious to know if it also happening with the latest snapshot release.

Clipboard.openrefine.tar.gz
Please try to upload this statement to Wikidata.


Web design mistakes that are unfriendly to SEO and how to avoid them

NOTE: We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
Brief Summary:
SEO stands for “search engine optimization.”It is the process of improving your site to increase its visibility for relevant searches, the more visible a website is the more likely it's going to gain attention and attract prospective and existing customers to your business.
Key Takeaways:

A knowledge of Design Mistakes that are not SEO Friendly.
Learn how to avoid them.

References:
Please list links to any published content/research that you intend to use to support/guide this article. (If none, please indicate 'N/A'.)

Thank you for your topic suggestion. Per the recent message posted in our EngEd Slack channel, we are pausing acceptance of new articles until further notice while we work through the backlog of submitted drafts. We will notify you when we are ready to accept new topic suggestions. Thank you for your patience.


Add coupler's (combined) rho_sfc and q_sfc_sat calculation

Purpose

Closes #330 (see for details)

[x] I have read and checked the items on the review checklist.

bors r+


Run as service

Usage: frankensat.sh {start|stop|install|uninstall|}
start: start service in background
install: install service for autostart
uninstall: uninstall service for autostart
nnn: override Azimuth center and run once in foreground

Usage: frankensat.sh {start|stop|install|uninstall|}
start: start service in background
install: install service for autostart
uninstall: uninstall service for autostart
nnn: override Azimuth center and run once in foreground


dns discovery: set initial-advertise-peer-urls as https url

I use nginx to proxy etcd server and do ssl termination, it use http2. Etcd uses DNS Discovery. And after I startup, cluster cannot work normally.
This my etcd startup cmd

etcd --name thor{num} --data-dir /var/lib/etcd --initial-cluster-token etcd-cluster --initial-cluster-state new --discovery-srv example.com --initial-advertise-peer-urls https://thor01.example.com:4760 --listen-peer-urls http://<IP_ADDRESS>:2380 --advertise-client-urls https://thor01.example.com:4758 --listen-client-urls http://<IP_ADDRESS>:2379

log
2017-08-24 15:47:09.139152 I | etcdmain: etcd Version: 3.2.6
2017-08-24 15:47:09.139187 I | etcdmain: Git SHA: 9d43462
2017-08-24 15:47:09.139190 I | etcdmain: Go Version: go1.8.3
2017-08-24 15:47:09.139195 I | etcdmain: Go OS/Arch: linux/amd64
2017-08-24 15:47:09.139198 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
2017-08-24 15:47:09.139246 N | etcdmain: the server is already initialized as member before, starting as etcd member...
2017-08-24 15:47:09.139307 I | embed: listening for peers on http://<IP_ADDRESS>:2380
2017-08-24 15:47:09.139337 I | embed: listening for client requests on <IP_ADDRESS>:2379
2017-08-24 15:47:09.146167 I | etcdserver: name = thor01
2017-08-24 15:47:09.146180 I | etcdserver: data dir = /var/lib/etcd
2017-08-24 15:47:09.146185 I | etcdserver: member dir = /var/lib/etcd/member
2017-08-24 15:47:09.146188 I | etcdserver: heartbeat = 100ms
2017-08-24 15:47:09.146191 I | etcdserver: election = 1000ms
2017-08-24 15:47:09.146194 I | etcdserver: snapshot count = 100000
2017-08-24 15:47:09.146204 I | etcdserver: advertise client URLs = https://<IP_ADDRESS>:4758
2017-08-24 15:47:09.147013 I | etcdserver: restarting member f5e2bce5ae996f7 in cluster 771871d99223fdd1 at commit index 3
2017-08-24 15:47:09.147049 I | raft: f5e2bce5ae996f7 became follower at term 15
2017-08-24 15:47:09.147058 I | raft: newRaft f5e2bce5ae996f7 [peers: [], term: 15, commit: 3, applied: 0, lastindex: 3, lastterm: 1]
2017-08-24 15:47:09.149173 W | auth: simple token is not cryptographically signed
2017-08-24 15:47:09.150181 I | etcdserver: starting server... [version: 3.2.6, cluster version: to_be_decided]
2017-08-24 15:47:09.150888 I | etcdserver/membership: added member f5e2bce5ae996f7 [http://thor01.example.com:4760] to cluster 771871d99223fdd1
2017-08-24 15:47:09.150975 I | etcdserver/membership: added member fea6d1bf0db64b9 [http://thor02.example.com:4760] to cluster 771871d99223fdd1
2017-08-24 15:47:09.150998 I | rafthttp: starting peer fea6d1bf0db64b9...
2017-08-24 15:47:09.151021 I | rafthttp: started HTTP pipelining with peer fea6d1bf0db64b9
2017-08-24 15:47:09.151254 I | rafthttp: started streaming with peer fea6d1bf0db64b9 (writer)
2017-08-24 15:47:09.151932 I | rafthttp: started streaming with peer fea6d1bf0db64b9 (writer)
2017-08-24 15:47:09.153172 I | rafthttp: started peer fea6d1bf0db64b9
2017-08-24 15:47:09.153194 I | rafthttp: added peer fea6d1bf0db64b9
2017-08-24 15:47:09.153221 I | rafthttp: started streaming with peer fea6d1bf0db64b9 (stream Message reader)
2017-08-24 15:47:09.153237 I | rafthttp: started streaming with peer fea6d1bf0db64b9 (stream MsgApp v2 reader)
2017-08-24 15:47:09.153266 I | etcdserver/membership: added member 3aea22b89d7c833a [http://thor03.example.com:4760] to cluster 771871d99223fdd1
2017-08-24 15:47:09.153280 I | rafthttp: starting peer 3aea22b89d7c833a...
2017-08-24 15:47:09.153308 I | rafthttp: started HTTP pipelining with peer 3aea22b89d7c833a
2017-08-24 15:47:09.153533 I | rafthttp: started streaming with peer 3aea22b89d7c833a (writer)
2017-08-24 15:47:09.154117 I | rafthttp: started streaming with peer 3aea22b89d7c833a (writer)
2017-08-24 15:47:09.154804 I | rafthttp: started peer 3aea22b89d7c833a
2017-08-24 15:47:09.154825 I | rafthttp: added peer 3aea22b89d7c833a
2017-08-24 15:47:09.154839 I | rafthttp: started streaming with peer 3aea22b89d7c833a (stream Message reader)
2017-08-24 15:47:09.154929 I | rafthttp: started streaming with peer 3aea22b89d7c833a (stream MsgApp v2 reader)
2017-08-24 15:47:10.047389 I | raft: f5e2bce5ae996f7 is starting a new election at term 15
2017-08-24 15:47:10.047454 I | raft: f5e2bce5ae996f7 became candidate at term 16
2017-08-24 15:47:10.047467 I | raft: f5e2bce5ae996f7 received MsgVoteResp from f5e2bce5ae996f7 at term 16
2017-08-24 15:47:10.047476 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to fea6d1bf0db64b9 at term 16
2017-08-24 15:47:10.047515 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to 3aea22b89d7c833a at term 16
2017-08-24 15:47:11.147341 I | raft: f5e2bce5ae996f7 is starting a new election at term 16
2017-08-24 15:47:11.147371 I | raft: f5e2bce5ae996f7 became candidate at term 17
2017-08-24 15:47:11.147382 I | raft: f5e2bce5ae996f7 received MsgVoteResp from f5e2bce5ae996f7 at term 17
2017-08-24 15:47:11.147390 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to fea6d1bf0db64b9 at term 17
2017-08-24 15:47:11.147412 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to 3aea22b89d7c833a at term 17
2017-08-24 15:47:12.147331 I | raft: f5e2bce5ae996f7 is starting a new election at term 17
2017-08-24 15:47:12.147369 I | raft: f5e2bce5ae996f7 became candidate at term 18
2017-08-24 15:47:12.147383 I | raft: f5e2bce5ae996f7 received MsgVoteResp from f5e2bce5ae996f7 at term 18
2017-08-24 15:47:12.147396 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to fea6d1bf0db64b9 at term 18
2017-08-24 15:47:12.147408 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to 3aea22b89d7c833a at term 18
2017-08-24 15:47:13.747326 I | raft: f5e2bce5ae996f7 is starting a new election at term 18
2017-08-24 15:47:13.747360 I | raft: f5e2bce5ae996f7 became candidate at term 19
2017-08-24 15:47:13.747370 I | raft: f5e2bce5ae996f7 received MsgVoteResp from f5e2bce5ae996f7 at term 19
2017-08-24 15:47:13.747393 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to fea6d1bf0db64b9 at term 19
2017-08-24 15:47:13.747402 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to 3aea22b89d7c833a at term 19
2017-08-24 15:47:14.153415 W | rafthttp: health check for peer fea6d1bf0db64b9 could not connect: invalid character '<' looking for beginning of value
2017-08-24 15:47:14.154961 W | rafthttp: health check for peer 3aea22b89d7c833a could not connect: invalid character '<' looking for beginning of value
2017-08-24 15:47:15.147290 I | raft: f5e2bce5ae996f7 is starting a new election at term 19
2017-08-24 15:47:15.147317 I | raft: f5e2bce5ae996f7 became candidate at term 20
2017-08-24 15:47:15.147327 I | raft: f5e2bce5ae996f7 received MsgVoteResp from f5e2bce5ae996f7 at term 20
2017-08-24 15:47:15.147335 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to fea6d1bf0db64b9 at term 20
2017-08-24 15:47:15.147341 I | raft: f5e2bce5ae996f7 [logterm: 1, index: 3] sent MsgVote request to 3aea22b89d7c833a at term 20
2017-08-24 15:47:16.150528 E | etcdserver: publish error: etcdserver: request timed out
......

As you see, it shows added member f5e2bce5ae996f7 [http://thor01.example.com:4760] to cluster 771871d99223fdd1. I think it should be https.
This is nginx config
server {
        listen       4760 ssl http2;
        server_name  thor01.example.com;

        ssl_certificate fullchain.pem;
        ssl_certificate_key privkey.pem;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        access_log off;

        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_next_upstream off;
                proxy_pass http://<IP_ADDRESS>:2380;
       }
}
server {
        listen       4758 ssl http2;
        server_name  thor01.example.com;

        ssl_certificate fullchain.pem;
        ssl_certificate_key privkey.pem;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        access_log off;

        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_next_upstream off;

                proxy_pass http://<IP_ADDRESS>:2379;
       }
}

How are the SRV records configured?

dig +noall +answer SRV _etcd-server._tcp.example.com
_etcd-server._tcp.example.com. 1 IN	SRV	0 0 4760 thor01.example.com.
_etcd-server._tcp.example.com. 1 IN	SRV	0 0 4760 thor02.example.com.
_etcd-server._tcp.example.com. 1 IN	SRV	0 0 4760 thor03.example.com.

try _etcd-server-ssl._tcp.example.com

You alert me! Thanks!
After set SRV for ssl, I got this in etcd log
rafthttp: health check for peer 20fdc7247054886c could not connect: x509: certificate is valid for thor01.example.com, not example.com
rafthttp: health check for peer 20fdc7247054886c could not connect: x509: certificate is valid for thor03.example.com, not example.com

the certificates seem to be matching example.com instead of the *.example.com

This is cert info from certbot

Certificate Name: thor01.example.com
Domains: thor01.example.com
Expiry Date: 2017-11-22 01:43:00+00:00 (VALID: 89 days)
Certificate Path: ...
Private Key Path: ...

I believe this is a bug.
Discovery bootstrapping will use discovery-srv (example.com) for the ServerName to avoid a mitm cert attack:
if strings.Contains(clusterStr, "https://") && cfg.PeerTLSInfo.CAFile == "" {
    cfg.PeerTLSInfo.ServerName = cfg.DNSCluster
}

but the machine hosts have subdomain.example.com, so they won't match. It should probably be "*." + cfg.DNSCluster

Thanks a lot! So will you fix it ?

I have attempted, but Go is not my language and solving this problem needs some considers about the whole project.

Could you help me about this commit?
I change code like cfg.PeerTLSInfo.ServerName = "*." + cfg.DNSCluster, but it doesn't work. Are commits between Aug 28 and today change matching method of ServerName?

I just test and get
2017-10-09 11:14:36.779103 W | etcdserver: could not get cluster response from https://thor01.duobeiyun.com:4760: Get https://thor01.duobeiyun.com:4760/members: x509: certificate is valid for thor01.duobeiyun.com, not *.duobeiyun.com

What happens

/cc @gyuho can you take a look?

@zyf0330 You probably need regenerate certs with wildcard, since we

Discovery bootstrapping will use discovery-srv (example.com) for the ServerName to avoid a mitm cert attack:

Do you mean, I need set ServerName of cert as *.example.com when server's domain is node01.example.com?

And I don't think it is a good idea too.

Can you explain why? You are already passing --discovery-srv example.com...

Actually, the hard problem is Let's Encrypt doesn't support wildcard domains. About what I said above, Maybe I think of something wrong.

@gyuho well... actually it seems that server name does not support wildcard matching. the fix we have is not exactly what @zyf0330 wants.
@heyitsanthony @lclarkmichalek  do you still remember how do we expect this checking to work? i am sure at some point, someone tested it...

I think exact match *.example.com is not a very proper way. Why not just wildcard match like using regex pattern (.+\.)?${domain}?

@zyf0330 it needs an exact match. regex and wildcare are not supported. so you have to use wildcard in your cert too.

what is the reason it must be an exact match? For security?
On Wed, Oct 11, 2017, 12:55 Xiang Li<EMAIL_ADDRESS>wrote:

@zyf0330 https://github.com/zyf0330 it needs an exact match. regex and
wildcare are not supported. so you have to use wildcard in your cert too.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/coreos/etcd/issues/8445#issuecomment-335682193, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ALZ5gU7VDElxYr7vQAGbFLD3sJHSy3Hyks5srEpdgaJpZM4PBB9-
.

--
追随

I just want to note, since I went down the rabbit hole of trying to get a working TLS config set up with DNS discovery, that perhaps the doc'n could be clearer about the requirements.  I ended up getting everything working by adding two entries to the Subject Alt Name on my certificate: a DNS name for the hostname, a DNS name for the etcd discovery address.  A wildcard isn't actually required, just potentially more convenient.

@bdhess Do you set one of DNS name as root domain name? Like this, your etcd address is etcd1.example.com, and you set these two DNS name for cert, they are example.com and etcd1.example.com

Yup, I'm setting CN=hostname.example.com as the subject and adding DNS SAN entries for both hostname.example.com and etcd.example.com.

I agree your way is effect, but I think supporting wildcard domain of SRV Discovery is necessary.
And it's hard for me to add root domain name for my cert issued by Let's Encrypt.

@gyuho @xiang90 @heyitsanthony actually I believe the change in #8651 would break the configuration I suggested.  It's not clear why you should require a wildcard.
Basically, the mental model I have is that a particular etcd node is addressable in multiple contexts: either (1.) under the identity of an individual node, in the context of a direct connection, or (2.) under the identity of the cluster, in the context of a discovered connection.
Wildcards are one way to achieve the goal of having a single certificate that's valid for two different identities.  But that's definitely not the only way, nor is it preferred.  Since the wildcard *.example.com is valid for etcd-node-1.example.com and etcd.example.com, but also for webserver.example.com, database.example.com, and so on.  A better approach is to issue a certificate that's only valid for etcd-node-1.example.com and etcd.example.com using SANs.

@bdhess  I agreed your way is effect, but it doesn't mean supporting wildcard domain is bad.
There is If etcd is using TLS without a custom certificate authority, the discovery domain (e.g., example.com) must match the SRV record domain (e.g., infra1.example.com).  wrote in doc of DNS Discovery. So this feature is what be expected, and now it is a bug that wildcard domain is not supported.
And patch #8651 is a improper fix for me, because I cannot set *.example.com as cert domain name issued by Let's Encrypt. They will support this function next year.

Custom wildcard matching is bad from a security perspective, because it is inconsistent with standard X.509 idioms.  Assume an etcd deployment with an SRV record at app.example.com and hosts node-1.app.example.com and node-2.app.example.com.  A PKI identity issued for metrics.app.example.com would apparently be sufficient to join the etcd cluster, even if the cluster administrator doesn't intend for that to be the case.
In a small shop, the etcd cluster administrator and the PKI administrator may be the same person, so the point is moot.  But in a larger organization, maintaining effective security controls on etcd requires that the PKI administrator understand the custom etcd security model. This doesn't scale.

While enumerating the issues with x509 validation is an entertaining passtime, the fact remains that the expected behaviour of TLS validation is to validate wildcard certificates correctly. If you find wildcard certs to be an issue, then you can work around this by not issuing any wildcard certificates.
To take your example of app.example.com a little more concretely, what I usually see is:
etcd.prd.example.com
n00.etcd.prd.example.com
n01.etcd.prd.example.com
n01.etcd.prd.example.com

Now, if I hand you a certificate for *.etcd.prd.example.com, what would you expect to be able to do?
etcd TLS setup is hard enough as it is, mostly because it breaks a lot of expectations people have (from HTTPS validation usually). The security gain from disallowing wildcard certificates is not worth the breaking of expectations, and the subsequent insecure clusters when people realise that running unauthenticated is a whole lot easier.

I'm not saying that using actual wildcard certificates should be disallowed.  I'm saying that the matching rules that are built into etcd shouldn't add wildcarding of their own.  I'm specifically talking about changes like #8651.

@bdhess Previously it tries to do a exact match without the subdomain. how would that even get verified correctly? maybe i misunderstood something early in this issue.
i will go over the thread later.

@xiang90 using subject alt names
Here's an example cert for an etcd node name node1.example.com that is a part of the etcd.example.com cluster:
 ❯ openssl x509 -in node1.etcd.example.com.cer -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            6e:f0:28:c2:42:01:f2:16:73:70:80:c0:5d:50:86:51:37:37:d6:7f:9d:f4:55:7e:69:64:7d:6a:d6:57:e4:6c
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=etcd.example.com Root Authority
        Validity
            Not Before: Oct 31 18:00:42 2017 GMT
            Not After : Oct 31 19:00:42 2019 GMT
        Subject: CN=node1.etcd.example.com
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
            EC Public Key:
                pub:
                    04:5d:3f:80:98:3d:7d:f5:39:fe:05:35:41:83:12:
                    cb:ab:09:3f:99:d0:b0:99:06:5d:9b:3f:4f:35:d1:
                    4b:43:b8:f2:79:eb:d9:5a:84:ba:42:d5:61:3c:8d:
                    c0:bc:14:aa:76:8f:8d:31:56:16:98:bf:00:1a:06:
                    aa:62:70:89:e1
                ASN1 OID: prime256v1
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Extended Key Usage:
                TLS Web Client Authentication, TLS Web Server Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Alternative Name:
                DNS:node1.etcd.example.com, DNS:etcd.example.com
    Signature Algorithm: ecdsa-with-SHA256
        30:46:02:21:00:91:3c:75:92:b4:6c:86:7d:c1:c5:6c:65:d7:
        f5:28:2a:44:fa:d9:04:10:51:52:50:40:34:6c:81:07:55:eb:
        92:02:21:00:cb:5f:3c:c6:66:f1:7f:dc:70:57:80:69:ae:7e:
        5b:4b:4a:4c:d1:ae:cc:13:b7:6d:2d:7e:b8:3c:c3:e3:dc:f9
-----BEGIN CERTIFICATE-----
MIIB2DCCAX2gAwIBAgIgbvAowkIB8hZzcIDAXVCGUTc31n+d9FV+aWR9atZX5Gww
CgYIKoZIzj0EAwIwNDEyMDAGA1UEAxMpZXRjZC5leGFtcGxlLmNvbSBFdGNkIEhv
c3QgUm9vdCBBdXRob3JpdHkwHhcNMTcxMDMxMTgwMDQyWhcNMTkxMDMxMTkwMDQy
WjAhMR8wHQYDVQQDExZub2RlMS5ldGNkLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C
AQYIKoZIzj0DAQcDQgAEXT+AmD199Tn+BTVBgxLLqwk/mdCwmQZdmz9PNdFLQ7jy
eevZWoS6QtVhPI3AvBSqdo+NMVYWmL8AGgaqYnCJ4aN0MHIwDgYDVR0PAQH/BAQD
AgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAMBgNVHRMBAf8EAjAA
MDMGA1UdEQQsMCqCFm5vZGUxLmV0Y2QuZXhhbXBsZS5jb22CEGV0Y2QuZXhhbXBs
ZS5jb20wCgYIKoZIzj0EAwIDSQAwRgIhAJE8dZK0bIZ9wcVsZdf1KCpE+tkEEFFS
UEA0bIEHVeuSAiEAy188xmbxf9xwV4Bprn5bS0pM0a7ME7dtLX64PMPj3Pk=
-----END CERTIFICATE-----

@bdhess @zyf0330 @stephanh @lclarkmichalek
I am inclined to revert #8651.
So if you have 1.example.com and want to use SRV discovery under example.com domain, then you need to have
1.example.com
example.com

as Subject Alternative Name before.
With #8651, you need to have
*.example.com

#8651 might save one SAN, but it does not really bring any value if you want to put exact subdomain in to the SAN.
But @zyf0330 said he cannot really have wildcard cert, so i am not sure what we are fixing here but bring in an incompatibility change.
opinions?

@xiang90 I mean I cannot have a wildcard cert which domain name is *.example.com, but I can have what like 1.example.com which is  an exact domain.
#8651 matches just exact domain name *.example.com, but I want it to match domain with regex whose root domain is example.com like 1.example.com or a.example.com or etc.
I just don't clear what @bdhess want now, because he was just opposed to wildcard domain matching. Does he want you to specify a pattern to set domain?

but I want it to match domain with regex whose

Correct me if I am wrong, but no such thing exists. hostname ONLY support exact match. you either put *.example.com there to match ONLY *.example or example.com to match example.com.
If you think TLS can use regex to do verification, please show me the RFC and probably a go example.

I know.
See error info rafthttp: health check for peer 20fdc7247054886c could not connect: x509: certificate is valid for thor01.example.com, not example.com again.
My question is why probe requests url example.com but gets cert thor01.example.com. If it requests url thor01.example.com, it should get correct cert.
I cannot find where this info appears and AddPeer defined in rafthttp/transport.go is called.

@zyf0330
OK. Now I know why you are confused.
etcd does not try to connect to example.com, but it does expect the cert from its peers to have SAN with example.com (without the patch) or *.example.com (with the patch) when the cluster is bootstrapped with DNS SRV.
The reason for the check is to ensure the DNS SRV discovery is not hijacked to return you domains that has nothing to do with example.com.
We are going to revert the patch, and improve the documentation on this.
If you cannot put the root domain in SAN, the only option for you is to disable the check. Maybe you can submit a PR to add a flag for that. I am not sure about it at the moment though.

I don't understand above explanation.

etcd does not try to connect to example.com, but it does expect the cert from its peers to have SAN with example.com (without the patch) or *.example.com (with the patch) when the cluster is bootstrapped with DNS SRV.

When etcd get domain like 1.example.com from DNS SRV of example.com, if it think *.example.com is valid, why it thinks this situation is invalid that 1.example.com domain has 1.example.com cert ? I just don't know how it decides and where code related to this function is?
And if etcd gets domain 1.example2.com with matching cert 1.example2.com or not-matching cert other.com from DNS SRV of example.com, then I believe it is right etcd treats it as invalid.

It has nothing to do with etcd, but how TLS works in general.I would suggest you to learn how it works at this point.

Can you tell me where code is about how to decide domain from DNS SRV is valid?

I just see some code and learn something. When use DNS Discovery mode, cfg.PeerTLSInfo.ServerName is set as "*." + cfg.DNSCluster (with the patch), and is used by all peers url. If use Static Discovery, every peer url uses their self domain matchs cert.
So this is my thought:

I know matching cert is not thing of etcd, but etcd set ServerName of TLSInfo for them.
I don't see more code, so don't know why etcd doesn't set respective ServerName of TLSInfo for each peer. Please tell me why, thanks.

Finally, if etcd cannot do this, then just revert that patch. Adding a flag to ignore check is not necessary, at least for me.

@xiang90 sorry for the delay in my reply-- I support reverting #8651

@bdhess @zyf0330 We've reverted that change in https://github.com/coreos/etcd/pull/8884.
And plan to publish another patch release with it, sometime next week.


Use io_uring to read local files

https://docs.rs/io-uring/latest/io_uring/
Io_uring uses queues that are shared with the kernel to minimize system calls when doing local file io, let's try using that to reduce the time spent reading the zarr chunks.

PR linked, I did some rough benchmarks, I will add comments to the code regarding some of the parameters I'm using, but essentially I'm seeing a significant speed up when reading files using io_uring compared to fs::read, something like 2x-4x, varies a lot depending on if I'm reading small chunks or larger chunks, I'm assuming for the former the overhead of system calls takes up a bigger fraction of the total time. For more realistic larger chunks, it's more like a 2x speed up, for now.
I wrote something very simple and didn't try to do tons of complicated stuff to really get the most out of io_uring just yet, I can come back to that later. I think there might be lower hanging fruits in terms of improving performance for now.


rtg returns

About the PR
again you can break the generator and get a mini reactor
add: The RTG can now be turned into a damaged RTG with some effort

Looks fine. Your changelog should probably read “add: The RTG can now be turned into a damaged RTG with some effort”
The add: is just for the symbol.
you could also do the same for the damaged to make it destroy into sheet metal and uranium.

ok thanks

Looks fine. Your changelog should probably read “add: The RTG can now be turned into a damaged RTG with some effort”
The add: is just for the symbol.
you could also do the same for the damaged to make it destroy into sheet metal and uranium.

done

Merge me 👉👈UwU


PLIST does not convert

 C     *entry        plist
 C                      parm                    var11
 C                      parm                    var12

These lines do not change when selected for conversion.

This was causing the extension to fail and nothing to be converted.  0.0.7 fixes that failure but this does not convert a PLIST yet.

Feedback:
PLIST no longer stops the conversion, but it totally removes the PLIST code.  Not sure that is good-I think I would opt to leave the original code in there, if possible.
Given this:
     d EofIn           s               n

     c     *entry        plist
     c                   parm                    pClass
     c                   parm                    pRegion
     c                   parm                    pRetCode

     c                   eval      *INLR = *ON

When converted it give this:

        Dcl-S EofIn        Ind;

        *INLR = *ON;

@BrianGarland

My intent is for the conversion to work.  I needed it to not break the entire project as a start.

I've updated the code to just ignore *ENTRY PLIST for now.
0.0.9 published with this fix

Are there any plans to get this working to convert the *ENTRY PLIST ?


feat: adding idempotency header for payment mutations

The code looks good to me, let me try to run this locally and check.


feat: update submodule to use common-dev-assets tests code

Description
update submodule to use common-dev-assets tests code
Check the relevant boxes:

[ ] Bug fix (nonbreaking change that fixes an issue)
[x] New feature (nonbreaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Examples or tests (addition or updates of examples or tests)
[ ] Documentation update
[ ] CI related update (pipeline, etc.)

Checklist

[ ] If relevant, a test for the change has been added or updated as part of this PR.
[ ] If relevant, documentation for the change has been added or updated as part of this PR.

Merge

Merge using "Squash and merge".
Make sure to use a relevant conventional commit message that is based on the PR contents. The commit message determines whether a new version of the modules needs to be released, and if so, which semver number to use).

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add badges

@neraliu @adon-at-work please review. We'll merge this once we have build and publish working

gd

CLA is valid!


Loading Secrets(Vault) and Config(Consul)

POC in K8s to load data from Consul and Vault. Setup a Deployment in K8s that reads data from consul and vault. The main idea are the patterns that can be used to achieve this using k8s.

We have a couple of ways to get secrets into the application container. One of them is the consul template. This will work for both consul and vault. This provides us the flexibility to have non secret data in consul and secret data in vault. The consul template method will involve setting up a init and side car container. One for initial load and the other to keep the secrets and data in sync.

The second method will be to use the vault agent injector. This will generate a config file in the container where the process can read the secret information from. This is ideal for edxapp as we can generate the cfg file and feed the location as an environment variable.

The third option also is based on the vault side injection method but instead of writing to a file only it also sources the shell with the content of the config file. We have to prefix every line in the config file with a export APP statement.

@Ardiea  Feel free to add some comments about your thoughts on these 3 different methods.

There is a 4th option which I have not looked into in depth. This is using the CSI Provider. At a high level, the CSI Secrets Store driver allows users to create SecretProviderClass objects. This object defines which secret provider to use and what secrets to retrieve. When pods requesting CSI volumes are created, the CSI Secrets Store driver will send the request to the Vault CSI Provider if the provider is vault. The Vault CSI Provider will then use Secret Provider Class specified and the pod's service account to retrieve the secrets from Vault, and mount them into the pod's CSI volume.
The secret is retrieved from Vault and populated to the CSI secrets store volume during the ContainerCreation phase. This means that pods will be blocked from starting until the secrets have been read from Vault and written to the volume.
We would need to create SecretProviderClass objects for this and then mount it as a volume. This needs a vaultcacertpath to be provided and has to be replicated everytime we need to setup a new app. This is not a one time process.

The fourth one definitely sounds interesting and I think we should learn more about that.
Aside from that I think that number one is the most realistic.
Re: sidecar with option one, it needs to have some way to tell the application that the config has changed, which may not be something that exists. It isn't generally enough to just have the sidecar swap out the config on the ephemeral file system. Either a hook built into the app to tell it to reload or killing the container and letting it restart or something with ionotify.

@Ardiea  I personally think that the CSI driver is more work and also had the drawback that they pod will be blocked from starting until the secrets have been read from vault. Also we have to create the additional SecretProviderClass  and do bootstrapping.
I would ideally recommend have the apps have some library to read from a vault path. All we do is give the pod the rights to do it. The app can then read from the path in vault. And since all our apps are python based we can have a pip package for this.

There is another option that is not under the vault hashicorp umbrella. It uses an another app called vault-crd which needs to be setup. I am going to see how that works today.

After some exploratory work on Kubernetes we have decided that the overall effort is not worth the investment right now given our team capacity and competing priorities. One of the blocking items is the level of effort required to make secrets actually secret while they are in use. We will monitor progress on how sensitive data is managed in K8s to see if the situation improves.


[Marsha standalone site] "Maximum update depth exceeded" error while scrolling on the Shibboleth selector

Bug Report
Problematic Behavior
A blank page appears when scrolling on the Shibboleth selector for some time.
Steps to Reproduce

Go to marsha.education/login
Scroll slowly on the Shibboleth selector
A blank page appears

The body of the blank page wrongly indicates that JS is not enabled on the browser:
<noscript>You need to enable JavaScript to run this app.</noscript>
The full React error is:
Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
Environment

Marsha version: standalone site (production & staging)
Browsers: Brave v1.46.144 or Chromium  v108.0.5359.124

Additional context/Screenshots
react-bug-standalonesite.webm

The error comes from a file in Grommet, I posted an issue about it:
https://github.com/grommet/grommet/issues/6594


feat(@vtmn/css): improve VtmnPrice component by removing padding

…ikethrough variants
Changes description & Context

Issue here https://github.com/Decathlon/vitamin-design/issues/167
Checklist

[x] Make sure you are requesting to pull a topic/feature/bugfix branch. Please, don't request directly from your main!
[x] Check commits & PR names matches our requested structure. It must follow the https://www.conventionalcommits.org pattern.
[x] Check your code additions will fail neither code linting checks.
[x] I have reviewed the submitted code.
[x] I have tested on related showcases.
[x] If it includes design changes, please ask for a review design-system-core-team-design GitHub team.

Does this introduce a breaking change?

Yes

is removing the padding-inline for default and strikethrough vartiant of VtmnPrice so is a breaking change

Thanks @EGilleron for the PR :)
I have a question about the padding-inline. I think (for me), it's better to remove this value from the .vtmn-price and set padding-inline: var(--vtmn-spacing_2); only for vtmn-price_variant--accent and vtmn-price_variant--alert.
Because by default, the component should not have padding-line. It's because we integrate a background color that we want to put an inline.

Hi @EGilleron thanks for your PR !
I agree with @Tlahey on settings properties only where they make sense instead of overriding them :)

Hi @EGilleron thanks for your PR ! I agree with @Tlahey on settings properties only where they make sense instead of overriding them :)

I agree with you and @Tlahey makes sense, it was fixed with a new commit 🤟🏻

Perfect for me, I merge this as-is.
Thanks again for your contribution @EGilleron , really appreciated :)

Hello,
I had reverted this PR because https://github.com/Decathlon/vitamin-design/issues/167 had been reopened & I also converted to draft #1343 (cf. my email).
Thanks for your understanding!


3.0 The integration of general json and rest

The integration of general json and rest in 3.0

Pls fix you ci check.


Add missing method call in code snippet.

The example code snippet is broken because of this missing method call.

@jimmyca15 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Temporarily exclude plinux dev.external for release

Temporarily exclude plinux dev.external for release
Issue: https://github.com/eclipse-openj9/openj9/issues/18468

New machines have been setup, will wait for the validation first.

Close this draft since plinux criu tests re-enabled via https://github.com/eclipse-openj9/openj9/pull/20143. Thanks.


feat: update license

Describe This Problem
Should we update the license for all rust files？
Proposal
// Copyright 2023 The HoraeDB Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//! Build script

to
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//! Build script

Additional Context
No response

Thanks to attention, we need the asf's license, it's different from the version before.
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.


Revert "feat: add co sign button initiating file upload drawer"

Reverts input-output-hk/lace#1322

Allure Report
allure-report-publisher generated test report!

smokeTests: ✅ test report for 1c8565d7

passed
failed
skipped
flaky
total
result

Total
32
0
0
0
32
✅


getting object construction ordering

Hi, I am wondering if it's possible to get object construction ordering ?
My use case is about closing resources in proper ordering during shutdown, the naive idea was somehow get construction ordering then close resources backward.

There's no way to get information about the ordering "automatically", but  maybe sth like this would work:
lazy val muService = { addToShutdownQueue(wire[MyService])) }

def addToShutdownQueue[T](t: T): T = { queue.add(t); t }

where queue would be some kind of a concurrent queue which you would use in the closing process.


Traceback duration logic

Summary | Résumé
I cherry-picked in the commits from #1047. I changed the logic to use the contagiousDateInfo object that will be passed in once #1088 is merged. The logic that determines when the user is contagious based on their test date needs looking at. I'm not sure how many days before the test date we are considering the person to be contagious (this has been set at 11 for now for no particular reason).
Test instructions | Instructions pour tester la modification
It may be easier to test this after #1088 is in. To test this PR by itself, you could manually change the symptom onset date in the source code, do the TEK upload flow through the app, and check that only TEKs from the contagious period are uploaded to the server.
Unresolved questions / Out of scope | Questions non résolues ou hors sujet
There are a few TODOs that need resolving at some point.

Merged into #1109


[ALLUXIO-1787] Mark alluxio.resource.DummyCloseableResource final

modify DummyCloseableResource to a final class

Can one of the admins verify this patch?

Jenkins, OK to test

ok to test

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/8941/
Test PASSed.

+1 LGTM
Thanks for the patch!


It cannot be compiled on UWP, IL2CPP Backend

I described here, what I have done. So far I failed to compile it.
I was wondering, if you have any idea or hint or something that I can try. Thanks in advance.

You can try adding something like this file in your Unity Plugins folder:
https://github.com/jsmouret/grpc-unity-package/blob/master/Plugins/Grpc.Core/runtimes/grpc_csharp_ext_stub.c

First of thanks for your response. I just included it in the build by adding it to the project and set its platform to "any". I built it, it did not work.

I tried to change the __Internal to the name of the script. It did not work out.

I tried to manually reference it. I did not work out.

How do you suggest me include it?
There is a Script, called BuildHelper in your repository. It is written for iOS, do you think I need something like that for UWP?

I just looked at provided .dlls for Win in the plugin folder. In Unity they are not included in the WSA players by default, I included them, but I got @dlopen error.

I also tried to reference .c script in Linker, Project Properties in VS. But again, it did not make a change.

Ok, it works. But if I tell you how, you are not going to believe it.
remember I mentioned above that I am getting "dlopen" errors. I searched it in repository and I changed some methods.
A class called: Bulk_Grpc.Core_2.cpp

Commenting out: extern "C" intptr_t DEFAULT_CALL dlopen(char*, int32_t);
and defining it like: void dlopen(char*, int32_t) {}

Then I got, dlsym:
Commenting out: extern "C" intptr_t DEFAULT_CALL dlsym(intptr_t, char*);
and defining it like: void dlsym(intptr_t, char*) {}

Then I got, dlerror:
search for: extern "C" intptr_t DEFAULT_CALL dlerror();
one method below it, named: Mono_dlerror_mXXXXXXX,
change return type to "NULL";

Now, problem is that, I need to do it every time I am making a build. Do you know how it is possible to provide dlopen, dlsym and dlerror in your Stub file? I tried it, but unfortunately, it did not work for me.

Ok, Problem solved. I just documented under my question in StackOverflow. Thanks again.


[WIP] Allow sync file manager to act on “client reset” file actions

Depends upon https://github.com/realm/realm-object-store/pull/233
I'm hoping for an API to force sync to emit a particular error, which would make writing additional tests possible.
Changes:

SyncConfig now has another field for specifying an optional custom on-disk file path
A 'diverging histories' error now generates a ClientReset error kind
When receiving a 'diverging histories' error, a client reset file action is generated
SyncManager now acts on file reset actions
Added more tests

The only "WIP" aspect of this is figuring out whether bad_client_file_ident and bad_client_version can indicate client reset. @kspangsege, might you know?

@austinzheng
It is on the website
https://realm.io/docs/realm-object-server/#backup
See the section Client Recovery From A Backup
bad_client_file_ident indicates client reset.
bad_client_version does not.

Excellent! Thank you so much.

Closed in favor of https://github.com/realm/realm-object-store/pull/320


Features/list items

I keep getting an "ECONNREFUSED" error when I try to access localhost:3010/items/, but I think that's on my end so I'm going to go ahead and put this here.

I just removed some extraneous console logs. I also made the /items/itemId route return only one item instead of an array on one items.


Search page: make search bar work

Ticket: https://trello.com/c/XZu0KhEB/407-dataset-search-not-working-on-search-page
made the search box on the datasets filters work

Ticket: https://trello.com/c/XZu0KhEB/407-dataset-search-not-working-on-search-page
made the search box on the datasets filters work

In the future though, please consider adding some 'before/after' visual evidence to make it easy for reviewers to understand the context. Putting it on the ticket and mentioning it on the MR is fine:-) Perhaps the Before in the problem statement and the After in a comment.


sx1276 and adxrs610 modules: compilation problem

SWIG: 3.0.8
Target board: Intel Galileo Gen1/Gen2
GCC: 4.8.3
DEBUG: Executing shell function do_compile
-- checking for module 'mraa>=0.8.0'
--   found mraa, version 0.8.1
INFO found mraa version: 0.8.1
INFO - UPM Version v0.4.1
INFO - Target arch is i586
INFO - Package arch is i586
INFO - Node version is 5.2.0
INFO - Node using v8 <IP_ADDRESS>
-- checking for one of the modules 'libopenzwave'
-- Configuring done
-- Generating done
-- Build files have been written to: /sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/build
[  0%] Built target bma220
[  0%] Built target jsupm_bma220
[  1%] Built target grovewater
[  2%] Built target jsupm_grovewater
[  3%] Built target jsupm_stepmotor
[  3%] Built target stepmotor
[  3%] Built target jsupm_wheelencoder
[  4%] Built target wheelencoder
[  4%] Built target groveelectromagnet
[  4%] Built target jsupm_groveelectromagnet
[  4%] Built target ecs1030
[  5%] Built target jsupm_ecs1030
[  5%] Built target jsupm_mq303a
[  5%] Built target mq303a
[  5%] Built target jsupm_xbee
[  5%] Built target xbee
[  5%] Built target ad8232
[  5%] Built target jsupm_ad8232
[  5%] Built target at42qt1070
[  6%] Built target jsupm_at42qt1070
[  6%] Built target jsupm_zfm20
[  6%] Built target zfm20
[  6%] Built target jsupm_m24lr64e
[  7%] Built target m24lr64e
[  8%] Built target jsupm_mlx90614
[  8%] Built target mlx90614
[  8%] Built target grove
[  8%] Built target jsupm_grove
[  8%] Built target jsupm_tsl2561
[  8%] Built target tsl2561
[  9%] Built target jsupm_lol
[  9%] Built target lol
[ 10%] Built target jsupm_max44000
[ 10%] Built target max44000
[ 10%] Built target htu21d
[ 10%] Built target jsupm_htu21d
[ 10%] Built target h3lis331dl
[ 11%] Built target jsupm_h3lis331dl
[ 11%] Built target grovewfs
[ 11%] Built target jsupm_grovewfs
[ 11%] Built target adxl345
[ 11%] Built target jsupm_adxl345
[ 11%] Built target jsupm_pn532
[ 11%] Built target pn532
[ 11%] Built target jsupm_mma7455
[ 11%] Built target mma7455
[ 12%] Built target jsupm_ldt0028
[ 12%] Built target ldt0028
[ 12%] Built target jsupm_l298
[ 12%] Built target l298
[ 13%] Built target jsupm_urm37
[ 13%] Built target urm37
[ 13%] Built target grovevdiv
[ 13%] Built target jsupm_grovevdiv
[ 13%] Built target jsupm_lpd8806
[ 13%] Built target lpd8806
[ 13%] Built target groveeldriver
[ 14%] Built target jsupm_groveeldriver
[ 14%] Built target grovescam
[ 14%] Built target jsupm_grovescam
[ 14%] Built target flex
[ 14%] Built target jsupm_flex
[ 14%] Built target jsupm_pulsensor
[ 14%] Built target pulsensor
[ 14%] Built target grovespeaker
[ 14%] Built target jsupm_grovespeaker
[ 14%] Built target hmtrp
[ 14%] Built target jsupm_hmtrp
[ 15%] Built target jsupm_max31723
[ 15%] Built target max31723
[ 15%] Built target jsupm_servo
[ 15%] Built target servo
[ 15%] Built target jsupm_si114x
[ 16%] Built target si114x
[ 16%] Built target adafruitss
[ 17%] Built target jsupm_adafruitss
[ 17%] Built target jsupm_uln200xa
[ 17%] Built target uln200xa
[ 17%] Built target groveultrasonic
[ 18%] Built target jsupm_groveultrasonic
[ 18%] Built target jsupm_waterlevel
[ 18%] Built target waterlevel
[ 18%] Built target jsupm_micsv89
[ 19%] Built target micsv89
[ 19%] Built target isd1820
[ 19%] Built target jsupm_isd1820
[ 20%] Built target jsupm_ppd42ns
[ 21%] Built target ppd42ns
[ 21%] Built target groveo2
[ 22%] Built target jsupm_groveo2
[ 22%] Built target hm11
[ 22%] Built target jsupm_hm11
[ 22%] Built target jsupm_mic
[ 22%] Built target mic
[ 22%] Built target jsupm_lm35
[ 22%] Built target lm35
[ 22%] Built target cjq4435
[ 23%] Built target jsupm_cjq4435
[ 23%] Built target bmpx8x
[ 24%] Built target jsupm_bmpx8x
[ 25%] Built target jsupm_mpu9150
[ 25%] Built target mpu9150
[ 25%] Building CXX object src/sx1276/CMakeFiles/jsupm_sx1276.dir/jsupm_sx1276JAVASCRIPT_wrap.cxx.o
In file included from /sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/build/src/sx1276/jsupm_sx1276JAVASCRIPT_wrap.cxx:1961:0:
/sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/src/sx1276/./sx1276.h:90:38: error: 'constexpr' needed for in-class initialization of static data member 'const double upm::SX1276::FXOSC_FREQ' of non-integral type [-fpermissive]
static const double FXOSC_FREQ = 32000000.0;
^
/sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/src/sx1276/./sx1276.h:94:38: error: 'constexpr' needed for in-class initialization of static data member 'const double upm::SX1276::FXOSC_STEP' of non-integral type [-fpermissive]
static const double FXOSC_STEP = 61.03515625;
^
src/sx1276/CMakeFiles/jsupm_sx1276.dir/build.make:67: recipe for target 'src/sx1276/CMakeFiles/jsupm_sx1276.dir/jsupm_sx1276JAVASCRIPT_wrap.cxx.o' failed
make[2]: *** [src/sx1276/CMakeFiles/jsupm_sx1276.dir/jsupm_sx1276JAVASCRIPT_wrap.cxx.o] Error 1
CMakeFiles/Makefile2:5259: recipe for target 'src/sx1276/CMakeFiles/jsupm_sx1276.dir/all' failed
make[1]: *** [src/sx1276/CMakeFiles/jsupm_sx1276.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
WARNING: exit code 2 from a shell command.
ERROR: Function failed: do_compile (log file is located at /sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/temp/log.do_compile.18191)
...........
...........
[ 70%] Building CXX object src/adxl335/CMakeFiles/jsupm_adxl335.dir/adxl335.cxx.o
[ 70%] Linking CXX shared module jsupm_adxl335.node
[ 70%] Built target jsupm_adxl335
Scanning dependencies of target grovecollision
[ 70%] Building CXX object src/grovecollision/CMakeFiles/grovecollision.dir/grovecollision.cxx.o
[ 70%] Linking CXX shared library libupm-grovecollision.so
[ 70%] Built target grovecollision
[ 70%] Swig source
Scanning dependencies of target jsupm_grovecollision
[ 70%] Building CXX object src/grovecollision/CMakeFiles/jsupm_grovecollision.dir/jsupm_grovecollisionJAVASCRIPT_wrap.cxx.o
[ 70%] Building CXX object src/grovecollision/CMakeFiles/jsupm_grovecollision.dir/grovecollision.cxx.o
[ 70%] Linking CXX shared module jsupm_grovecollision.node
[ 70%] Built target jsupm_grovecollision
Scanning dependencies of target adxrs610
[ 70%] Building CXX object src/adxrs610/CMakeFiles/adxrs610.dir/adxrs610.cxx.o
[ 70%] Linking CXX shared library libupm-adxrs610.so
[ 70%] Built target adxrs610
[ 70%] Swig source
Scanning dependencies of target jsupm_adxrs610
[ 70%] Building CXX object src/adxrs610/CMakeFiles/jsupm_adxrs610.dir/jsupm_adxrs610JAVASCRIPT_wrap.cxx.o
In file included from /sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/build/src/adxrs610/jsupm_adxrs610JAVASCRIPT_wrap.cxx:1532:0:
/sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/src/adxrs610/./adxrs610.h:164:40: error: 'constexpr' needed for in-class initialization of static data member 'const float upm::ADXRS610::m_degreeCoeff' of non-integral type [-fpermissive]
static const float m_degreeCoeff = 0.006;
^
/sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/src/adxrs610/./adxrs610.h:167:45: error: 'constexpr' needed for in-class initialization of static data member 'const float upm::ADXRS610::m_temperatureCoeff' of non-integral type [-fpermissive]
static const float m_temperatureCoeff = 0.009;
^
/sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/git/src/adxrs610/./adxrs610.h:169:43: error: 'constexpr' needed for in-class initialization of static data member 'const float upm::ADXRS610::m_temperatureNom' of non-integral type [-fpermissive]
static const float m_temperatureNom = 25.0;
^
src/adxrs610/CMakeFiles/jsupm_adxrs610.dir/build.make:67: recipe for target 'src/adxrs610/CMakeFiles/jsupm_adxrs610.dir/jsupm_adxrs610JAVASCRIPT_wrap.cxx.o' failed
make[2]: *** [src/adxrs610/CMakeFiles/jsupm_adxrs610.dir/jsupm_adxrs610JAVASCRIPT_wrap.cxx.o] Error 1
CMakeFiles/Makefile2:11515: recipe for target 'src/adxrs610/CMakeFiles/jsupm_adxrs610.dir/all' failed
make[1]: *** [src/adxrs610/CMakeFiles/jsupm_adxrs610.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2
WARNING: exit code 2 from a shell command.
ERROR: Function failed: do_compile (log file is located at /sde/r1.2.0/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+74691914fb-r0/temp/log.do_compile.19069)
BR,
xbolshe

UPM has compiled successfully after disabling these 2 modules.

Hi, this happens because of the newly added C11 flags for JavaScript bindings. Interesting enough though, I can build all the jsupm modules just fine with GCC 4.8.2 and SWIG 3.0.5. There are several ways to approach this, from changing those variables to macros to enabling C11 for all the languages and switching to constexpr. I will take a look at the options.

See https://github.com/intel-iot-devkit/upm/pull/326

Same problem:
| /sde/r1.2.0/iot_1.2.0_kernel_3.19.8/build/tmp/work/i586-poky-linux/upm/0.4.1+gitAUTOINC+4ff722ed2e-r0/git/src/nlgpio16/./nlgpio16.h:86:35: error: 'constexpr' needed for in-class initialization of static data member 'const float upm::NLGPIO16::ADC_AREF' of non-integral type [-fpermissive]
|      static const float ADC_AREF = 3.3;
|                                    ^

I'm surprised those are the only ones causing issues, here's the full list:
-bash-4.2$ grep -rniI "const float"
otp538u/otp538u.cxx:147:  const float reference_vol= 0.5; // what is this value? (from seeedstudio)
otp538u/otp538u.cxx:148:  const float tempIncrement=10;
adxrs610/adxrs610.h:164:    static const float m_degreeCoeff = 0.006;
adxrs610/adxrs610.h:167:    static const float m_temperatureCoeff = 0.009;
adxrs610/adxrs610.h:169:    static const float m_temperatureNom = 25.0;
h3lis331dl/h3lis331dl.cxx:578:  const float gains = 0.003;    // Seeed magic number?
mg811/mg811.cxx:37:static const float dcGain = 8.5;
mg811/mg811.cxx:79:  static const float log400 = log10f(400);
mg811/mg811.cxx:80:  static const float log1000 = log10f(1000);
nlgpio16/nlgpio16.h:86:    static const float ADC_AREF = 3.3;
-bash-4.2$ grep -rniI "const double"
sx1276/sx1276.h:90:    static const double FXOSC_FREQ = 32000000.0;
sx1276/sx1276.h:94:    static const double FXOSC_STEP = 61.03515625;

I'm tempted to fix by changing to constexpr where names are lowercase and #defines where caps. Should work with GCC 4.5 or newer which I think is reasonable but I still have to check.

Only constants like float and double defined in a namespace cause the issue.
No need to do with functions like log400 = log10f(400) or constants outside a namespace like cGain = 8.5.

The fix was merged, thanks a lot for providing it.


Bandwidth Tester (single threaded, TCP)

Measure the maximum bandwidth between two servers.
Write a program in sockets/bandwidth/ that tries to send as much data as possible between the client and server.  Use TCP and a single thread to start and only send data in one direction (from client to server).

Will take this with @nks5295 and @atryus


Feature/angular rc5 q free

The barebones.
It builds and I know most of it appears to be working in our demo app.
Nothing is unit tested. The site built in the repo doesn't build. Unit tests are skipped in build.
Checkout locally and build:
ng2-material $ checkout  angular_rc5_q-free && grunt build-npm

Install, test and run in app with:
my-app $ npm uninstall ng2-material && npm install <path to local copy of ng2-material>\dist && npm test && npm start

ToDo
Not Tested in example app:

[ ] Backdrop (not removed because I think it does more than what angular/material2 has
[ ] Data Table
[ ] Divider
[ ] Validators
[ ] Pagination
[ ] Peekaboo
[ ] Subheader

Testing

[ ] Restore unit test compile
[ ] Remove windows dev config

Looks good!
I am bummed my column sort directive + service are not in this :frowning: I guess we could merge them into our fork for fun? :stuck_out_tongue:


[CLOSED] Add published at to DrugSafetyUpdates

 Issue by Themitchell
Thursday 23 October 2014 at 15:02 GMT
Originally opened as https://github.com/alphagov/specialist-publisher/pull/289

This pull request adds functionality to drug safety updates in order to automatically set published_at when publish! is performed or remove the published at when a document is withdrawn.
Trello ticket: https://trello.com/c/ZW0i6nya/362-add-first-published-date-to-the-dsu-finder-3-1

Themitchell included the following code: https://github.com/alphagov/specialist-publisher/pull/289/commits

 Comment by james
Thursday 23 October 2014 at 15:29 GMT

@Themitchell Just having a quick look, you define features/step_definitions/timecop_steps.rb but don't seem to use it anywhere, or am I missing something?

 Comment by Themitchell
Thursday 23 October 2014 at 15:38 GMT

My bad, that should have been deleted. Ill remove now

 Comment by Themitchell
Thursday 23 October 2014 at 15:39 GMT

fixed!

 Comment by james
Thursday 23 October 2014 at 15:50 GMT

As mentioned before, the fact that there is no explicit feature test that says "it sets the published at datetime" concerns me. I think I would have preferred to have that time freeze Given, and a separate Then to check the published_at field rather than it be implicit in check_document_is_published, but I'm still getting my head around everything, so this is more of a question than an opinion, and something we can chat about when you're next in the office.

 Comment by kalleth
Thursday 23 October 2014 at 17:39 GMT

Also https://github.com/alphagov/specialist-frontend/pull/55 refers to published_date

 Comment by kalleth
Thursday 23 October 2014 at 17:36 GMT

This allows specialist-publisher to modify the published_at extra field, but https://github.com/alphagov/finder-api/pull/68 and https://github.com/alphagov/rummager/pull/301 and https://github.com/alphagov/finder-frontend/pull/98 refer to published_date.
We should make these consistent before merging.

 Comment by kalleth
Monday 27 October 2014 at 15:24 GMT

Not sure this is correct:

 Comment by kalleth
Thursday 23 October 2014 at 17:46 GMT

Having looked into this further, we already set the published_at piece of extra data at publish time for specialist documents -- but we set it in specialist_document_database_exporter.rb to the document's updated_at timestamp.
This is then used on specialist-frontend (see: https://github.com/alphagov/specialist-frontend/pull/40) as a Specialist Document's "Updated at:" field. This was to fulfil this trello ticket.
We should decide which of these approaches we want to follow before we merge these pull requests, as well as being consistent in which field we use on each.
Edit: We definitely can't stick with the previous approach as that won't allow them to be searchable (as requested on the above trello ticket), but the published_at extra field referenced in this commit would be overwritten on the RenderedSpecialistDocument because of the work linked above, which is a problem. It may be that we can change this to be published_date and switch back to using updated_at for the Updated at field.

 Comment by kalleth
Monday 27 October 2014 at 15:25 GMT

Published at doesn't display, I assume because specialist-frontend uses published_date, as commented in the other PR's. I wasn't just imagining it, yay! :)

Going to fix this myself now.

 Comment by kalleth
Monday 27 October 2014 at 18:54 GMT

I've fixed the display of the date within specialist-publisher (db86fa2) but i'm still unsure as to how this is going to interact with https://github.com/alphagov/specialist-frontend/blob/master/app/presenters/document_presenter.rb. Something to think about tomorrow.

 Comment by kalleth
Tuesday 28 October 2014 at 11:17 GMT

I've addressed the conflict above by renaming the field we use to first_published_at here (as that's really what it is). There should now be no conflicts between this field and other published_at usage across the applications.