Kafka auto create topic - does not work with kafka-node

I am using kafka-node for my kafka client and I have Kafka servers with auto.create.topics.enable set to true. So without any topic creation logic, if I try to consume messages from a topic which do not exists, the topic should be created right ? It does not happen and still I get the topic not found error.

It's likely a consumer doesn't work but I do know that producing a message to a topic that doesn't exist will work since kafka will just create that topic. Just be aware you will get an error response on the first send to that topic.


Postgres Reverse change missing comma

I noticed as part of using the new ent versioned migrations that all of the down scripts with column modifications were not adding commas in correctly
Up generates correctly e.g.
ALTER TABLE "subscriptions" ALTER COLUMN "created_at" SET DEFAULT CURRENT_TIMESTAMP, ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;

Down has missing commas between each column change
ALTER TABLE "subscriptions" ALTER COLUMN "created_at" DROP DEFAULT ALTER COLUMN "updated_at" DROP DEFAULT;

Closed with #668
Thanks for the contribution 🙏


Need an e2e test for nydus integrated with p2p

We should add an e2e test for nydus integrated with p2p, which includes the following cases:

p2p is the only mirror and does not work, fall back to the original registry.
p2p is the only mirror and works, all is well.
p2p is not the only mirror and does not work, try the next mirror.
p2p is the only mirror and auth_through is true, unauthorized requests are sent to the p2p server.
A normal registry is the only mirror(auth_through must be true).

Thanks for considering this. Frankly speaking, the test for it is fragile.

Currently, we do have some tests in https://github.com/dragonflyoss/Dragonfly2/actions/workflows/nydus-e2e.yml, but adding more tests would be good.


New version: Adobe.Acrobat.Reader.32-bit version 23.008.20421

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

This manifest contains a term that is blocked:

LicenseUrl: https://www.adobe.com/content/dam/cc/en/legal/licenses-terms/pdf/Reader-EULA-en_US-20181207.pdf CopyrightUrl: https://www.adobe.com/content/dam/cc/en/legal/licenses-terms/pdf/Reader-EULA-en_US-20181207.pdf

(Automated response - build 513.)

This manifest contains a term that is blocked:

LicenseUrl: https://www.adobe.com/content/dam/cc/en/legal/licenses-terms/pdf/Reader-EULA-en_US-20181207.pdf CopyrightUrl: https://www.adobe.com/content/dam/cc/en/legal/licenses-terms/pdf/Reader-EULA-en_US-20181207.pdf

(Automated response - build 513.)

I'm working on an exclusion list, to not catch these.


As a seller in the field, I want to look at my sales forecasts so I can perform better forecast accuracy.

As a seller in the field, I want to look at my sales forecasts so I can perform better forecast accuracy.
[] Mobile
[] App
[] Daily Update


GUI with tasks column

Add tasks column to GUI

Codecov Report

Merging #87 into master will increase coverage by 2.31%.
The diff coverage is 20.00%.

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


make controlled gate params return base gate params

Summary
This makes the controlled gate params reference it's base_gate's params so that if changes are made to the parameters of the base_gate, they are reflected in the controlled gate.
fixes #3801
Details and comments

It's not possible to define a controlled gate without base_gate with this, e.g.
c  = ControlledGate('c', 1, [])

raises
CircuitError: 'Controlled gate does not define base gate for extracting params'

coming from the parameter setter. Since base_gate is optional, I think this should work. I think the parameter setter/getter could be updated to keep a list of parameters, if no base gate is defined, that would be the ideal behaviour. Otherwise, parameters can only be managed with existing base.

@Cryoris It seemed that we were moving to requiring a base_gate for controlled gates. I think the transpiler may expect this. @ajavadia is that your thought?

Yes a controlled gate only makes sense to me as a base plus some control wires. The base can be opaque, but it has to have a base in my opinion. That’s how you define a controlled op, as |0><0| I + |1><1| U. This is why I think the init signature also has to change.

On Jun 4, 2020, at 2:09 PM, ewinston<EMAIL_ADDRESS>wrote:
@Cryoris It seemed that we were moving to requiring a base_gate for controlled gates. I think the transpiler may expect this. @ajavadia is that your thought?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Okay because with @1ucian0 we wanted to add the C3SqrtX gate for decomposition of multi-controlled X gates but don't have a SqrtX gate yet. What would the base_gate have to satisfy? E.g. is a name and set of parameters sufficient? Or does it need to be an actual class with a decomposition?

Okay because with @1ucian0 we wanted to add the C3SqrtX gate for decomposition of multi-controlled X gates but don't have a SqrtX gate yet.

We need to have sqrt(X) as a gate! It is actually going to be part of the new basis reported by backends (experimentalists call it X90, it is the native gate that is tuned up).

What would the base_gate have to satisfy? E.g. is a name and set of parameters sufficient? Or does it need to be an actual class with a decomposition?

I think we should be able to do controlled-opaque gates (i.e. ones that are defined by a shape and a name). Some backend might know how to support it. But my point is any controlled gate should be defined by a base and some control wires. (But SqrtX should not be opaque.)

@ajavadia Should the init signature be changed in this PR to require a base gate instance or could it go in a separate one?

Yeah follow up sounds good!

On Jun 5, 2020, at 12:49 PM, ewinston<EMAIL_ADDRESS>wrote:
@ajavadia Should the init signature be changed in this PR to require a base gate instance or could it go in a separate one?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@ajavadia @Cryoris Is this ready to be merged? There is bug with params of UnitaryGate that this also resolves where a controlled unitary's matrix appears as a list of row vectors instead of a matrix. This is affecting another PR.

@ewinston there are some merge conflicts

I double checked to make sure Aqua runs with these changes, if you fix the conflicts I think we can merge


Animations broke

Animations broke
Graphing example @ 43f63ee

Graphing example @ 9a655a6 (same for d345806)

Console:

This commit fixed the bug.


Executing genrule @nccl_archive//:device_code_sm_61 failed (Exit 1): bash failed: error executing command

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: No
TensorFlow installed from (source or binary): Source
TensorFlow version (use command below): 1.13
Python version: 3.7
Bazel version (if compiling from source): 0.193
GCC/Compiler version (if compiling from source): 5.5
CUDA/cuDNN version: 10.0/7
GPU model and memory: GTX 1080Ti
Exact command to reproduce: bazel build --spawn_strategy=standalone --verbose_failures --config=cuda --copt="-fPIC" --copt="-DNDEBUG" --local_resources 11048,2.0,2.0 -c dbg --copt -g //tensorflow/tools/pip_package:build_pip_package

Describe the problem
When I ran the upper command, I got the error as follows: nvlink fatal   : No input files specified; use option --help for more information
Hope someone could help me.
Source code / logs
ERROR: /home/yunxiang/.cache/bazel/_bazel_yunxiang/6e00d14c3b41ff4ee29863f700329782/external/nccl_archive/BUILD.bazel:139:1: Executing genrule @nccl_archive//:device_code_sm_61 failed (Exit 1): bash failed: error executing command
(cd /home/yunxiang/.cache/bazel/_bazel_yunxiang/6e00d14c3b41ff4ee29863f700329782/execroot/org_tensorflow &&
exec env -
CUDA_TOOLKIT_PATH=/usr/local/cuda
CUDNN_INSTALL_PATH=/usr/lib/x86_64-linux-gnu
GCC_HOST_COMPILER_PATH=/usr/bin/gcc
LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/lib64:
PATH=/home/yunxiang/.local/bin:/usr/local/python3.7/bin:/usr/local/cuda-10.0/bin:/home/yunxiang/bin:/home/yunxiang/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PYTHON_BIN_PATH=/usr/bin/python
PYTHON_LIB_PATH=/usr/local/python3.7/lib/python3.7/site-packages
TF_CUDA_CLANG=0
TF_CUDA_COMPUTE_CAPABILITIES=6.1
TF_CUDA_VERSION=10.0
TF_CUDNN_VERSION=7
TF_NCCL_VERSION=''
TF_NEED_CUDA=1
TF_NEED_OPENCL_SYCL=0
TF_NEED_ROCM=0
/bin/bash -c 'source external/bazel_tools/tools/genrule/genrule-setup.sh; external/local_config_nccl/nvlink --cpu-arch=X86_64 --arch=sm_61  --register-link-binaries=bazel-out/k8-dbg/genfiles/external/nccl_archive/device_code_sm_61.h --output-file=bazel-out/k8-dbg/genfiles/external/nccl_archive/device_code_sm_61.cubin')
nvlink fatal   : No input files specified; use option --help for more information
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 6494.760s, Critical Path: 459.04s, Remote (0.00% of the time): [queue: 0.00%, setup: 0.00%, process: 0.00%]
INFO: 13376 processes: 13376 local.

I finally found the reason of this problem.
I installed CUDA 10.0 in /usr/local/cuda-10.0, but put the cuDNN related files in /usr/local/cuda. The cuda folder is a symlink to cuda-10.0. In the ~/.bashrc file, the LD_LIBRARY_PATH is set as /usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH. When building the TensorFlow, the cuDNN related files are inaccessible.
To solve the problem, I copy the cuDNN related files to /usr/local/cuda-10.0 as well, and also add /usr/local/cuda/lib64 to LD_LIBRARY_PATH in ~/.bashrc file. Then source ~/.bashrc could solve the problem.
Hope this could help someone who may encounter this error later.

I downgrade the CUDA, cuDNN, TensorFlow as follows, and able to build it finally.
TensorFlow version (use command below): 1.4
Python version: 3.5
Bazel version (if compiling from source): 0.5.4
CUDA/cuDNN version: 8/6


Unable to Assign Type that Begins With '$$'

TypeScript in Visual Studio is not allowing a type assignment if the the type begins with '$'. For example:
namespace $$ {
export enum CUSTOMER_TYPE {
domestic = 0,
international = 1
}
}
let custType: $$.CUSTOMER_TYPE // <------- CAUSES TYPESCRIPT ERROR IN VISUAL STUDIO.
The '$' is a valid character.

What exactly is the error?
Which version of Visual Studio and TypeScript gives you that error?I don't get any error from TS 1.7 nor TS 1.8 in VS 2015.

Getting "cannot find namespace '$$'" in VS 2015 with TS 1.8. The error only
occurs when referencing another namespace (in another file).
This works:
namespace $$ {

    export enum VIEW_TYPE {

        STACKED = 0,

        TABBED

    }

}

let test: $$.VIEW_TYPE;

However, if namespace $$ is another namespace/file I get that error.
On Sun, Feb 14, 2016 at 2:04 PM, Arnav Singh<EMAIL_ADDRESS>wrote:

What exactly is the error?
Which version of Visual Studio and TypeScript gives you that error?I don't
get any error from TS 1.7 nor TS 1.8 in VS 2015.
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript/issues/7080#issuecomment-183952315
.

--
Lee Mellinger
President & CEO
InfiniSuite, LLC
www.infinisuite.com
Mobile: 1.734.531.8702
Skype: leemellinger
LinkedIn: linkedin.com/in/leemellinger
https://www.linkedin.com/in/leemellinger
Business Solutions for Cloud 2.0
NOTICE: The information contained in this e-mail, and in any accompanying
documents, may constitute confidential and/or legally privileged
information. The information is intended only for use by the designated
recipient. If you are not the intended recipient (or responsible for the
delivery of the message to the intended recipient), you are hereby notified
that any dissemination, distribution, copying, or other use of, or taking
of any action in reliance on this e-mail is strictly prohibited. If you
have received this e-mail communication in error, please notify the sender
immediately and delete the message from your system.

Here's a better example that demonstrates the problem in one file:
var $$$ = test;
namespace test {
export enum CUSTOMER_TYPE {

    reseller = 0,

    enduser = 1

}

// THIS WORKS

let custType1: CUSTOMER_TYPE;

// THIS DOES NOT WORK

let custType2: $$$.CUSTOMER_TYPE;

}
Here's a screen shot:
[image: Inline image 1]
On Sun, Feb 14, 2016 at 2:27 PM, Lee Mellinger <
<EMAIL_ADDRESS>wrote:

Getting "cannot find namespace '$$'" in VS 2015 with TS 1.8. The error
only occurs when referencing another namespace (in another file).
This works:
namespace $$ {

    export enum VIEW_TYPE {

        STACKED = 0,

        TABBED

    }

}

let test: $$.VIEW_TYPE;

However, if namespace $$ is another namespace/file I get that error.
On Sun, Feb 14, 2016 at 2:04 PM, Arnav Singh<EMAIL_ADDRESS>wrote:

What exactly is the error?
Which version of Visual Studio and TypeScript gives you that error?I
don't get any error from TS 1.7 nor TS 1.8 in VS 2015.
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript/issues/7080#issuecomment-183952315
.

--
Lee Mellinger
President & CEO
InfiniSuite, LLC
www.infinisuite.com
Mobile: 1.734.531.8702
Skype: leemellinger
LinkedIn: linkedin.com/in/leemellinger
https://www.linkedin.com/in/leemellinger
Business Solutions for Cloud 2.0
NOTICE: The information contained in this e-mail, and in any accompanying
documents, may constitute confidential and/or legally privileged
information. The information is intended only for use by the designated
recipient. If you are not the intended recipient (or responsible for the
delivery of the message to the intended recipient), you are hereby notified
that any dissemination, distribution, copying, or other use of, or taking
of any action in reliance on this e-mail is strictly prohibited. If you
have received this e-mail communication in error, please notify the sender
immediately and delete the message from your system.

--
Lee Mellinger
President & CEO
InfiniSuite, LLC
www.infinisuite.com
Mobile: 1.734.531.8702
Skype: leemellinger
LinkedIn: linkedin.com/in/leemellinger
https://www.linkedin.com/in/leemellinger
Business Solutions for Cloud 2.0
NOTICE: The information contained in this e-mail, and in any accompanying
documents, may constitute confidential and/or legally privileged
information. The information is intended only for use by the designated
recipient. If you are not the intended recipient (or responsible for the
delivery of the message to the intended recipient), you are hereby notified
that any dissemination, distribution, copying, or other use of, or taking
of any action in reliance on this e-mail is strictly prohibited. If you
have received this e-mail communication in error, please notify the sender
immediately and delete the message from your system.

That has nothing to do with $ in the namespace name.
namespace foo {
	export enum A { a };
}

var bar = foo;

var x = bar.A.a; // OK - bar.A is available in value position
var y: foo.A; // OK - foo.A is available in type position
var z: bar.A; // Error - Cannot find namespace bar - bar.A is not available in type position

This may or may not be a bug, but I'm also not sure it has anything to do with your original question, since your original question does not have namespaces being assigned with var.

Your right. It looks like you've replicated the real issue.  Thx.
On Sun, Feb 14, 2016 at 5:29 PM, Arnav Singh<EMAIL_ADDRESS>wrote:

That has nothing to do with $ in the namespace name.
namespace foo {
export enum A { a };
}
var bar = foo;
var x = bar.A.a; // OK - bar.A is available in value positionvar y: foo.A; // OK - foo.A is available in type positionvar z: bar.A; // Error - Cannot find namespace bar - bar.A is not available in type position
This may or may not be a bug, but I'm also not sure it has anything to do
with your original question, since your original question does not have
namespaces being assigned with var.
—
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript/issues/7080#issuecomment-183993263
.

--
Lee Mellinger
President & CEO
InfiniSuite, LLC
www.infinisuite.com
Mobile: 1.734.531.8702
Skype: leemellinger
LinkedIn: linkedin.com/in/leemellinger
https://www.linkedin.com/in/leemellinger
Business Solutions for Cloud 2.0
NOTICE: The information contained in this e-mail, and in any accompanying
documents, may constitute confidential and/or legally privileged
information. The information is intended only for use by the designated
recipient. If you are not the intended recipient (or responsible for the
delivery of the message to the intended recipient), you are hereby notified
that any dissemination, distribution, copying, or other use of, or taking
of any action in reliance on this e-mail is strictly prohibited. If you
have received this e-mail communication in error, please notify the sender
immediately and delete the message from your system.

this is by design - variable declaration captures only value meaning of the merged entity. If you need to get all meanings - use import
namespace foo {
    export enum A { a };
}

var bar = foo;
var x = bar.A.a; // OK - bar.A is available in value position
var y: foo.A; // OK - foo.A is available in type position
var z: bar.A; // Error - Cannot find namespace bar - bar.A is not available in type position

import bar1 = foo;
var x = bar1.A.a; // OK - bar1.A is available in value position
var y: foo.A; // OK - foo.A is available in type position
var z: bar1.A; // OK - bar1.A is not available in type position


Workaround for Issue #273

Hello
I investigated about server.join(); from the JettyServer.start() and tomcat.getServer().await(); from the TomcatServer.start()
In both cases the methods call Thread.join() and block the main thread of JUnit until the web server thread stops and release the main thread.
I searched how to make JUnit not work on the main thread, but I found nothing that would serve
I tried this and this
We must not comment server.join(); or tomcat.getServer().await(); because as AlexR says:

join() is blocking until server is ready. It behaves like Thread.join() and indeed calls join() of Jetty's thread pool. Everything works without this because jetty starts very quickly. However if your application is heavy enough the start might take some time. Call of join() guarantees that after it the server is indeed ready.

My final solution it's a workaround
JettyServer.start()
if (RuntimeMode.getCurrent() != RuntimeMode.TEST) {
    server.join();
}

TomcatServer.start()
if (RuntimeMode.getCurrent() != RuntimeMode.TEST) {
    tomcat.getServer().await();
}

According to many examples I saw on StackOverflow, in the case of JUnit you have to avoid server.join(); and as Joakim says is not needed for unit testing.
But I'm no expert in JUnit, I do not know what consequences might have

Coverage decreased (-0.004%) to 11.019% when pulling c102fc69216511f4ead05881368f02d0cad1e322 on barrantesgerman:master into 6c6d0d739084d93c3bc2392b8c6e523be0819293 on decebals:master.

@barrantesgerman Congratulation for your explanation! It's very documented. I see a little modification.
I prefer to use !pippoSettings.isTest() instead of RuntimeMode.getCurrent() != RuntimeMode.TEST. Please make the modification and I will merge this PR.
Thanks!

Coverage decreased (-0.004%) to 11.019% when pulling e870246124a8d9edda6ba59eca5bd31040248395 on barrantesgerman:master into 6c6d0d739084d93c3bc2392b8c6e523be0819293 on decebals:master.

Coverage decreased (-0.004%) to 11.019% when pulling e870246124a8d9edda6ba59eca5bd31040248395 on barrantesgerman:master into 6c6d0d739084d93c3bc2392b8c6e523be0819293 on decebals:master.

Thanks!


Plugin doesn't create a tsd.d.ts file

Plugin doesn't create a tsd.d.ts file in typings director

Still reproducing.


screen off but keep mirroring option (ctrl+o) uses as much battery as screen on

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: windows 10
scrcpy version: 1.14
installation method: windows release
device model: xiaomi mi mix 2s
Android version: 10

Describe the bug

the battery usage with the screen off but keep mirroring option (ctrl+o) uses as much battery as screen on. when i use the ctrl+p option to turn off the screen though, the battery usage is normal as if the screen is off (but then the problem is i cant see the screen anymore on scrcpy). is this supposed to happen?

It's probably device-dependent.
It's expected that it consumes more battery than when the device is off (where there is no "running app"). The screen should not consume battery though (if it's really off and not backlighted), so it should consume a bit less.
Anyway, I'm closing, since scrcpy just requests the device to turn its screen off. How it impacts the battery is out of the control of scrcpy.


Support for minted reward token

Close #229

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

13 of 20 (65.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 60.987%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core/src/main.rs
0
1
0.0%

core/src/pool_commands.rs
0
1
0.0%

core/src/box_kind/oracle_box.rs
0
2
0.0%

core/src/cli_commands/import_pool_update.rs
0
3
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
2040

Relevant Lines:
3345

💛  - Coveralls


Fix for #469 and #607

Closes #469 and #607
What has been done to verify that this works as intended?

Integration Test
Manually tested in Excel and PowerBI

Before submitting this PR, please make sure you have:

[ ] run make test-full and confirmed all checks still pass OR confirm CircleCI build passes
[ ] verified that any code from external sources are properly credited in comments

I think we should consider this as a candidate for a point release. Not significant enough to trigger one, I think, but if we have another reason to release it would be good for this to be in it.


PySide6.1.0  error(Reason: image not found, macos10.14.6)

Nuitka version, full Python version and Platform (Windows, OSX, Linux ...)
<IP_ADDRESS>
Python: 3.7.4 (v3.7.4:e09359112e, Jul  8 2019, 14:54:52)
Executable: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3
OS: Darwin
Arch: x86_64

How did you install Nuitka and Python

pip3 install Nuitka

I wroten this code (with pyside6 6.1.0):

`
import sys
from PySide6 import QtCore, QtGui, QtWidgets
if name == 'main':
app = QtWidgets.QApplication(sys.argv)
print("123")
`
sudo nuitka3 --standalone --show-progress --show-memory --plugin-enable=pyside6 --output-dir=open_quk quk.py

The following error was encountered:

Traceback (most recent call last):
File "/Users/lizh/Desktop/daima/open_quk/quk.dist/quk.py", line 2, in
ImportError: dlopen(/Users/lizh/Desktop/daima/open_quk/quk.dist/PySide6/QtCore.so, 2): Library not loaded: @rpath/QtQml.framework/Versions/A/QtQml
Referenced from: /Users/lizh/Desktop/daima/open_quk/quk.dist/libpyside6.abi3.6.1.dylib
Reason: image not found
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

You are confusing me here.

Yes, it might be a duplicate, if you want to help, in nuitka.freezer.Standalone there is probably not much to do, to make it handle @rpath/ better. Otherwise you will have to wait. And then make sure to use 6.1.1 which is already released and has an important fix for Nuitka.

Thank you, I'll follow your lead and try to find out.

Hoping for a PR there :)

I looked at the code today and found that @rpath may have been called in .so, which is why nuitka can't detect it. I would like to ask if it is possible to specify @rpath as @executable_path when the program is running.

Are you saying it's not in otool output and cannot be changed? Because if it's not things will be very ugly for us.

Thank you for your reply. I solved the above problem through the install_name_tool function.

Well, yes, and Nuitka does that in said code, but somehow fails in this instance, that's what I asked you to debug and correct.

This should be resolved for a long time already, PySide6 on macOS works like a charm.


Improved codebase to best practices

Hi guys, I use your tool a lot and work for a big crytocurrency company called FunFair who use it in house. I pulled your repo to start extending some of the features but seen some files had not been updated in a year or so and some practices could be improved on.
My changes

Make codebase more strongly typed following ts best practices
Only imported what we need per file instead of importing the entire module from packages
Refactored the codebase to follow best practices
Renamed file names to be all lowercase with '-' between words, as we know linux is case sensitive and windows is not, having the files in camelcase makes it easier for windows developers to make a mistake when importing the module. This would work on windows but not on a linux computer.
Additional changes (see pull request)

Anything you think I should not of changed please drop a comment and we can discuss.
Cheers
Josh

Thanks for this :). Nice refactoring, this is a rather large pull, it would have been easier to raise issues and do one at a time and discuss.

What I see is that you are using different linter than I am. This can be discussed. Also regarding naming of the files I work on Windows and Mac that is not an issue, but that is the current pattern, same as other extensions.

Yeah maybe, sorry about that I just got carried away this morning. Take you time and run through it. In theory no functionality has changed all that is happened is best practices has been put in place.

Yes Mac is insensitive so it would not matter in that regard but Linux file system is case sensitive so this is while the likes of angular etc always put there files all lowercase, to avoid issues on different operating systems.

No worries, I know the feeling.

What linter are you using? I was thinking about moving to using Resharper for Typescript.

After thinking I think this deserves further thoughts, I do love enforcement of only using the "methods" required not the whole library. This just inherets the standard extension initial templates (and yes the extension was created on the launch of vscode extensions, so things have evolved since).
For spacing, const vs let and other stuff like that I am not opinionated at all (as I don't use Typescript on a daily basis, I use .net hence Nethereum :) ).
But if the rules are going to change I am more interested to match vscode rules, and linter rules. (vscode GitHub project). Also like I said a code formatter like Resharper it is rather handy to do refactor everything in one go.

Ha ha actually you read my mind, I did not see the previous response :) :). Yes linter rules, match vscode ones will be the best, and tslint as it is used here.
Totally Resharper for Typescript you have to pay for it, but handy to reformat quickly.

Actually the current rules are more strict than vscode or vscode Golang

File naming is like this https://github.com/Microsoft/vscode/tree/master/src/vs/code/electron-main

Also the inclusion of vscode is standard, also it makes it easier to understand where the types come from.
See Golang https://github.com/Microsoft/vscode-go/blob/master/src/goMain.ts

Const vs let yes that is cool.

So in general..
Keep the tslint rules, they are strict enough now, you can suggest any changes. There are changes in spacing that break the rules.
Vscode can be imported as it easier to understand and main extensions use it.
No file name changes, following vscode and vscode golang format. (Already following that format, that is the reason, but as usual things might have changed :) )
Const instead of let, yep.
Need to do more checks...

More fs , path and general libraries also not use specific imports, vscode follows that pattern. So only specic imports for all local. (It seems to be the pattern, I believe I followed that, with a couple of exceptions). So the rule only specific imports for local as a general rule.

Ok no worries
So i will revert:

File name changes
.... anything else.

If you can make a list and comment on code snippets I can revert these and make sure the PR is what you guys are after.

Actually it becomes unreadable in some scenarios, you want to know what you are actually referencing  for general context.

BTW Many thanks again!

Well this is a electron application, so there is not really a major issue. Microsoft does it in vscode and golang and yes it is so much readable. I followed those patterns, hence I checked :). But also review yours just in case it made more sense.
Another point is those are the point of reference for extensiond, actually golang has diverted slightly which is a pain from the docs, so new features should be easily implemented. IE I don't want anybody contributing to refactor the vscode out.

As an example https://github.com/Microsoft/vscode/blob/master/src/vs/code/node/cliProcessMain.ts#L9

And another example https://github.com/Microsoft/vscode-go/blob/master/src/goMain.ts#L8

Ok .. I have some time tomorrow morning so i will reset my changes on my fork and remove the stuff we discussed above! If that means another pull request (not sure if it resolve itself when I do the changes on the branch) then I will create one.
Got a few things I want to extend and happy to start looking at some of these issues which have been raised.
Thanks for a good discussion!

Btw are you creating an ethereum package manager? Is that same as the one of the foundation/ pipermerrians?

Yes I am going to get it completed by end of month (once I have time). It is going to be fully featured, logging in, updating. Kinda like NPM.
There a few which try to do this but do not do it well, I aim to make a really useful CLI, API and UI to install and share these solidity packages.
Happy for some help you want to be involved?

Cool probably easier to just create new pulls all together.
1 for const / let.
2 for local reference using *.  Actually if they become unreadable a Service will be better.
And yeah thank you on helping on issues, go to Gitter and we can chat before hand. I don't want to waste any of your time. I feel bad enough already.

On the epm, check on the foundation work. It will be great you coordinate with them. IMHO

You got any links for foundation work codebase and what they do already.
Do you want me to create different pull requests for different changes in this repo?
Do not feel bad I am happy to change to what you feel is best!

Thanks for this, I am going to get all the logic written by end of play August then get in contact with them to see if they want this package under there namespace.
I have a solid idea in how this needs to work, especially getting feedback from FunFair itself 👍! Like I said welcome for help, have a look at the repo in 2 weeks. Feedback will be welcome.
Anything which you think I should include?

The truth is that I have just found out about FunFair I assume you are in contact with @Arachnid about this as he is the advisor of FunFair and also he is part of the Foundation.
Like I said, my only issue with this is that there is already a package management system so this  deserves some level of conversation, as you will want Truffle, Populous, Zeppelin, Dapple and even Nethererum or this vs code solidity extension (and obviously other extensions to use something like this) hence there are ERCs etc.
Mainly I don't want you to encounter another "Standard" issue like this one, when there is already another standard that is used widely, already developed. So get feedback as early as possible for the community, I would start by contacting the people in that ERC and Nick if you haven't already.
By the way thanks again, I look forward to your next fresh pull with the "const / let", (if you have time, there is no rush). But I would appreciate a fresh fork / pull, so we don't clutter the history.
Thanks!!


Feature: UI - Visual hierarchy

In the expand panel, add a button that pops a visual overlay of a server hostname and all it's file shares
Maybe allow users to expand it and see each file shares sensitive files

Completed.


run_deepbench.sh crashes out on KNL

the run command that I use - run_deepbench.sh 1000 1 f32 A L 0
The WU kernels crashes even for the first case
running only FP ( run_deepbench.sh 1000 1 f32 F L 0 ) -

correctness fails for PARAMS: W:7  H:7  N:16  C:832  K:256  R:1  S:1  P:7  Q:7  STRIDE:1
crash with PARAMS: W:7  H:7  N:16  C:832  K:128  R:5  S:5  P:7  Q:7  STRIDE:1

Meanwhile everything was passing on all supported architectures incl. Winograd. However, our most recently merged AVX-512 perf. improvements regressed with Winograd (but this is unrelated and a separate issue).


calculator: nicer Android adaptation with API 21 + variant

Improve the look of the Android variant for the calculator using style resources from the AOSP calculator. Also intro another variant for Android API 21+ which changes the font and deactivates the virtual keyboard.
This should also fix the calculator missing from our f-droid repository. However, I don't know yet how f-droid handles more than one APK per package...
For an idea of the result, you can take a look at the 6 different resulting calculators alongside the latest AOSP calculator: http://xymus.net/pub/calcs.pdf

+1

+1

why not API 22?


Feature/activity rings

Description
Implements dashboard activity rings and a number of UI changes throughout the app. Adds blueprint for enabling logging food with new REST backend.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)

Change Status

[x] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] There are no merge conflicts

 RC 11.4 - Dashboard UI & Activity Rings


Create function to retrieve fitbit data and store it in a dataframe for participants 2 to 9

I will pick up this issue :)


[FeatureRequest] add max&avg info to response summary chart

Which module is your feature request related to?
Web/Collector
Describe the solution you'd like
We may add two columns/CFs for mapStatistic(Caller/Callee/Response) HBase table , one for total time, one for max response time.

Just made a PR #7115 for this one.


set correct project when using from_service_account_json

When instantiating with bigquery.Client.from_service_account_json('...') the project field in the client should be set to the project_id defined in the service account JSON.
Right now it is still the one from env.

Thanks for reporting @kelvinabrokwa!
I was able to reproduce the issue with
$ export GCLOUD_PROJECT=testing-project

>>> from gcloud import bigquery
>>> import os
>>> os.getenv('GCLOUD_PROJECT')
'testing-project'
>>> bc = bigquery.Client.from_service_account_json('creds.json')
>>> bc.project
u'testing-project'

I'll try and figure out what's up.

@daspecster thanks for the quick response!

The credentials check and project check are completely decoupled. The from_service_account_* helpers pass an explicit credentials instance, hence they bypass the check. We may want to also pass an explicit project.

@dhermes, what do you think about just adding/calling a helper function to extract the project id from the file at this point?
https://github.com/GoogleCloudPlatform/gcloud-python/blob/master/gcloud/client.py#L60

This is actually tricky because a service account can have access to multiple different projects (ie, you can go into another project and add that service account to the project so it has access over there).
If we were to automagically pick up the project ID from the key file (JSON), how would people specify "I'm using a service account from project A to talk to resources in project B" ?

True @jgeewax, similar issue in #1827 right?

Yea I'd say these are related.

@jgeewax good point. I actually just ran into that today.
The way I'm looking at it now, the project_id in the JSON key file is only an indicator of where the service account lives, not necessarily which project it can talk to.
With that in mind, I can definitely imagine a scenario in which someone sets their env var purposefully to the project they want and then run into a bug where the library is using the one from the key file.
Its more a question of developer experience at this point.

I could be wrong, but this might be one of those special situations where we should try to separate a client from credentials, as well as loading a client from a service account from loading credentials from a service account.
For example, when I load a Client from a service account, I'm expecting that all data in the service account is used to create a client. I think you're right in saying this should pull a project ID if that's there.
On the other hand, if I were to create a client and set the credentials to ones from a service account, I'm expecting that it only reads in the credential, and pulls the project based on the default patterns.
from gcloud import bigquery

# Get all defaults: credentials, project ID, scope, etc.
client = bigquery.Client()

# Get everything we possibly can from the service account JSON file
client = bigquery.Client.from_service_account_json('key.json')

# Get credentials from the service account JSON file, anddefaults for everything else
client = bigquery.Client(credentials=Credentials.from_service_account_json('key.json'))

# Use key.json for credentials, and 'my-project' as the project ID
client = bigquery.Client(project='my-project',
                         credentials=Credentials.from_service_account_json('key.json'))

@tseaver , @daspecster : Is this something that would make sense across the project?

That makes sense to me at first glance.
In the last example, that would override envar GCLOUD_PROJECT, correct?
For #2,
# Get everything we possibly can from the service account JSON file
client = bigquery.Client.from_service_account_json('key.json')

If the project ID isn't in the key.json then it would run through the default search order?
There's a chance that a user might expect the project ID to be in key.json but it's not and then we would want to be pretty clear on what's happening.
In an application where multiple projects are used, I would assume that I would have to specify each one as I wanted to access it.

If the project ID isn't in the JSON file, then they manually deleted it... I don't think that's a common thing...

I ran into this issue when attempting to switch from the more manual googleapiclient to this library.
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient import discovery

scopes = ['https://www.googleapis.com/auth/devstorage.full_control']
credentials = ServiceAccountCredentials.from_json_keyfile_name('service_acct_key.json', scopes)
# No need to specify project ID:
svc = discovery.build('storage', 'v1', credentials=credentials)
# svc.objects().insert() et al does not require project ID

from google.cloud import storage

# this fails unless default project ID can be derived from env
client = storage.Client.from_service_account_json('service_acct_key.json')

As pointed out in this thread, if we manually specify the project argument to Client in the latter example it will work. Dunno how relevant this comparison is, but the difference in default behaviour took me a while to figure out.

@jonparrott @lukesneeringer I have thought about this but written no code. The issue is that some clients don't ever use a project while some don't ever use http. I want to just combine _ClientFactoryMixin and _ClientProjectMixin but not all clients use a project, so we would only optionally pass project with the args.

Package
HTTP
Project

BigQuery
YES
YES

Bigtable

YES

Datastore
YES
YES

DNS
YES
YES

Error Reporting
YES
YES

Language
YES

Logging
YES
YES

Monitoring
YES
YES

Pub / Sub
YES
YES

Resource Manager
YES

Runtime Config
YES
YES

Spanner

YES

Speech
YES

Storage
YES
YES

Translate
YES

Vision
YES
YES

WDYT?

Optional project on every client seems fine with me.
Also, google-auth doesn't choke on ADC if it can't determine the project.

Fine with me as long as it can be done without a breaking change. I am not keen to have a 0.23 to 0.24 path that is as painful as this one.

In some sense it can't be done without breaking some behaviors. It would add project as a keyword (unless 'project' in kwargs). So this would magically change some people's code's behavior, but it's the right change for us.

@lukesneeringer This is still a bug


laravelcollective/html installation problem

Laravel Version: 7.1.2
PHP Version: 7.4.0
Database Driver & Version: phpMyAdmin 4.9.2
When i try to install laravelcollective/html with the command 'composer require "laravelcollective/html":"^5.8.0" ' in my laravel project i get the following message on the console:

./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: remove laravel/framework v7.1.2
- Conclusion: don't install laravel/framework v7.1.2
- laravelcollective/html 5.8.x-dev requires illuminate/view 5.8.* -> satisfiable by illuminate/view[5.8.x-dev, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9].
- laravelcollective/html v5.8.0 requires illuminate/view 5.8.* -> satisfiable by illuminate/view[5.8.x-dev, v5.8.0, v5.8.11, v5.8.12,
v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9].
- laravelcollective/html v5.8.1 requires illuminate/view 5.8.* -> satisfiable by illuminate/view[5.8.x-dev, v5.8.0, v5.8.11, v5.8.12,
v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9].
- don't install illuminate/view 5.8.x-dev|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.0|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.11|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.12|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.14|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.15|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.17|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.18|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.19|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.2|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.20|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.22|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.24|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.27|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.28|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.29|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.3|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.30|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.31|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.32|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.33|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.34|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.35|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.36|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.4|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.8|don't install laravel/framework v7.1.2
- don't install illuminate/view v5.8.9|don't install laravel/framework v7.1.2
- Installation request for laravel/framework (locked at v7.1.2, required as ^7.0) -> satisfiable by laravel/framework[v7.1.2].
- Installation request for laravelcollective/html ^5.8.0 -> satisfiable by laravelcollective/html[5.8.x-dev, v5.8.0, v5.8.1].
Installation failed, reverting ./composer.json to its original content.

You should use version 6 of the Laravel Collective for Laravel 7.
composer require laravelcollective/html:^6.0

@brunogaspar Thank you ! It works 👍
Any documentations for laravelCollective 6.0 ?

It's all on their website https://laravelcollective.com/docs/6.0/html

Please raise any questions with the laravel collective team, relating to their code. :)


Update Informations

Schedule on the first date is not completely up to date
Speakers are pretty much empty on day 1
Please add the new team photos
Remove the Join Our Staff
Add the login back

Everything that you mentioned was already updated

  Schedule is missing from main page

For some unknown reason Ricardo Rocha image if it stays like that will be correctly displayed in prod, you can find a similar example in deploy branch
Do you think we should have the schedule in main page? I think it's to much information and we have a proper page where the user can check the schedule.


Fix :examples:java:twitter:execute task

Before:
> Task :examples:java:twitter:execute FAILED
Error: Could not find or load main class org.apache.beam.examples.twitterstreamgenerator.TwitterStream

after
BUILD SUCCESSFUL in 1m 21s

the task does not have a dependency. It seems it never worked
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @priyansndesai


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/91 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target.git

Docs Build status updates of commit 96b6f95:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-09-26-08-15-47 has been deleted or has been force pushed: fatal: Couldn't find remote ref Archive_master_2019-09-26-08-15-47

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Expose Self as a type within classes

often when Declaring a class it's very useful to reference the Class itsself as a type internally
For Example
class SomeReallyLongClassNameComponentThing {
  valueA: SomeReallyLongInportedValueA;
  valueB: SomeReallyLongInportedValueb;

  doSomethingWithA(val: SomeReallyLongClassNameComponentThing['valueA']) {}
  doSomethingWithB(val: SomeReallyLongClassNameComponentThing['valueB']) {}
}

It's nice that I can reference the className inside the class Decloration..
During refactoring I can change the type of valueA with a single edit.
however:

The name of the class can be long
Name of the class is changeable

So we have resorted to making single classes perfile and using this syntax
type Self = SomeReallyLongClassNameComponentThing;
class SomeReallyLongClassNameComponentThing {
  valueA: SomeReallyLongInportedValueA;
  valueB: SomeReallyLongInportedValueb;

  doSomethingWithA(val: Self['valueA']) {}
  doSomethingWithB(val: Self['valueB']) {}
}

Search Terms
Self type in classes, Class Scope Types
Suggestion
It would be awesome if type Self was automatically declared as a type inside the class Declaration..
(or if you could declare Self  only in the scope of the class Declaration
ie 1. scoping
export class SomeReallyLongClassNameComponentThingOne {
  type Self = SomeReallyLongClassNameComponentThingOne;
  valueA: SomeReallyLongInportedValueA;
  valueB: SomeReallyLongInportedValueb;

  doSomethingWithA(val: Self['valueA']) {}
  doSomethingWithB(val: Self['valueB']) {}
}

export class SomeReallyLongClassNameComponentThingTwo {
  type Self = SomeReallyLongClassNameComponentThingTwo;
  valueOne: SomeReallyLongInportedValueOne;
  valueTwo: SomeReallyLongInportedValueTwo;

  doSomethingWithA(val: Self['valueOne']) {}
  doSomethingWithB(val: Self['valueTwo']) {}
}

-ie 2. AutoDeclared
export class SomeReallyLongClassNameComponentThingOne {
  valueA: SomeReallyLongInportedValueA;
  valueB: SomeReallyLongInportedValueb;

  doSomethingWithA(val: Self['valueA']) {}
  doSomethingWithB(val: Self['valueB']) {}
}

export class SomeReallyLongClassNameComponentThingTwo {
  valueOne: SomeReallyLongInportedValueOne;
  valueTwo: SomeReallyLongInportedValueTwo;

  doSomethingWithA(val: Self['valueOne']) {}
  doSomethingWithB(val: Self['valueTwo']) {}
}

Use Cases

Easy Self reference and access to class Types
Easier refactoring of Names
Scoping of type Variables

Examples

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

What about this['valueA'] and this['valueB']? It works and gives the behaviour you're describing:
https://www.typescriptlang.org/play/#code/MYGwhgzhAEDKD2BbApgJWWEICeAZeAdgOYDC4UAcmCiUgA6HIEAuAKgBYCWx0A3gFDRoAN0wBXZAEEA-AC5oEZgCduRANyCR45ACE50AmMQAjZEo2aAJvAQpmXYgHVO9yQApRIefc4QA2gDknhKSAQC6AJR8AL5WNkjIPk4u7DoemN5c-kHaOuFRvLGx-MCEitDcimAEwMjQALwGyADucAnomDj4xGSQEFQ09IwsHKpuERaVzNW1AHTWtokORM6ubgHN8EoA1hABE-xAA

We couldn't make Self have a new meaning (it could already mean something else), so the only plausible solution would be to permit local type aliases in class bodies, which is #7061


thruthy values should lint the same as in yamllint

You're not alone. We don't want conflicting lint rules like with https://github.com/adrienverge/yamllint/blob/master/yamllint/rules/truthy.py

False, should not have the capital to be consistent.
https://github.com/lean-delivery/ansible-lint-rules/blob/master/rules/UseCapitalInTrueFalse.py


Make VM time zone format compatible with the VM OS when creating a VM, display time zone in the Review report step

Fixes: https://github.com/oVirt/ovirt-web-ui/issues/1198
In this PR I:

make VM time zone format compatible with the selected VM OS by implementing the fix previously done for editing an existing VM - this change is related to the "Basic Settings" (first) step of the Create VM Wizard.
I've used the checkTimeZone function only for the case when changing or selecting the VM OS in the Create VM Wizard because that's the only case when we need to check it. When choosing the Template, no need to do this because the OS is automatically changed in this case.
When changing Provision Source to ISO, also no need to check Time zone format compatibility as we don't have any specific info about the selected iso image. I've set the default time zone according to the selected OS type (but I'm not sure about this) and even when no need to check TZ format compatibility in this case, checkTimeZone did the job, too.
make the current Time zone displayed in the "Review" report step of the Create VM Wizard (last step)

Before:

After:

Hello contributor, thanks for submitting a PR for this project!
I am the bot who triggers "standard-CI" builds for this project.
As a security measure, I will not run automated tests on PRs that are not from white-listed contributors.
In order to allow automated tests to run, please ask one of the project maintainers to review the code and then do one of the following:

Type ci test please on this PR to trigger automated tests for it.
Type ci add to whitelist on this PR to trigger automated tests for it and also add you to the contributor white-list so that your future PRs will be tested automatically. ( keep in mind this list might be overwritten if the job XML is refreshed, for permanent whitelisting, please follow #3 option )
If you are planning to contribute to more than one project, maybe it's better to ask them to add you to the project organization, so you'll be able to run tests for all the organization's projects.

ci add to whitelist

Looks OK to me except one issue:
When selecting a template as a source, the VM's OS is set based on the template's timezone while it should be the other way around. and set based on the template's OS only
I.e. in case the chosen template's timezone is not compatible with the template's OS for some reason, we should set VM's OS based on template's OS and change the timezone value to be compatible to the OS if needed.

I am not sure if I understand this issue. When we choose between templates, the VM's OS is changed automatically - this behavior was already there, it is not my choice. So I consider ok to get the template's timezone because I expect to be in harmony with the VM's OS. And when we choose template as a provision source, nothing happens, we have to choose a specific template or the OS to make some change in the timezone to happen. And if I applied the same code also on the situation when user switches from ISO to Template provision source, we would end up with the same result regarding the chosen time zone.

When selecting a template as a source, the VM's OS is set based on the template's timezone while it should be the other way around

I would say a Template selection should reset the previous values. It carries TZ as well as other things and it is to be expected that those fields are replaced

@sgratch When I look into the actual VM time zone format fix when editing an existing VM, the time zone is here set according to the chosen template and not VM's OS (it any template was chosen, of course).

I would say a Template selection should reset the previous values. It carries TZ as well as other things and it is to be expected that those fields are replaced

So you are saying that you would check TZ no matter we choose as a Provision Source? I think it is unnecessary but I can make appropriate change.
When we choose Template as a Provision Source, we have to choose a specific Template (or ISO) to continue adding a VM. And when we choose a specific Template, the TZ is set, and the VM OS is set with respect to the template. We really need to check the TZ only when we change the VM OS.

Looks OK to me except one issue:
When selecting a template as a source, the VM's OS is set based on the template's timezone while it should be the other way around. and set based on the template's OS only
I.e. in case the chosen template's timezone is not compatible with the template's OS for some reason, we should set VM's OS based on template's OS and change the timezone value to be compatible to the OS if needed.

@hstastna @michalskrivanek All you mentioned seems OK and working as expected.
The specific scenario I raised here is that in case we try to create a VM based on a template with an invalid tmz (e.g. a template set with Windows OS and non-windows TMZ or vice versa) then on webAdmin it fails with the relevant error and the same goes on previous web-admin code,
but on current code after this fix we create the VM with the template's timezone (by changing the OS to be compatible) instead of creating based on the template's OS and changing the tmz to be compatible. We can also fail the VM creation as well. As long as we don't change the template's OS because of the tmz which is wrong to me.

@sgratch Thank you for raising the specific scenario we should definitely take care of. But I think I still don't understand it. Are you saying that we do want to see this error?

... we create the VM with the template's timezone (by changing the OS to be compatible) instead of creating based on the template's OS and changing the tmz to be compatible. We can also fail the VM creation as well. As long as we don't change the template's OS because of the tmz which is wrong to me.

Do you mean that we should change the template's OS somehow in the process of creating a VM? I would expect that there's nothing wrong with any chosen template and that the template's OS is in harmony with the template's TZ. I thought that the issue I am trying to fix here is compatibiliy of template's TZ with the chosen VM OS, not compatiblity of the template's TZ with the template's OS.

Do you mean that we should change the template's OS somehow in the process of creating a VM?

No, we shouldn't change the template, only the VM based on that template. The VM's OS will be the same as the template's OS and then we should check the template's TZ. If it fits then use that. If it doesn't fit then change to the correct default TZ or leave it as is and it will fail on backend.

I would expect that there's nothing wrong with any chosen template and that the template's OS is in harmony with the template's TZ. I thought that the issue I am trying to fix here is compatibiliy of template's TZ with the chosen VM OS, not compatiblity of the template's TZ with the template's OS.

You are right and it's a specific case. But this fix should handle all cases.
On webAdmin it validates the template's OS<->TZ compatibility before applying and fails with an error in case it's not ok, so that the user will be able to manually fix it.
On web-ui the user can't fix the TZ since it's auto done for him but we should still be consistent.
Before this fix, the VM creation failed on this, the same as on webAdmin.
Now after this fix it creates it wrongly by changing the OS taken from the template. This is wrong.

Do you mean that we should change the template's OS somehow in the process of creating a VM?

No, we shouldn't change the template, only the VM based on that template. The VM's OS will be the same as the template's OS and then we should check the template's TZ. If it fits then use that. If it doesn't fit then change to the correct default TZ or leave it as is and it will fail on backend.

I would expect that there's nothing wrong with any chosen template and that the template's OS is in harmony with the template's TZ. I thought that the issue I am trying to fix here is compatibiliy of template's TZ with the chosen VM OS, not compatiblity of the template's TZ with the template's OS.

You are right and it's a specific case. But this fix should handle all cases.
On webAdmin it validates the template's OS<->TZ compatibility before applying and fails with an error in case it's not ok, so that the user will be able to manually fix it.
On web-ui the user can't fix the TZ since it's auto done for him but we should still be consistent.
Before this fix, the VM creation failed on this, the same as on webAdmin.
Now after this fix it creates it wrongly by changing the OS taken from the template. This is wrong.

If I'm following things correctly, in summary, changing the template changes the OS and the TZ.  OS and TZ are only tied together because Linux and Window have different formats for TZ.  So yeah, when progressing off the Basic settings step, the correct TZ format needs to be applied based on the OS, even if the TZ is wrong on the Template.
Also, makes sense the only way you could have the Template be OS Windows and a TZ Linux is if the template is super old or if you tweak the DB directly.  I would expect that editing a template in webadmin will not allow you to save it if the OS and TZ are not in harmony.

@sgratch @sjd78 And what about the actual fix for editing a VM? The TZ is set according to the template there. Is this correct?

@sgratch @sdj So I've made a decision and appropriate change - the timezone will be set corresponding to the template's OS to prevent VM creation fail when choosing template with an invalid timezone. So the user will be able to create a VM with a proper TZ. But I think it could be very useful for the user to display some warning about invalid TZ of the chosen template and about the appropriate TZ change, before creating a VM. And if they agreed, then they could create a VM immediately, without any fail. If not, then they could change the VM OS or template, before creating a VM. What do you think?

@sgratch @sdj So I've made a decision and appropriate change - the timezone will be set corresponding to the template's OS to prevent VM creation fail when choosing template with an invalid timezone. So the user will be able to create a VM with a proper TZ. But I think it could be very useful for the user to display some warning about invalid TZ of the chosen template and about the appropriate TZ change, before creating a VM. And if they agreed, then they could create a VM immediately, without any fail. If not, then they could change the VM OS or template, before creating a VM. What do you think?

I'm not sure it worth the change since it's an extreme case, so as long as we won't create an invalid VM as a result then it's ok to change the tz without letting the user know. Please note that the user can see the created VM timezone in the  "review" report step, so it's not hidden from him.

@hstastna @sgratch Please correct your @-mentions from sdj to sjd78, I am not this user and am receiving your misdirected notifications. Feel free to remove this comment after correcting (or I can).

@hstastna @sgratch Please correct your @-mentions from sdj to sjd78, I am not this user and am receiving your misdirected notifications. Feel free to remove this comment after correcting (or I can).

Done, sorry for the mistake.

@sgratch So then I think the PR is ready for another review, the specific case should be fixed by my last commit and user should see the created VM timezone in the "review" report step :)

@sgratch Is there anything I could improve regarding this PR? Thanks! :)

@hstastna - You need to rebase this PR after we did a few merges today.

I've found a bug in my changes, so I am working on fixing it. I will update the PR asap. Thanks.

The default value changes look good with a few more minor tweaks.
How about also handling the TZ drop down values? You're already 75% there...
https://github.com/oVirt/ovirt-web-ui/blob/2744ed666a7e5cc3cfc8d3298ef32792668ebd39/src/components/CreateVmWizard/steps/BasicSettings.js#L477-L485

Hi @sjd78, what do you mean by handling the TZ drop down values? There isn't any drop down in the Create VM Wizard, regarding the TZ, even when I enable Cloud-init/Sysprep. Thanks! :)

The default value changes look good with a few more minor tweaks.
How about also handling the TZ drop down values? You're already 75% there...
https://github.com/oVirt/ovirt-web-ui/blob/2744ed666a7e5cc3cfc8d3298ef32792668ebd39/src/components/CreateVmWizard/steps/BasicSettings.js#L477-L485

Hi @sjd78, what do you mean by handling the TZ drop down values? There isn't any drop down in the Create VM Wizard, regarding the TZ, even when I enable Cloud-init/Sysprep. Thanks! :)

There is a sysprep field that is a text input box that should be converted to a dropdown:

An empty field/drop down is allowed, it'll just pickup TZ from the template.
You can probably just pick up this code from VmDetails:
https://github.com/oVirt/ovirt-web-ui/blob/4ab783a8549f2e12fbf85a7a7991bb5b3c1f239d/src/components/VmDetails/cards/DetailsCard/CloudInit/SysprepForm.js#L39-L49
which looks like:

@sjd78 Thank you for the perfect explanation! And I would add the TZ dropdown box in sys-prep in a new PR.

LGTM
For VMs created from Blank template or ISO:

for Windows OS types: TZ is set to GMT Standard Time
for Linux & other OS types: TZ is set to Etc/GMT

For VM created from a Windows or Linux-based template, the template OS TZ is used.
However when using for example a Windows-based template and changing VM OS to Linux, the VM TZ is then set to the Linux OS default TZ (Etc/GMT).


pydantic.error_wrappers.ValidationError: 21 validation errors for Activities

I got this error when using get_full_genshin_user.However get_genshin_characters works without error.I try to fetch hoyolab api, it response as normal.This error seem appear at a part of user.Anyone know why ?
pydantic.error_wrappers.ValidationError: 21 validation errors for Activities
hyakunin_ikki_v25 -> records -> 0 -> battles -> 0 -> characters -> 1 -> __root__
  Character data incomplete (type=value_error)

I had no luck reproducing this error. Hopefully, this will be consistently fixed with the new upcoming model library.


chore: Update v1 branch to start release on v1 branch

Issue #, if available:
Description of changes:
Check points: (check or cross out if not relevant)

[ ] Added new tests to cover change, if needed
[ ] Build succeeds with all target using Swift Package Manager
[ ] All unit tests pass
[ ] All integration tests pass
[ ] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
[ ] Documentation update for the change if required
[ ] PR title conforms to conventional commit style
[ ] If breaking change, documentation/changelog update with migration instructions

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

Codecov Report

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

@@          Coverage Diff          @@
##             v1    #2476   +/-   ##
=====================================
  Coverage      ?   64.10%
=====================================
  Files         ?      720
  Lines         ?    22644
  Branches      ?        0
=====================================
  Hits          ?    14517
  Misses        ?     8127
  Partials      ?        0

Flag
Coverage Δ

API_plugin_unit_test
66.66% <0.00%> (?)

AWSPluginsCore
73.38% <0.00%> (?)

Amplify
51.32% <0.00%> (?)

Analytics_plugin_unit_test
72.72% <0.00%> (?)

Auth_plugin_unit_test
81.94% <0.00%> (?)

DataStore_plugin_unit_test
81.93% <0.00%> (?)

Geo_plugin_unit_test
57.87% <0.00%> (?)

Predictions_plugin_unit_test
33.53% <0.00%> (?)

Storage_plugin_unit_test
59.25% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


"tests" should read "assertions" in summary

The word "tests" in the output test summary should read "assertions."
This seemingly minor issue is occasionally confusing for a colleague who is using my -n option to selectively run tests by number. I was originally thinking of making a hook to fix this just for my fork, but the problem is actually tape's, so the fix should go in tape. No hook necessary.
Throughout the README documentation, throughout the code, and throughout the various open and closed issues, the word "test" refers to a named block of assertions that is called in the fashion of tape("description of my test", options, function (t) { my test });. Moreover, throughout all this same material, the word "assertion" refers to one of the assertions called on t, such as t.equal(v1, v2, msg). This is how tape itself consistently refers to tests and assertions.
But then the summary output from tape uses the word "tests" for "assertions." As far as I can tell, this is the only use of this meaning for "test" in the documentation or code.
There is an argument for using the word "tests": the TAP standard itself refers to what we call assertions as "tests" or "test points." However, the summary output that tape produces is neither part of the TAP standard nor suggested by it. I don't know where it comes from or whether any downstream consumers of the TAP output read the tape summary.
This seems like a minor issue because in discussion we can always identify a test by name, and presumably test names won't clash with assertion names. But the addition of my -n option, in which tape tests are numbered for reference independently of assertions, suddenly makes this inconsistency within tape an issue for my users.
It would also suffice to simply drop the total "tests" line because the immediately preceding line (e.g. 1..32) indicates this number, as does the line immediately preceding that, which is usually the line output for the last assertion of the run.
Any thoughts on renaming "tests" to "assertions" or dropping it from the summary output?

faucet explicitly looks for the tests summary line. It doesn't require the line, but if it is present, it passes it through. If "tests" is changed to "assertions" faucet reports the assertions count line as a test name.
The easy fix is to have faucet pass on totals lines labeled "tests", "pass", or "assertions". I'll shortly be offering a PR that allows faucet to work with tapeo anyway.

I'm no longer using tape, so close this if it's unimportant to you. Thanks for your help!


chore: improve README.md

This is a change request
Problem
Current README.md can be improved to facilitate some of the questions new people would have about js-waku family of packages.
Proposed Solutions

[ ] place list of public packages with their description and links to those packages;
[ ] to each of packages add README.md with: description, working code snippets, installation guide, if relevant - troubleshooting guide;

I'd recommend to keep the README.md minimal and strongly encourage directing people to the docs.
e.g. working code snippets is going to be a pain to maintain, best to have it in centralized place in the docs.
Probably the same for troubleshooting guide.

I was thinking of 3-5 liners for snippets but yes, anyway it will require maintenance. We can try looking into a way of running code from snippets similarly how it is done in Rust but I don't think there is anything out there.


Discovery API returns a v2.0 endpoint with /me/ which is invalid

hi @rgregg ,
I suffer the bug about onedrive for business discovery.
It will return empty value like:

discovery_response: {'value': []<EMAIL_ADDRESS>'https://api.office.com/discovery/v1.0/me/$metadata#allServices'}

Even I change the API to 1.0 will get the same response.
Is this the same bug with this one and any update about this?
Thanks!

hi @rgregg,
I try the mac onedrive app to add account for onedrive for business, but I got error and failed.
Auth API also failed as I listed above, is there any update about this?
Thanks.

@mikechiu1012: Can you e-mail me your OneDrive for Business username? My e-mail is rgregg -at- microsoft.com.

Hi @rgregg,
Thanks for ur help, the root cause is my testing accounts were expired.
Here is a suggestion that auth flow could be blocked at the page of account probing or password confirm page to stop the auth flow continuous.
Thanks

Thanks for the update. The empty array isn't very helpful in diagnosing what's going wrong, so it's something I'll add to our backlog.


Docs index page rework

Based on the conclusion of #348, we're looking to have a more customized index page for the/docs. To do this, we decided we'll be relying on a regular React component for that page, instead of Markdown.
Biggest inspiration is Expo docs:
https://docs.expo.dev/
Unfortunately, Docusaurus doesn't allow for the index page to be anything other than a Markdown file. To work around this, I'll be making a React component to be the pages content and importing it in the index markdown file to have the desired look and feel.

is this still relevant or can we close?

outdated


coverage badge gets updated on each unit test

What happened?
coverage badge should only update per PR, but it currently updates every time the unit test is started
https://github.com/sustainable-computing-io/kepler/blob/main/.github/workflows/unit_test.yml#L43
What did you expect to happen?
Update coverage per PR, instead of per unit test
How can we reproduce it (as minimally and precisely as possible)?
the commit history has too many bot update
Anything else we need to know?
No response
Kepler image tag

Kubernetes version

$ kubectl version
# paste output here

Cloud provider or bare metal

OS version

# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here

Install tools

Kepler deployment config

For on kubernetes:
$ KEPLER_NAMESPACE=kepler

# provide kepler configmap
$ kubectl get configmap kepler-cfm -n ${KEPLER_NAMESPACE}
# paste output here

# provide kepler deployment description
$ kubectl describe deployment kepler-exporter -n ${KEPLER_NAMESPACE}

For standalone:
put your Kepler command argument here

Container runtime (CRI) and version (if applicable)

Related plugins (CNI, CSI, ...) and versions (if applicable)

@rootfs , but https://github.com/sustainable-computing-io/kepler/blob/main/.github/workflows/unit_test.yml#L55 it seems even if it's updated, but nothing committed to badge right?

@SamYuan1990 see the commit history, there are many bot commits along with a PR

@SamYuan1990 see the commit history, there are many bot commits along with a PR

https://github.com/sustainable-computing-io/kepler/actions/runs/5453435884/jobs/9922274580?pr=752
I randomly pick up one action for unit test, the badge is not been committed.

but it's interesting that the bot trigger another action. https://github.com/sustainable-computing-io/kepler/actions/runs/5508865205


Add scale_rank=* (or something like that) to our rendering rules

Style change requested
Let the adventures begin... we currently don't have any mechanism for highlighting or bringing to the foreground (even for just a period) any sort of ranking of importance for features to stand out against others at zooms they might not normally be displayed.
For example, in many cities, small waterways were once more significant than they are today and perhaps have been even paved over.
Case in point: Shockoe Creek in Richmond, Virginia. It's the creek that runs pretty much straight north through the center of Richmond, up from the James River, and then bends west.
Every old map considered this creek significant enough to depict:
1864 Richmond Map

1856 Richmond Map

In addition, this creek shaped the naming of a nearby hill (maybe the hill named the creek?) and two different Richmond neighborhoods - Shockoe Slip & Shockoe Bottom.
It was even the border of an expansion of the city boundaries in 1867.

Now, it's either dried up, had highways built over it:

Unfortunately, two things are at hand:
(1) OSM/OHM doesn't currently render natural=water + water=stream (there's no water=creek tag...) at any zoom... and (2) even if they did, it would not likely do so at browser zoom=13, which the old maps roughly did.

Users could get around this to some degree by tagging the creeks with water=river, but tagging incorrectly seems to be a much worse practice than adding rendering-specific methods.
So... perhaps we could do the following:
(a) start rendering water=stream at browser zoom=18 or thereabouts for all times:

and
(b) enable scale_rank tagging so that if this tiny creek were labeled with scale_rank=13, it would start showing up at browser zoom=13. Users could then time-bound that scale_rank such that it would revert to its natural rendering rules as its historical importance diminished.
Affected Tag or Tags
I think we have to add a new tag that will need to be accounted for in our vector tile filters, as well as our stylesheets (or maybe just the vector tile filters?
I'm open to suggestion of a system, but maybe something like:
'scale_rank=[zoom]', where there's a zoom level where you start always including the feature in the vector tiles, but that makes me think we'd also need a rule in the styles... who knows?

Also - we might use this new scale_rank=* tag to highlight key POIs and other map features at zoom levels where they might not normally be displayed, similar to how Google & others highlight important items today.

OSM has always shied away from embedding cartographic hints in the database, because it requires mappers to predict what data consumers would want well into the future. Instead, the onus has been on data consumers to supply their own scale ranks.
For example, OpenMapTiles ranks features by applying heuristics that depend on the feature type. The Mapbox Streets source assigns a filter rank to each feature based in part on the number of Wikipedia language editions that have an article about it, based on Wikidata. Wikidata volunteers publish a QRank dataset that makes it easier to rank geographic features based on various factors.
I suspect that assigning a single scale rank per feature would be less tenable in OpenHistoricalMap than in OpenStreetMap. As you point out, a feature’s importance can change over time. If the map assigns a prominence to each city according to its historical or eventual importance, then the map at any given time will become less coherent.
Moreover, as we start getting into thematic maps, the relative importance of a feature in a given time period could differ between themes. For example, this hardware store would’ve had only local prominence even in its heydey on a general historical map, but it might be nationally prominent on a feminism-themed map. A railroad-themed map (#405) would consider any historical alignment of the Baltimore & Ohio to be pretty important even today, but not a road-themed map (#538) that also depicts railroad tracks by necessity.

OSM/OHM doesn't currently render natural=water + water=stream (there's no water=creek tag...) at any zoom

waterway=stream renders at (raster) zoom level 14 and above in both openstreetmap-carto and the Historic style. OpenMapTiles and Mapbox Streets also include streams at (vector) zoom level 13.

Users could then time-bound that scale_rank such that it would revert to its natural rendering rules as its historical importance diminished.

If the proposal is for scale_rank to establish the feature’s historical maximum, data consumers would need to be able to correct for a diminished importance in other time periods. But at that point, wouldn’t they have access to the data necessary to come up with a maximum scale rank on their own?

Is there a more data-driven way to address the Shockoe Creek example? For example, if it should be shown at a lower zoom level on account of its length, maybe the filter for waterways should account for length in general. If its prominence is due to being a namesake, then maybe something could be added in postprocessing to indicate how many features’ name:etymology:wikidata tags its wikidata tag matches. Maybe waterways that form boundaries should always be rendered at a lower zoom level than they would otherwise?

Those are all good considerations, but I think this creek is a good example, because it fails most of those tests and yet is a prominent feature on most / all small-city level maps of Richmond in the 18th & early 19th centuries. I'd argue that some features are undeniably more important at times in history, across thematic use, particularly things like commerce or transport routes.
Example of failing:

No Wikipedia entry for Shockoe Creek in Richmond, but there is one to a different place, so the modern usage / reference isn't valid
Richmond GIS labels a small isolated area of water in Richmond as Shockoe Creek, but that doesn't match the old maps, either

Which historic style renders water=stream at z=14? I'm wondering if maybe I've done something wrong...
I do like the idea of a heuristic, as perhaps there are rules that could emphasize small waterways in the past & detune them at some point... same for railroads. But... that wouldn't help to emphasize particular cities or travel routes in the past.
Filter rank is cool, but isn't that effectively the same thing as a scale_rank?
For the idea of importance in a thematic map, couldn't people just use special thematic tags? e.g. my_custom_tag=important? (I love the Sparks hardware example)
One key point: I'm not sure scale_rank should be judged as anything other than a guide for OHM's own specific rendering tasks. It's not intended to solve anyone else's rendering hierarchy / priority, and I don't think we should market it as such. Would it be better if we just called it ohm_zoom=* or something like that to avoid any confusion?

No Wikipedia entry for Shockoe Creek in Richmond, but there is one to a different place, so the modern usage / reference isn't valid

The historic creek would be fair game for Wikidata, as long as there’s at least one citation to back it up (the same citation you’d add to OpenHistoricalMap, most likely).

Which historic style renders water=stream at z=14? I'm wondering if maybe I've done something wrong...

Yes, this way should be tagged waterway=stream. If you decide to also map the creek as an area, you’d tag it as natural=water water=stream. iD currently warns that, based on natural=water, you’ve only mapped half the creek and need to join the endpoints up to form a valid area, but in fact this is the wrong preset.

I do like the idea of a heuristic, as perhaps there are rules that could emphasize small waterways in the past & detune them at some point... same for railroads. But... that wouldn't help to emphasize particular cities or travel routes in the past.

You’re right, heuristics can be imperfect tools for curation, but I’d think mappers would have even less context or agency to make subjective rendering decisions.

For the idea of importance in a thematic map, couldn't people just use special thematic tags? e.g. my_custom_tag=important? (I love the Sparks hardware example)

We’re used to thinking about “the OHM renderer” making static decisions, but there’s actually very little keeping us from making the client-side rendering rules more dynamic. The time slider today lets the user decide which year to view, but the same underlying runtime styling mechanism could enable the user to define their own criteria for a custom historical map and share the result, blurring the line between the main openhistoricalmap.org map, Overpass turbo, and a third-party website that embeds OHM. A story map wouldn’t need to tag Sparks Hardware with anything; it would specifically style Sparks Hardware differently by its OHM node ID or wikidata tag.
In this scenario, the “official” rendering rules are just an initial default. I think there would be more benefit to developing general-purpose rules that ensure reasonably good cartography, regardless of the criteria, than to proactively build in a mechanism for exceptions that we’d have to revisit whenever the main style’s overall design gets a refresh.

Filter rank is cool, but isn't that effectively the same thing as a scale_rank?

Mapbox Streets used to have a single “scale rank” attribute that weighed the feature’s relative size and importance. Style designers needed more flexibility than this one-size-fits-all approach, so Streets v8 split it into separate “size rank” and “filter rank” attributes.
These knobs are intended for adjusting feature density. For example, a public transportation map should show some street labels for user orientation, but the street label layer shouldn’t overwhelm the bus routes and bus stops, so they need to be sparser than on a road map. Some areas have lots of streams while others have few streams that are thus more notable; the designer can filter out streams with a lower scale rank to normalize the stream layer somewhat.
It helps if the rule for eliminating clutter is reasonably intuitive,[^opencyclemap] namely size and importance, with various things used as proxies for importance. Another consideration is stability when zooming in further. It’s easier to make decisions about these ranks if you can make assumptions about stylistic attributes like font size and anchor placement.

Would it be better if we just called it ohm_zoom=* or something like that to avoid any confusion?

That would be an improvement, since it seems to have a different purpose and format. Scale rank is really just a number on a scale, relative to other features of the same class, whereas this proposed key would have absolute zoom levels as values. The zoom level isn’t about managing clutter; in fact, it could contribute to feature density intentionally in an area with lots of really important things.
Specific rendering hints would represent a step back from the world of rule-based or data-driven cartography that OSM and OHM come from. The best precedent I can think of in OSM would be maneuver relations, which are hints for routers in exceptional circumstances, but those hints are pretty objective. They basically exist because of quirks in OSM conventions for mapping roads.
[^opencyclemap]: As an example of what not to do, if I recall correctly, OpenCycleMap used to have a bug that prioritized place labels alphabetically, causing the map to be dominated by small towns starting with the letter A, which collided out much larger, alphabetically-challenged cities.

Ok - water=* mistagging fixed. Doh!
Separately... I'm not sure I've ever seen a footnote in a github issue comment - impressive!
Back to the discussion at hand:
I'm not a huge fan of hand-curating data in the stylesheets... if someone wants to call out Sparks for its feminist status, maybe that's a designation someone else might want to use in their storytelling, but if that designation is hidden in a stylesheet, it would be difficult to reuse.
In fact... I would kind of love it if people were to adopt their own tagging conventions & hang their personal tags on the data in a way that might lead to some discovery/discoverability of how that data was being used elsewhere. e.g. my_special_tag=value for whatever presentation/styling/dataset they needed & if there were a way of finding a site that was using my_special_tag, that would be awesome. Hard to do that with a stylesheet that leaves no trace in the data.
I also think explicitly tagging the data with the rendering attributes makes things a little more intuitive, by transparently exposing the setting for that data. I agree that scale rank and filter rank are a little opaque, but at least there's a pretty obvious way to search for the meaning.
I'm less hung up about the rule- or data-driven principle thing, but maybe the objective rule is: "it's featured on almost all old maps for a particular period / era"?

I'm not a huge fan of hand-curating data in the stylesheets... if someone wants to call out Sparks for its feminist status, maybe that's a designation someone else might want to use in their storytelling, but if that designation is hidden in a stylesheet, it would be difficult to reuse.

To be clear, the idea was that nothing gets hard-coded in a stylesheet per se. With tools like GL JS, you can already build a one-off story map for a website that highlights particular features. It’s true that the curation criteria would live in the code for that website, right next to the commentary. That seems appropriate to me for a feature that you want to actively call out in a story, but now I see that’s tangential from what you were focused on, the need to align to individual choices that every cartographer would make manually.
A couple years ago, one of the openstreetmap-carto maintainers really wanted to show San Francisco more prominently than San José, like literally every other map does. Except San José comes out on top by the standard metric of population. Users expect maps to prioritize San Francisco based on a metrics that’s too subjective to tag in OSM: fame. There were various ideas for things we could tag that would tip the scales in favor of San Francisco, but they all would’ve produced weird results elsewhere. One idea would’ve ended up making Oakland more prominent than San Francisco.
In fact, a good proxy for a city’s fame would be its Wikipedia article page views, which is part of what QRank does. Another would be the number of mentions in literature, handwaving about cities sharing the same name. But then there’s no need to hard-code these results in the database, because a CSV somewhere in the renderer codebase would be more usable, less prone to vandalism, and potentially dynamic.
As you’ve already pointed out, Wikipedia isn’t granular or comprehensive enough for the locally prominent geographic features we need to rank. But I think you’ve demonstrated that few of these decisions by cartographers are entirely arbitrary. We both agree on the need to facilitate rendering that adheres to conventions, but I’d contend that renderers still have low-hanging fruit before we need to burden mappers with manual annotation. And for the things that defy heuristics, we should ask mappers to show their work beyond an enigmatic number that different mappers will naturally disagree on.
I can think of one other precedent in OSM for subjective rendering hints: highway classification is essentially telling the renderer the minimum zoom level of a road segment. Probably more than half of all communications between mappers in the project’s entire history relate to highway classification. One fine day, a clever developer will get around to integrating their renderer with the part of a router that builds a routing graph, and all that effort and angst will turn out to have been for naught.

I think these are all good (and important!) points about individual maps and highlighting important data pieces/geographies, alongside the difficulties of a world wide, multi-zoom level map that has complex and still imperfect data availability/ingestion (like like of small creeks or ephemeral water bodies). It is very true historically that water and other natural things (like forests!) were super important as determining factors in where things existed.
I think for visualizing the priorities of data pieces, what @1ec5 said here is a really good example:

A couple years ago, one of the openstreetmap-carto maintainers really wanted to show San Francisco more prominently than San José, like literally every other map does. Unfortunately, San José comes out on top by the standard metric of population. Users expect maps to prioritize San Francisco based on a different metric that’s too subjective to tag in OSM: fame. There were various ideas for things we could tag that would tip the scales in favor of San Francisco, but they all would’ve produced weird results elsewhere. One idea would’ve ended up making Oakland more prominent than San Francisco.

With print maps, we can and do make as many adjustments as need in order to create a custom (and culturally correct, per whatever knowledge we are given) basemap that ensures all data is in the correct visual hierarchy. But with interactive maps, we always have to let go that level of perfection since it ultimately is too hard to do that in an automated fashion in every city, globally. When one starts to make adjustments/exceptions, it then makes it hard to say "no" to making adjustments elsewhere.
Providing a standard and consistent scale rank for populated areas like cities feels easier to do (can say "we went based on population) but for any other feature that starts to become really difficult because cultural significance can vary a lot and, globally, it's hard to know the true priority or importance of a particular creek, for example.
I do think showing creeks if the data exists would be nice, though. It sounds like creeks do not often exist in the data at all? Or am I misundersatnding that?

I do think showing creeks if the data exists would be nice, though. It sounds like creeks do not often exist in the data at all? Or am I misundersatnding that?

The creek example turned out to be a red herring. It shows up now at z14 and above after a tagging adjustment in the database.

Without any new tagging scheme, it’s already possible for a stylesheet to automatically rank places by their age or longevity – which depend on client-side choices that we can’t possibly hard-code in the database. #801 would enable a stylesheet to also rank by area. These factors don’t necessarily add up to a holistic sense of importance, but they may reduce the urgency for something hand-curated.


(WIP) Get count for blended history calls

Not knowing how many total entries there are makes pagination ugly for many applications, including the frontend. The plan is to first have separate endpoints for each paginated one that uses blended history. Eventually, we can convert the old endpoints to return objects with metadata including total count instead of a simple array.
WIP:
As of right now, I've implemented a count endpoint for deploy history on a request as a proof of concept. Feedback on style and implementation would be appreciated!
Update: Added count for task history
@tpetr @ssalinas

Overall this seems pretty good to me. My only concern might be how long it's going to take to get that result back on the mysql side (not for deploys, but if we do anything similar for task history), will have to speed test it a bit and/or make sure this call isn't blocking anything while we wait for it.

Testing with small datasets, the task history count is taking <1ms to process the entire request. We'll still need to test it with lots more data than I can provide though.

Created SingularityPaginatedResponse to encapsulate the array and metadata for the new endpoints.  Still needs some testing and any frontend changes to use the new metadata

@tpetr addressed both comments (data -> objects and default page)

Will tackle the frontend of this in a separate PR, going to merge this one


feat(deps): upgrade compiler dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-compiler-dependencies-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1344

Questions ?
Please refer to the Backport tool documentation