Support PackageReference without version

With ASP.NET Core 2.1, the main package reference for the core projects is changed from
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.8" />

to
<PackageReference Include="Microsoft.AspNetCore.App" />

I think the actual version is determined by the SDK. Running NuKeeper on a csproj that contains this PackageReference displays an ArgumentNullException. This package could be skipped, so that the error is not shown.
Could not read package from <PackageReference Include="Microsoft.AspNetCore.App" /> in file C:\Users\me\Source\Repos\Foo\Bar\Bar.csproj ArgumentException : Value cannot be null or an empty string.
Parameter name: value

Probably caused by the NuGetVersion constructor at https://github.com/NuKeeperDotNet/NuKeeper/blob/ec27e14a1e8bb5b3aa02f107b887cc6b20423c1b/NuKeeper.Inspection/RepositoryInspection/PackageInProject.cs#L15

That's... odd :-) this is still a package listed normally on NuGet  https://www.nuget.org/packages/Microsoft.AspNetCore.App/

Simple repro: dotnet new webapi; nukeeper log=Verbose
call stack:
Could not read package from <PackageReference Include="Microsoft.AspNetCore.App" /> in file c:\carnect\test\test.csproj ArgumentException : Value cannot be null or an empty string.
Parameter name: value
   at NuGet.Versioning.NuGetVersion.Parse(String value)
   at NuGet.Versioning.NuGetVersion..ctor(String version)
   at NuKeeper.Inspection.RepositoryInspection.PackageInProject..ctor(String id, String version, PackagePath path) in C:\Code\NuKeeper\NuKeeper.Inspection\RepositoryInspection\PackageInProject.cs:line 15
   at NuKeeper.Inspection.RepositoryInspection.ProjectFileReader.XmlToPackage(XElement el, PackagePath path) in C:\Code\NuKeeper\NuKeeper.Inspection\RepositoryInspection\ProjectFileReader.cs:line 70```

Ack! yes, we should just skip this one ref and not crash.
"don't crash" is a good rule for almost any scenario.

Played a bit with other packages without a version - NuGet will just install the lowest version published. Ack. But it's valid, just not very useful. Agreed - best behaviour here is to skip.

I am not surprised that nuget picks the minimum version; within other constraints like platform support and other packages that could depend on it, with version ranges. I am seeing similar at work where we get an old version of a transitive dependency.  Which is sometimes not ideal.

Oh, no, for normal packages, it ignores the constraints completely. Just the oldest version published, end of story :-D

Grabbing ideas from the Big League: dotnet-outdated filters out "auto-references" based on how NuGet parsing reports them ( https://github.com/jerriep/dotnet-outdated/blob/master/src/DotNetOutdated/Services/ProjectAnalysisService.cs#L69 ) but reports references with missing constraints with the lowest-possible version, as this is also coming from NuGet own parsing ( https://github.com/jerriep/dotnet-outdated/blob/master/src/DotNetOutdated/Program.cs#L183 ). It would be nice to get this behaviour (including version range handling and multiple target framework handling), but it's a big piece of work. For now, skipping those dependencies where we can't read the version seems an acceptable workaround.

Ah, we do skip those packages and continue with the rest of analysis. See https://github.com/NuKeeperDotNet/NuKeeper/blob/master/NuKeeper.Inspection/RepositoryInspection/ProjectFileReader.cs#L63 (and the implementations for other 2 formats). @AnthonySteele perhaps the solution here is to not log this as _logger.Error but _logger.Verbose ?

Yup, it does not cause the process to crash, but this being reported as an Error is weird. It might be better to detect the empty version before passing it to the NuGet version, so that it can be skipped correctly (and other Exceptions would still cause an Error).

The PR above  should stop this being reported as an error.
In another codebase, I now have imported versions with a range, e.g. <PackageReference Include="AWSSDK.Core" Version="3.3.*" />
It would be good to detect and work with these.

The bug is fixed, what remains is a missing feature.

Those references might be actually going away; issue to track is https://github.com/aspnet/Home/issues/3307

With https://github.com/NuKeeperDotNet/NuKeeper/pull/443 in place this issue is most likely ready to be closed?


If the configuration contains hosts that are down, performance is severely degraded

Moped 1.5.2
We are experiencing an issue where we have 3 hosts in our replica set and if we take one down, every Ruby process experiences a delay on every request. This applies to background jobs via Sidekiq as well. As soon as we take out the bad node from the configuration, everything goes back to normal.

Adding my 0.02. The issue still exists on mongoid 4.0.1 and moped 2.0.3.
I noticed that if the machine is running (and accessible) but mongod is down, then the queries resolve as expected. It really seems like a connectivity timeout when trying to reach a dead node.

Bump. Is this still an issue with the latest versions of Mongoid (version 5 or 6)? It's my understanding that Moped got folded into Mongoid?

Mongoid now uses mongo-ruby-driver. See https://www.mongodb.com/blog/post/announcing-ruby-driver-20-rewrite.


Caffe-android-lib fail in Mac OS

Hi,
I need ti integrate caffe library in my Android project to import classes in C source using NDK, when I try to build this library in Mac Os, I have the next error
      readlink: illegal option -- f
      usage: readlink [-n] [file ..

Can you help me?

You have to install gnu coreutils, for example, brew install coreutils.

For me, after install coreutils, I have to change all readlink in the scripts into greadlink because it is a /usr/bin/readlink in macOS Sierra (although I set alias readlink=greadlink

@sh1r0 I also get the error,my command as bellow:

excute:

git clone --recursive https://github.com/sh1r0/caffe-android-lib.git

excute:

cd caffe-android-lib

excute:

export ANDROID_ABI="arm64-v8a" # Optional, see the note below

excute:

./build.sh /Users/chenxingyi/work/Android/package/sdk/ndk-bundle/

and "/Users/chenxingyi/work/Android/package/sdk/ndk-bundle/" is my ndk path
5.
brew install coreutils
alias readlink=greadlink

exute .

./build.sh /Users/chenxingyi/work/Android/package/sdk/ndk-bundle/

but is still get the error:
      readlink: illegal option -- f
      usage: readlink [-n] [file ..

my computer is macOS Sierra 10.12.6, i am a fresher for deep learning, please help me, thank you!

I find the solution:
1.install coreutils：
brew install coreutils

2.set envionment variables，edit ~/.bash_profile or ~/.zshrc，add：
export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
alias readlink=greadlink


Added figures to slides. Uploading PDF.

Added Rachel's two plots and Hiro's plot to the markdown file. Adding the PDF to Github.

Um, okay. Going to assume that nobody has any objections to the final version of the slides since we went over them today and merge.


Snippets Support

It would be great to have snippet support for function arguments etc.
If I have time ill try to implement it

@crondog Hi :)
I do not understand all.
Can you give an example?

If deoplete-clang provides the arguments information in abbr or info, neosippets already supported the feature.

Ok so it seems I was wrong. The placeholders are put in

@Shougo Thanks for advice :)


installation test errors

Hello,
I installed cgatcore with:
bash install-CGAT-tools.sh --devel --location /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2
and ran the tests with:
./install-CGAT-tools.sh --test --location /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2
but got the following errors:
# install-CGAT-tools.sh log | login-3-internal | Tue 29 Jan 14:45:59 GMT 2019 | starting conda_test
running develop
running egg_info
writing cgatcore.egg-info/PKG-INFO
writing dependency_links to cgatcore.egg-info/dependency_links.txt
writing top-level names to cgatcore.egg-info/top_level.txt
reading manifest file 'cgatcore.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'requires.txt'
writing manifest file 'cgatcore.egg-info/SOURCES.txt'
running build_ext
Creating /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/lib/python3.6/site-packages/cgatcore.egg-link (link to .)
cgatcore 0.5.6 is already the active version in easy-install.pth

Installed /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/cgat-core
Processing dependencies for cgatcore==0.5.6
Finished processing dependencies for cgatcore==0.5.6
# install-CGAT-tools.sh log | login-3-internal | Tue 29 Jan 14:46:03 GMT 2019 | running tests...

 ##########################################################

 An error occurred in:

 - line number: 429
 - exit status: 1
 - command: pytest tests &>tests.output

 The script will abort now. User input was:

 ./install-CGAT-tools.sh --test --location /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2

 Please copy and paste this error and report it via Git Hub:
 https://github.com/cgat-developers/cgat-core/issues

 Debugging:
 CFLAGS:  -I/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/include -L/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/lib
 CPATH:  -I/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/include -L/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/lib
 C_INCLUDE_PATH: :/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/include
 CPLUS_INCLUDE_PATH: :/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/include
 LIBRARY_PATH: :/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/lib
 LD_LIBRARY_PATH: /groupvol/med-bio/aberlang/aberlang_group/apps/bin/miniconda3/envs/python27_env/bin/lib/libpython2.7.so.1.0:/groupvol/med-bio/aberlang/aberlang_group/apps/bin/miniconda3/lib/libpython3.5m.so.1.0::/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/lib:/rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install/envs/cgat-c/lib/R/lib
 CGAT_HOME: /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2
 CONDA_INSTALL_DIR: /rds/general/project/medbio-berlanga-group/live/apps/bin/cgat_installation_2/conda-install
 CONDA_INSTALL_TYPE: cgat-c
 CONDA_INSTALL_ENV: cgat-c
 PYTHONPATH:

 ##########################################################

I've attached the tests output:
tests.output.txt
Errors seem to be either:
mkdir: cannot create directory ‘/tmp/ctmpsu9heyez’: Permission denied
or
ValueError: too many values to unpack (expected 2)
The first is probably related to #30. I'm unsure how to fix this though. The cluster I'm on is PBSPro and submission nodes use $TMPDIR, which points to /var/tmp/ and would create eg /var/tmp/pbs.job_id.
Any help would be much appreciated!
Best,
Antonio

Hi Sebastian,
Thanks, I get the same errors with conda install cgatcore but it otherwise installs and works without cluster submission. Simple tests with python -c "import cgatcore" and eg python xxx/pipeline_xxx.py make full --local work for instance.
The problem may be that here the nodes use $TMPDIR, which points to /var/tmp/ and would create eg /var/tmp/pbs.job_id. Creating directories from the head node or using qsub scripts with $TMPDIR works.
The issue may be that my cluster's settings may not allow mktemp for example, and only allow /var/tmp/pbs.job_id ? With job_id is set dynamically. I'll check with the HPC admin but if you have any ideas let me know. See these files as quick tests for a better idea:
ctm_test.qsub.e2331954.txt
ctm_test.qsub.o2331954.txt
ctm_test.qsub.txt
ctm_test.sh.txt
Best,
Antonio

Hi Antonio,
Thanks for sending those files, that clarifies a little bit the issue.
Presumably you have manually edited ctm_test.sh yourself, specifically these lines:
#TMPDIR=`mktemp -d -p /tmp/`
#TMPDIR=`mktemp -d -p /var/tmp/`
export TMPDIR

Before making any more comments, I am now interested in seeing the original bash script created by cgat-core. Could you please reproduce the error and attach here the ctmp***.sh script created when the tests fail?
Best regards,
Sebastian

Hi Sebastian,
Thanks, yes, I edited those files to test what might work. Here is what the original would have looked like:
ctmp6635a9a1.sh.txt
I made a tentative pull request (#74), the changes solve the temporary directory writing issue for version 0.5.6. The issue may be site specific though, I don't have access to other clusters and I'm unaware of anyone else using pbspro. I'm getting an error on travis for the latest devel though, I'll check tomorrow what it might be.
Best,
Antonio

Hi Antonio,
Thanks for the pull request. Let's first troubleshoot a bit further.
See the following lines in file ctmp6635a9a1.sh.txt:
TMPDIR=`mktemp -d -p /var/tmp/`
export TMPDIR
clean_temp() { rm -rf /var/tmp/; }

Assuming that you are working off the master branch, this is the code:
https://github.com/cgat-developers/cgat-core/blob/master/cgatcore/pipeline/execution.py#L572-L586
            cluster_tmpdir = get_params()["cluster_tmpdir"]

            if self.run_on_cluster and cluster_tmpdir:
                tmpdir = cluster_tmpdir
                tmpfile.write("TMPDIR=`mktemp -d -p {}`\n".format(tmpdir))
                tmpfile.write("export TMPDIR\n")
            else:
                tmpdir = get_temp_dir(dir=get_params()["tmpdir"],
                                      clear=True)
                tmpfile.write("mkdir -p {}\n".format(tmpdir))
                tmpfile.write("export TMPDIR={}\n".format(tmpdir))

That means:

you are going down the route where self.run_on_cluster and cluster_tmpdir is true.
the following lines of code are not working on your environment:
https://github.com/cgat-developers/cgat-core/blob/master/cgatcore/pipeline/execution.py#L572-L576

            cluster_tmpdir = get_params()["cluster_tmpdir"]

            if self.run_on_cluster and cluster_tmpdir:
                tmpdir = cluster_tmpdir
                tmpfile.write("TMPDIR=`mktemp -d -p {}`\n".format(tmpdir))
                tmpfile.write("export TMPDIR\n")

The shell script created by cgatcore should look something similar to:
TMPDIR=`mktemp -d -p /var/tmp/pbs.job_id/tmpfolder`
export TMPDIR
clean_temp() { rm -rf /var/tmp/pbs.job_id/tmpfolder; }

The culprit must be specifically:
            cluster_tmpdir = get_params()["cluster_tmpdir"]

Could you please share the output of the following commands:
mktemp --help
python -c "from cgatcore import pipeline as P; P.get_parameters(); print(P.get_params()['cluster_tmpdir'])"

On both the submission and the execution hosts?
Best regards,
Sebastian

Also, are you using a pipeline.yml file? If so, please cd to the folder where you have it, and run the following command instead:
cd <working-dir-with-config-yaml>
python -c "import os; from cgatcore import pipeline as P ; P.get_parameters(['pipeline.yml']); print(P.get_params()['cluster_tmpdir'])"

Could you also please share your pipeline.yml?

Hi Sebastian,
Many thanks for looking into this. Hopefully I've completely overlooked something simple.
Here are the results:
mktemp --help on the submission host:
Usage: mktemp [OPTION]... [TEMPLATE]
Create a temporary file or directory, safely, and print its name.
TEMPLATE must contain at least 3 consecutive 'X's in last component.
If TEMPLATE is not specified, use tmp.XXXXXXXXXX, and --tmpdir is implied.
Files are created u+rw, and directories u+rwx, minus umask restrictions.

  -d, --directory     create a directory, not a file
  -u, --dry-run       do not create anything; merely print a name (unsafe)
  -q, --quiet         suppress diagnostics about file/dir-creation failure
      --suffix=SUFF   append SUFF to TEMPLATE; SUFF must not contain a slash.
                        This option is implied if TEMPLATE does not end in X
  -p DIR, --tmpdir[=DIR]  interpret TEMPLATE relative to DIR; if DIR is not
                        specified, use $TMPDIR if set, else /tmp.  With
                        this option, TEMPLATE must not be an absolute name;
                        unlike with -t, TEMPLATE may contain slashes, but
                        mktemp creates only the final component
  -t                  interpret TEMPLATE as a single file name component,
                        relative to a directory: $TMPDIR, if set; else the
                        directory specified via -p; else /tmp [deprecated]
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mktemp invocation'

mktemp --version gives:
mktemp (GNU coreutils) 8.30
This is on CentOS Linux 7.
With commit 32b45d575f5c0da954ccf37c65ecb7182fdf9987 on the submission host:
python -c "from cgatcore import pipeline as P; P.get_parameters(); print(P.get_params()['cluster_tmpdir'])"
False
On the execution host I get (without yml files):
Usage: mktemp [OPTION]... [TEMPLATE]
Create a temporary file or directory, safely, and print its name.
TEMPLATE must contain at least 3 consecutive 'X's in last component.
If TEMPLATE is not specified, use tmp.XXXXXXXXXX, and --tmpdir is implied.
Files are created u+rw, and directories u+rwx, minus umask restrictions.

  -d, --directory     create a directory, not a file
  -u, --dry-run       do not create anything; merely print a name (unsafe)
  -q, --quiet         suppress diagnostics about file/dir-creation failure
      --suffix=SUFF   append SUFF to TEMPLATE; SUFF must not contain a slash.
                        This option is implied if TEMPLATE does not end in X
  -p DIR, --tmpdir[=DIR]  interpret TEMPLATE relative to DIR; if DIR is not
                        specified, use $TMPDIR if set, else /tmp.  With
                        this option, TEMPLATE must not be an absolute name;
                        unlike with -t, TEMPLATE may contain slashes, but
                        mktemp creates only the final component
  -t                  interpret TEMPLATE as a single file name component,
                        relative to a directory: $TMPDIR, if set; else the
                        directory specified via -p; else /tmp [deprecated]
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation at: <https://www.gnu.org/software/coreutils/mktemp>
or available locally via: info '(coreutils) mktemp invocation'

For python -c "from cgatcore import pipeline as P; P.get_parameters(); print(P.get_params()['cluster_tmpdir'])" I get:
False
See the full output and scripts if needed:
test.qsub.e582543.txt
test.qsub.o582543.txt
test.qsub.txt
test.sh.txt
When using pipeline.yml.txt
(Note the txt extension is to be able to drag and drop here)
python -c "import os; from cgatcore import pipeline as P ; P.get_parameters(['pipeline.yml']); print(P.get_params()['cluster_tmpdir'])"
False
This is from an old simple ruffus toy pipeline from CGAT (simple test repo).
Note I sometimes use a .cgat.yml file but here have not passed cluster_tmpdir. Adding eg
cluster:
    tmpdir: /somewhere/

in either .cgat.yml or pipeline.yml files will print the value.
Best,
Antonio

I forgot to add:
Setting cluster_tmpdir in one of the yml files will give a similar error:
mktemp: failed to create directory via template ‘/tmp/tmp.XXXXXXXXXX’: Permission denied

I haven't looked at this properly but can send more info.
Best,
Antonio

Hi Antonio,
When I place your pipeline.yml file in my working directory with:
######################################################
# pipeline_template.py configuration file
# Add pipeline specific options into separate sections
######################################################

# General options:
general:
    author_name:
    project_name:
    licence:
    version:

# Pipeline specific options:
pipeline_template:
    parameter_x:
    parameter_y:

cluster:
    tmpdir: /var/tmp/

Then, running the command
python -c "import os; from cgatcore import pipeline as P ; P.get_parameters(['pipeline.yml']); print(P.get_params()['cluster_tmpdir'])"

Prints out: /var/tmp/
Since the path to the temp folder in PBS is dynamically stored in TMPDIR, could you please try using a pipeline.yml with the following instead:
cluster:
    tmpdir: $TMPDIR

and let me know how it goes.
Best regards,
Sebastian

Hi Sebastian,
I get:
python -c "import os; from cgatcore import pipeline as P ; P.get_parameters(['pipeline.yml']); print(P.get_params()['cluster_tmpdir'])"
$TMPDIR

Patience is a virtue.... Thanks and apologies! I had already tried this but got in a mix with other errors. Regardless, this works with the ctmXXX.sh scripts when qsub'ing them (the temp files are created and scripts do not error).
With pipelines on the cluster I'm still getting the second error though ValueError: too many values to unpack (expected 2).
I'll close this now and report separately once I look a bit more into it. It is a problem my side though as I get it with different pipelines.
Thanks again,
Antonio


[checkbox]: adds optional selected options

Hey @arlimus I added an option to the checkbox to start with some options already selected.
I'd appreciate if you can merge it if you like it.
thks..

@blackjid Great addition, thank you again :)
Could you maybe change the syntax to be:
Ask.checkbox "Enter list...", list, default: [true, false, false]

This way it wouldn't collide with the way it's used in eg input and confirm. It should also fix the tests and leave it compatible with earlier syntax. What do you think?

Awesome, thank you @blackjid !
(No worries about travis rbx-2.1, i'll update and remove next; everything else runs great)

hey thanks!, that was fast... :)
You were right, much better syntax now, and it's also consistent with the input and confirm defaults.
I totally forgot about the tests, I added a few for the defaults... https://github.com/arlimus/inquirer.rb/pull/5

oh!, can you please make a release with this feature??? I want to use it!, :)

Great point! I'll push it a bit later today, I'm currently traveling, won't take too long ;)

Oh and thanks for the added tests! Cheers :)

0.2.1 is online:
https://github.com/arlimus/inquirer.rb/releases
or
https://rubygems.org/gems/inquirer
Thank you again!

thanks to you!


Initial input does not add validation errors to onChange argument

Prerequisites

[x] I have read the documentation.

Description
When entering initial input in a liveValidation field, the errors array remains empty in the onChange event. See the following screen shots for visualization:
Initial Input:

Result after second character input:

Steps to Reproduce

Ensure liveValidation is enabled and that you've got validation setup in the schema
Enter initial input in the field to be validated
Console.log the first onChange argument, you'll see errors is still an empty array
After entering a second input, errors does contain the error

Expected behavior
The errors array should contain the error
Actual behavior
The array remains at length 0
Version
0.40.0

Seems related to #315.

Closing this issue due to inactivity, but feel free to repoen it if you have any additional questions!


Add Redo

This would require adding another Event buffer. Shortcut: Ctrl+Y
Moved from aodix-repair

For now, use Ctrl+Z twice to undo (like old notepad).


At present, the indicators of otel can not meet the actual use scenario

Area(s)
No response
Is your change request related to a problem? Please describe.
At present, the indicators of otel can not meet the actual use scenario
Describe the solution you'd like
You are advised to add the following indicators
It includes the following indicators, as well as the top3 indicators of large objects and the top3 indicators of busy threads and jmx related indicators
The following metrics may overlap with jmx
"application.ready.time",
"application.started.time",
"disk.free",
"disk.total",
"executor.active",
"executor.completed",
"executor.pool.core",
"executor.pool.max",
"executor.pool.size",
"executor.queue.remaining",
"executor.queued",
"http.server.requests",
"http.server.requests.active",
"jvm.buffer.count",
"jvm.buffer.memory.used",
"jvm.buffer.total.capacity",
"jvm.classes.loaded",
"jvm.classes.unloaded",
"jvm.compilation.time",
"jvm.gc.live.data.size",
"jvm.gc.max.data.size",
"jvm.gc.memory.allocated",
"jvm.gc.memory.promoted",
"jvm.gc.overhead",
"jvm.gc.pause",
"jvm.info",
"jvm.memory.committed",
"jvm.memory.max",
"jvm.memory.usage.after.gc",
"jvm.memory.used",
"jvm.threads.daemon",
"jvm.threads.live",
"jvm.threads.peak",
"jvm.threads.started",
"jvm.threads.states",
"logback.events",
"process.cpu.time",
"process.cpu.usage",
"process.start.time",
"process.uptime",
"system.cpu.count",
"system.cpu.usage",
"tasks.scheduled.execution",
"tasks.scheduled.execution.active",
"tomcat.sessions.active.current",
"tomcat.sessions.active.max",
"tomcat.sessions.alive.max",
"tomcat.sessions.created",
"tomcat.sessions.expired",
"tomcat.sessions.rejected"
Describe alternatives you've considered
No response
Additional context
No response

There are also network and disk related metrics


Provision a machine for running WR benchmarks.

The main requirement is that it be on real hardware (so that test runs over time are consistent).
If it has a GPU available, that's a bonus but not required right now.
Either Linux or Mac are fine - the main requirement is SSH access for me. If Linux, running 16.04 LTS probably makes sense.

Is an interim (months or 1-2 years) machine ok for this, or should we be looking at a permanent (physically owned by the project) system?
If the former is ok, we can provision a macstadium builder. The only drawback to macstadium is that we might have to migrate to another host with the same specs at arbitrary times if their datacenter logistics require it.

An interim machine would be fine, for now. Migrating to another machine should be relatively straightforward, I think.

@edunham Any updates on this?

ping @edunham

ok after going around with IT a few times it turns out it's gonna have to live under someone's desk after all; hardware req is in at ServiceNow REQ0052233


[Feature Request] Add property to add content above or below the list

It would be nice to add a custom header or footer to the list for increased usability. Optional props that takes a function and returns jsx would do the trick.

I did not read the full documentation. This is a supported inherited prop from FlatList
https://reactnative.dev/docs/flatlist#listfootercomponent


Changes all stubbed assertions to fail

See #1843. Because these cases have more than just the assertion, they won't fail if these assertions are simply removed. As such, I've explicitly set them to fail so we have a better idea of what our test coverage is. It's going to be well fun getting back to a state where tests pass... :weary:
This shouldn't probably be merged for the moment until we agree this is the best course of action at the moment.

Current coverage is 64.04% (diff: 100%)

Merging #1844 into master will not change coverage

@@             master      #1844   diff @@
==========================================
  Files             1          1
  Lines          4400       4400
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           2818       2818
  Misses         1582       1582
  Partials          0          0

Powered by Codecov. Last update 223404a...e125df0

Closing in favor of #2050


Make generic breaks on collapsed blocks

Describe the bug
Using the Make Generic menu option on a collapsed block breaks the block and the undo stack.
Affects

[ ] Designer
[x] Blocks editor
[ ] Companion
[ ] Compiled apps
[ ] Buildserver
[ ] Other... (please describe)

Expected behavior
Make Generic should properly update a collapsed block and the operation should be undoable with Undo command.
Steps to reproduce

Create a button
Create the Button1.Click event handler
Collapse the event handler
Right click on the block and select Make Generic
Attempt to interact with the block.

For examples see https://community.appinventor.mit.edu/t/a-problem-about-make-generic/1480?u=ewpatton

This sounds like an interesting problem, but I feel like it needs a design decision so I wanted to post before working on it.
For solutions I can think of a few options:

Expand the block, modify it, and then collapse it again.
This is the most visually appealing option, but it may lock up the interface because collapsing and expanding can be expensive. Testing this on the Blockly playground with the Spaghetti test blocks (one 3066 block stack) I got an average time of ~1120ms.
Change the "Make generic" option to an "Expand and make generic" option.
This would expand the block and modify it, but not re-collapse it. It might be a good compromise between 1 & 3.
Disable the "Make generic" option if the block is collapsed.
This is probably the simplest solution, but it's possible that it would be confusing for users.

There could be other options as well, those are just the three that sprung to mind.
I'm happy to work on whichever option sounds best to you guys!

Maybe a variant of 1: What happens if we call initSvg() and render() on the block after the Make Generic call?
Also, we have a mechanism in App Inventor's version of Blockly to only rerender a single block rather than the whole workspace. Using that will likely have better performance as changing the text on the collapsed block shouldn't force a rerender of the entire workspace.

@BeksOmega See WorkspaceSvg.requestRender(block)

Maybe a variant of 1: What happens if we call initSvg() and render() on the block after the Make Generic call?

Just tested this and it doesn't look like its going to work :/ First bad thing is that the renderDown() function doesn't re-render if the block if it is collapsed. Second bad thing is that Blockly's collapsing system is just weird. All of the inputs still exist, they're just not visible so they won't rerender.
Alternative suggestion (that is hopefully more efficient):
Refactor render() so that if the block is collapsed an updateCollapsed() or rerenderCollapsed() function gets called, instead of doing the normal render. This new function sets all inputs' visibility to false, and then calls toString() and updates the text on the collapsed-input.
This should be much better because toString is waaay faster. And we won't have to edit the "Make generic" function at all. Editing collapsed blocks will just work.
Not sure why I didn't think of this before. Hopefully I'm not forgetting something that I remembered earlier hehe. But I think it should work!
What do you think of that solution?

Are these updateCollapsed and rerenderCollapsed methods functions that you are proposing to add, or are they in a newer version of Blockly (keep in mind we are 3 years behind at this point).

Are these updateCollapsed and rerenderCollapsed methods functions that you are proposing to add, or are they in a newer version of Blockly (keep in mind we are 3 years behind at this point).

These are functions I'm proposing. But I do think that if it works these would be a great thing to push back to core. It would be really nice be able to edit collapsed blocks without having to expand them first.

@BeksOmega Also take a look at renameCollapsed in blocklyeditor/src/utilities.js. It's responsible for updating the names of variables inside of collapsed blocks. We might be able to repurpose it or write a similar method that can be used in this case. I think it's essentially the combined functionality of your two proposed functions. What do you think?

Also take a look at renameCollapsed in blocklyeditor/src/utilities.js.

So I did look at renameCollapsed! But before I talk about that I wanted to back up and redux what I said before, because I did a bad job communicating the first time.
So the rough idea is to change rendering to work like this:

Everything is the same until renderHere.
If the block is collapsed an updateCollapsed_() function is called at the beginning of renderHere
This function updates the collapsed string & hides any new inputs/icons so the block is ready to be rendered.
Rendering continues as normal.

What's great about hooking the fix to the render call is that it works automatically. -- That's the one problem I see with the other method, that you have to remember to call it.
... I may have also done a bit of sneaky coding and it seems to work well:

You can check out my branch here. As you can see, it works even though I didn't touch the component blocks at all.
I'm totally cool with doing it the other way, I just think this might be a bit more future proof.
Would you be willing to look at a PR for this after I do a bit more testing? Or should I give repurposing renameCollapsed a shot?

Giving this the gentlest of bumps.
I won't bump this anymore, I just realized I forgot to @ewpatton on the above, so I wanted to rectify that =)

@BeksOmega That sounds like a reasonable approach. Do you want to make a first pass at implementing it?

@BeksOmega That sounds like a reasonable approach. Do you want to make a first pass at implementing it?

I would love to @ewpatton ! Here's an initial list of things I need to do before creating a PR:

[ ] Fix icons getting reopened when the block is expanded.
[ ] Incorporate your toString optimization from #2048
[ ] Do speed tests to ensure this is efficient.
[ ] Write unit tests? - I would love to write unit tests but I'm not sure how to do that within the current framework.

And if it works out I'll push my changes back to core as well.

@BeksOmega We are definitely interested in expanding unit test coverage, so anything you can offer here is helpful.


LimitlLess Milight as mention in website not working in home assistant but only working in there official application

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
Python release (python3 --version):
Component/platform:
Description of problem:
Expected:
Problem-relevant configuration.yaml entries and steps to reproduce:

Traceback (if applicable):

Additional info:

I successfully use milight bulbs with home-assistant. My config looks like:
light:
  platform: limitlessled
  bridges:
    - host: milight-controller-1
      groups:
        - number: 1
          type: rgbw
          name: Bedroom-side
        - number: 2
          type: rgbw
          name: Bedroom-ceiling
        - number: 3
          type: rgbw
          name: Bedroom-desk
        - number: 4
          type: rgbw
          name: Livingroom-board

Please specify what the problem is.

I used this milight wifibox Model No: ibox1 https://www.aliexpress.com/item-img/WiFi-iBox-Smart-Light-from-Mi-Light-model-iBox1/32760422947.html#  which is connected to linked to easy bulb .Exactly same Configuration.yaml .
I have added same configuration and https://youtu.be/Rlq9r2Sv6hQ procedure but through Mi-Light app is Working fine But Home asssistant is not able to communicate . @ -host : milight-controller-1 is this apn Linked Ip address ?

Is it the same mi.light app as used for the "normal" controllers: https://play.google.com/store/apps/details?id=com.lierda.wifi?
Maybe its a new protocol. They also have a 3.0 app which says "This new app cannot work on Mi.light2.0 wifi box.It's compatible with new WiFi IBox1." - so maybe they just changed the protocol.

Yes i have read that they have changed the protocol with their new rgbww lights and with their wifi ibox. Someone might need to look into this to get it to work with the new box.
Sidenote: janLo do you have any connection dropping issue with your milight wifi box?

It's the new protocol LimitlessLed V6.0 that come in the new iBox Bridge.
A topic was already open on the forum:
https://community.home-assistant.io/t/update-limitlessled-milight-component-v6-bridge-ibox/6248
As well as an issue for the LimitlessLed Python module used by Home-Assistant:
https://github.com/happyleavesaoc/python-limitlessled/issues/7
As for now, the latest MiLight controller are not compatible with Home-Assistant.

It's the new protocol LimitlessLed V6.0 that come in the new iBox Bridge.
A topic was already open on the forum:
https://community.home-assistant.io/t/update-limitlessled-milight-component-v6-bridge-ibox/6248
As well as an issue for the LimitlessLed Python module used by Home-Assistant:
happyleavesaoc/python-limitlessled#7
As for now, the latest MiLight controller are not compatible with Home-Assistant.


Arabic translation of Intermediate Algorithm Scripting

[ ] Sum All Numbers in a Range
[ ] Diff Two Arrays
[ ] Roman Numeral Converter
[ ] Where art thou
[ ] Search and Replace
[ ] Pig Latin
[ ] DNA Pairing
[ ] Missing letters
[ ] Boo who
[ ] Sorted Union
[ ] Convert HTML Entities
[ ] Spinal Tap Case
[ ] Sum All Odd Fibonacci Numbers
[ ] Sum All Primes
[ ] Smallest Common Multiple
[ ] Finders Keepers
[ ] Drop it
[ ] Steamroller
[ ] Binary Agents
[ ] Everything Be True
[ ] Arguments Optional

working on it

Closed in favor of https://github.com/FreeCodeCamp/TranslationExpansion/issues/46 @3laa-Khalil-Alarabi @muteb1 please continue discussion on that thread.


Istio-Proxy fails to start with K8S Egress NetworkPolicy

(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit https://istio.io/about/security-vulnerabilities
To ask questions about how to use Istio, please visit https://discuss.istio.io)
Bug description
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[x] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Expected behavior
With egress network policy, the istio-proxy container should come up.
Steps to reproduce the bug
Set of commands to reproduce the issue:
kubectl create ns t1
kubectl label ns t1 nsname=t1ns

kubectl create ns t2
kubectl label ns t2 nsname=t2ns

kubectl create ns t3
kubectl label ns t3 nsname=t3ns

kubectl -n t1 apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx1
  labels:
    app: nginx1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx1
  template:
    metadata:
      labels:
        app: nginx1
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx1
  name: nginxs1
spec:
  type: ClusterIP
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: nginx1
EOF

kubectl -n t2 apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx2
  labels:
    app: nginx2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx2
  template:
    metadata:
      labels:
        app: nginx2
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx2
  name: nginxs2
spec:
  type: ClusterIP
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: nginx2
EOF

kubectl -n t3 apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx3
  labels:
    app: nginx3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx3
  template:
    metadata:
      labels:
        app: nginx3
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx3
  name: nginxs3
spec:
  type: ClusterIP
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: nginx3
EOF

Create a network policy and apply it on t1 namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: t1-netpol
  namespace: t1
spec:
  egress:
  - to:
    - namespaceSelector:
        matchLabels:
          nsname: t2ns
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          nsname: t3ns
      podSelector:
        matchLabels:
          app: nginx3
  podSelector:
    matchLabels:
      app: nginx1

Restart nginx1 deployment. Istio-Proxy sidecar does not come up, however the nginx container comes up. If you set 1proxy.istio.io/config: '{ "holdApplicationUntilProxyStarts": true }'` annotation then nginx container will also not come up since it will then wait for the istio-proxy container to come up.
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)

istioctl version                                                                                git:master*
client version: 1.9.1
control plane version: 1.9.1
data plane version: 1.9.1

kubectl version --short
Client Version: v1.21.0
Server Version: v1.17.17
testing
Environment where the bug was observed (cloud vendor, OS, etc)
Kubernetes

Additionally, please consider running istioctl bug-report and attach the generated cluster-state tarball to this issue.
Refer cluster state archive for more details.

nginx1-5fb6bf9d75-xrz44.log
Attaching the logs from the istio-proxy container.

The readiness probe fails with the following message:
Readiness probe failed: HTTP probe failed with statuscode: 503

Pods need to be able to talk to kube-dns and istiod to start.

I tried to add an additional egress rule to allow traffic to namespaceSelector for istio-system. The issue is that if an egress rules explicitly requires to allow istio-system then all containers within a pod will get access to privileged namespaces like kube-system (where dns pods are running) and istio-system (where istiod is running). This makes using egress not possible.

Can you call curl https://istiod.istio-system:443 from the pod? if not perhaps your rules are set up wrong still

I was able to change the network policies to make this work. I will close this issue now.

To help anyone else who also faces this issue, following are the network policies that i applied. Please check the labels in your own setup and make changes accordingly.
Allow egress to kube-dns in order to use cluster DNS
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-dns-access
  namespace: t1
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
    - ports:
        - protocol: UDP
          port: 8053
        - protocol: TCP
          port: 8053
      to:
        - podSelector:
            matchExpressions:
              - key: k8s-app
                operator: In
                values:
                  - kube-dns
          namespaceSelector:
            matchLabels:
              gardener.cloud/purpose: kube-system

Allow egress to istiod
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-egress-to-istiod
  namespace: t1
spec:
  podSelector: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - namespaceSelector:
        matchLabels:
          name: istio-system
      podSelector:
        matchLabels:
          istio: pilot

Allow egress to t2ns namespace only
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-egress-to-t2ns
  namespace: t1
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - namespaceSelector:
        matchLabels:
          nsname: t2ns
      podSelector: {}

Allowing ingress from nginx3 only
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-ingress-from-nginx3
  namespace: t1
spec:
  podSelector:
    matchLabels:
      app: nginx1
  ingress:
    - from:
      - podSelector:
          matchLabels:
            app: nginx3
        namespaceSelector: {}


Bump jetty version

What changes were proposed in this pull request?
Bumping the verson of jetty to 9.4.8.v20171121.

Thanks for your interest in palantir/spark, @bkrieger! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.

@robert3005 for review.

@robert3005 looks like this doesn't trigger a Circle build?

@bkrieger we don't build forks (to avoid leaking the publish creds).  Can you please 1) join the public Palantir GitHub group and then 2) send this PR from a branch in this repo, rather than a separate repo?

Closing in favor of https://github.com/palantir/spark/pull/296.


tunnel: document tcp tunnels (+example)

Hi,
Does this package support raw tcp connections, so it could be used with ie. ssh? If so, how can i achieve this?

Hi @krzysztofantczak
Not yet, however it's simple to add them, because we do actually use TCP connections for the control channel, which is responsible of managing the tunnels between a client and server. I'll let this issue open so we can tackle it once later or soon.

@krzysztofantczak Support for TCP tunnels just landed in master, I'm going to close this issue once we have it documented in readme.

Cool :)

Is there any progress on this issue?


Redeploy apps when secrets are rotated

Depends on https://github.com/alphagov/paas-s3-resource/pull/10
Trello: https://trello.com/c/LKgHd7ph/523-redeploy-apps-when-their-secrets-are-rotated
This adds an s3-iam resource that gives access to S3 buckets
in our AWS account (as opposed to the AWS account owned by
the team behind Big Concourse).
The frontend-deploy-event-trigger Concourse job will redeploy
the frontend app whenever a new object is placed in the frontend
bucket in deploy-events-((workspace)).
The intent is for the Secret Rotation Lambda to place a timestamped
file into the bucket whenever a secret an app uses is rotated,
triggering the app to be redeployed and the env var secrets for the
app's tasks to be refreshed from SecretsManager.
Screenshots:
Lambda places a file in an S3 bucket after rotating a secret:

Concourse resources checks for objects in the S3 bucket, triggering the deploy jobs:

Thanks all for your reviews. I've reset concourse/parameters/test/deploy.yml to what is on main.


请问有添加歌曲到播放列表的api吗？

因为我不想刷新页面或者重新new APlayer

我也这么想

所以还请务必加上这个重要的api

It's a great suggestion, I will do it when I have some time.

@DIYgod I'm so sorry to tell you this, but in fact, if @DIYgod say "sometime", that's means never.
😞

@liwanglin12 It means sometimes naive...🌚

@metowolf Magic of nature, the continuity of lasting🌚

Done. https://github.com/DIYgod/APlayer/commit/cbc0f99eeeb1fefdf574892fbb607a8925742697

(悲喜交加

@DIYgod 女装啊！女装！太遗憾了！


Add RobustLocalResource

@JuliaRegistrator register
Release Notes:

Add RobustLocalResource

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.


Generating the same sentence embedding for all-MiniLM-L6-v2 using candle

https://github.com/huggingface/candle/blob/25ec2d9f6bf36ff51c04f54f6c243828f6f4a8da/candle-examples/examples/bert/main.rs#L164-L167
The BERT sentence embedding example is using a pooling strategy that generates a different sentence embedding compared to using either the HuggingFace API, or alternative ways of running the model locally.
I would be interested in getting the same result, and I suspect it's in the pooling strategy that should be used.
Any pointers would be helpful.
Thanks!

Thanks for reporting this. Would you mind providing some python and rust snippet of the code that you ran so that it's easier to reproduce the issue on our side?

The code above generates the embeddings using candle.
The simplest way to compare it with the expected output is by using the HF API:
$ curl https://api-inference.huggingface.co/pipeline/feature-extraction/sentence-transformers/all-MiniLM-L6-v2 -X POST -H "Authorization: Bearer hf_XXX" -d "Sample sentence"

Did you normalize the embedding? When I did that it candle matched the output from rust-bert exactly.

couldn't get results to match even after the normalization. Could you please provide an example of the normalization using Candle?

Sure, this is the code I'm using:
        let token_ids = Tensor::stack(&token_ids, 0)?;
        let token_type_ids = token_ids.zeros_like()?;
        let embeddings = self.model.forward(&token_ids, &token_type_ids)?;

        // Apply some avg-pooling by taking the mean embedding value for all tokens (including padding)
        let (_n_sentence, n_tokens, _hidden_size) = embeddings.dims3()?;
        let embeddings = (embeddings.sum(1)? / (n_tokens as f64))?;

        let mut results: Vec<Vec<f32>> = Vec::new();
        for j in 0..n_sentences {
            let e_j = embeddings.get(j)?;
            let mut emb: Vec<f32> = e_j.to_vec1()?;
            normalize(&mut emb);
            results.push(emb);
        }

With normalize defined as:
pub fn normalize(v: &mut Vec<f32>) {
    let length: f32 = v.iter().map(|x| x * x).sum::<f32>().sqrt();
    v.iter_mut().for_each(|x| *x /= length);
}

See https://github.com/dawn-search/dawnsearch/blob/main/src/embedding/embedding_service.rs

After normalizing the embeddings, I am getting consistent results across the implementations.
Thanks!

I think it would be good to update the example to use normalized embeddings, as I think that's what most people will be using. I can give that a try later.

I've just merged #390 which adds some optional embedding normalization to the bert example, please let us know if you still see some discrepencies.


Improvement for k8s.io/docs/setup/

Why is there no Learning environment option for GKE? I would want to learn on the platform where I would host in production later, not learn on one environment and then deploy on another.
Thanks!

/kind feature
That's an interesting suggestion @adammil2000! I think it depends what someone wants to learn. Maybe they want to learn Kubernetes well enough to implement their own cluster, and then pick a vendor-managed service so they don't actually have to.
If you wanted to study toward CKAD, you could do that using most vendor-managed cluster types I think. At the moment the website isn't clear about what that path might look like.

/priority backlog


no index.html

it doesn't create a index.html file even though it is supposed to and installed correctly.
here is the log:
`npm install
npm WARN deprecated<EMAIL_ADDRESS>gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
npm WARN deprecated<EMAIL_ADDRESS>jvectormap is not maintened since Aug 2015. You can use jvectormap-next or jqvmap instead.
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>This module relies on Node.js's internals and will break at some point. Do not use it, and update to<EMAIL_ADDRESS>npm WARN deprecated<EMAIL_ADDRESS>Critical bug fixed in v2.0.1, please upgrade to the latest version.
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js

<EMAIL_ADDRESS>install path/node_modules/node-sass
node scripts/install.js

Cached binary found at /root/.npm/node-sass/4.12.0/linux-x64-72_binding.node

<EMAIL_ADDRESS>postinstall/ path/node_modules/core-js
node scripts/postinstall || echo "ignore"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:

https://opencollective.com/core-js
https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

<EMAIL_ADDRESS>postinstall /path/node_modules/node-sass
node scripts/build.js

Binary found at /path/node_modules/node-sass/vendor/linux-x64-72/binding.node
Testing binary
Binary is fine
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN<EMAIL_ADDRESS>No repository field.
npm WARN<EMAIL_ADDRESS>No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
added 730 packages from 714 contributors and audited 6626 packages in 33.239s
found 6 vulnerabilities (1 low, 1 moderate, 4 high)
run npm audit fix to fix them, or npm audit for details
`
What goes wrong?

Please download the latest version and ty again. Please feel free to reopen this thread if the issue still occurs.


Added support for new backend system (graphql)

Hey, I just made a Pull Request!

This adds support for the new backend system for the Graphql backend plugin
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Hey @Josh-Uvi, we're actually in progress of deprecating these packages in favour of some work done over in frontside instead.
https://github.com/backstage/backstage/pull/20523

Hey @Josh-Uvi, we're actually in progress of deprecating these packages in favour of some work done over in frontside instead.
#20523
Apologies, but going to have to close this PR unfortunately, as don't think we're going to keep them around 😅

Hi @benjdlambert, is help still needed to migrate backend plugins to the new backend system?


use cookie on server too (instead of event.context)

reopened version of #50
Firstly I restored the initial pr without the requested changes.
Could you clarify what the advantage of using the event.context[accessTokenCookieName] would be?
If it's not needed anymore, I wouldn't decide between server and client just to use the h3's cookie method 🤔

Hi, event.context is currently needed, you can go back to the previous PR #50


Not print all ignored files inside ignored folders

These changes will remove the long file list output when you do appix push --verbose.  If a sub folder is ignored, child files won't show up in the output, making it better for product teams to report errors with verbose output.

Did you test this on your machine before merging? For me this breaks the zap creation, for every folder it creates an empty file with the same name, and that makes the bundling fail:

If it is working for you, then maybe it's a Windows-specific problem. If that's the case, ping me and I'll investigate.

@alexmiranda ok, found the problem, this piece of code was removed from ZipFolder:
if isDir {
    relPath += "/"
}

And because of this we are creating an ui entry in the zip file instead of ui/.
I'll fix this in TR-12984

@markvincze both problems have been fixed in PR-38


Fix path name

This should fix the netlify docs build errors

Do you know where that menu is generated? Because the build console is indicating that this change fixed at least the aforementioned issue: https://app.netlify.com/sites/pachyderm-docs/deploys/5e722e90518f790009610675

Ah! I see, there's two loops - going to try another fix.

Looking good now!


Convert load of api/examples/pod.json into native Go definition of the api.Pod

This is another step in removing external dependencies of the Go e2e tests.
Remove references to this file on list of files required to run e2e tests.
Also use an unique name for the pod, so that failure in cleanup of a
previous run should not break a new run with a name conflict.
Tested by running cmd/e2e -t TestPodUpdate against an API server in GCE.
@satnam6502

Why don't we let #3942 in first since you know @rrati is working on it? We're almost out of core support hours, and past their workday, seems kind of rude to force a rebase when he's close.

Let's hold on the merge until Monday.

For future reference:

We should delete api/examples. They're woefully out of date.

While it's done all over now, we really shouldn't be creating objects using the internal representation. They need to be changed every time we change anything, and they're not going to be valid objects necessarily once #3854 is merged. If you do more similar changes where complex objects are created, we should hash out an alternative.

We need a way to do this for tests. I was actually happy with the loaded
asset files, though they're external. We could use inline yaml if that's
the only advantage, though.
On Jan 30, 2015 5:47 PM, "Brian Grant"<EMAIL_ADDRESS>wrote:

For future reference:

We should delete api/examples. They're woefully out of date.
2.
While it's done all over now, we really shouldn't be creating objects
using the internal representation. They need to be changed every time we
change anything, and they're not going to be valid objects necessarily once
#3854 https://github.com/GoogleCloudPlatform/kubernetes/pull/3854 is
merged. If you do more similar changes where complex objects are created,
we should hash out an alternative.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3995#issuecomment-72298738
.

@bgrant0607 @zmerlynn @satnam6502 See discussion in #4004. In short, I don't think using JSON/YAML as input is really acceptable because we want to parameterize. Treating JSON/YAML as strings and doing interpolation/replacement is unacceptable. I would go for generating them from an object/map representation, but then how is that essentially different from using the internal representation directly? One possibility would be using the versioned internal representation and calling the conversion methods, I think that would be a good alternative.

Could we not just a tool that re-writes Go programs to update the literal structs?

We don't literally need to use JSON/YAML, just the versioned structs.

@bgrant0607 : I did not realize we were using an internal representation in these structs. Please can we follow up elsewhere about how we can go forward to use "versioned structs" (I don't know what that means right now). In the meantime I think we should merge this.

@satnam6502 I think that simply means using:
import (
        api "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2"
)

Or v1beta1 or v1beta3, not sure what's the one that's recommended the most here...
Cheers,
Filipe

Let's wait from @bgrant0607 to comment in case there is a chance to easily/quickly adapt the literal struct.

Yes, I'd interpret that the same way as Filipe.
I wouldn't use v1beta2. v1beta3 would be ideal, but I don't know how stable it is yet.

Sorry, nevermind. We're not quite ready to use the versioned structs directly yet. Basically, we need a function like Decode or DecodeInto, but which just does the one-line conversion here:
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/conversion/decode.go#L123
Just use the internal object for now and we'll fix it in the defaulting PR.

Well, Convert might actually work:
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/pkg/conversion/scheme.go#L218
But we don't have any examples of using it in tests that I can find, so just punt for now and we'll solve the problem holistically later.

v1beta3 should be more stable than the internal structs.

You missed something. Jenkins is failing to load api/examples/pod.json right now.

Oh, n/m, @rrati missed it on rebase. :/


Scheme not working

Neither scheme in the readme work.

Hi @loadxf,
I turned off server with mail4gpt.com domain, so schema from readme is not working. If you would like to try the code from this repo you need to setup your own server with domain or try solution with notebooks as rest api.


Use trunk binutils for demangling and objdump of trunk gcc and clang compilers

Closes #1946

I'm testing on /staging atm, it seems that clang_trunk doesn't support it yet, but clang std::embed does?


Multiple App versions in the footer

On Dev we have multiple App version blocks in the footer:

We still have two App Versions on the Requests Tab:

@funtigr the dev is failed to deploy the changes.

Fixed


Adding selection condition to hal.executable.variant.

This allows for variants to declare host logic that determines whether the variant should be selected for loading. When multiple variants are available their declared conditions will be evaluated in op order along with the existing executable format match.
Unfortunately the MLIR SymbolTable trait disallows multiple regions on any op holding it so a new hal.executable.condition region op was added that may be optionally present on any hal.executable.variant. Ideally we clean this up and make it an optional region but that'll need relaxing of upstream assertions like https://sourcegraph.com/github.com/llvm/llvm-project/-/blob/mlir/lib/IR/SymbolTable.cpp?L122-123 (ideally either treating region 0 as the symbol table on ops or having an interface override for selecting the region ala getCallableRegion such as getSymbolTableRegion).
This removes the hal.device.switch op in favor of scf.index_switch. When we start running const expr hoisting during the HAL pipeline this should allow variant selection to be completely hoisted to initialization time (or at least memoized per device). There's decent low-hanging future work on optimizing the ranking/selection and improving scf.index_switch hoisting/canonicalization to make things better.

This is merging from benvanik-vm-switch to benvanik-cond-variants. Is this intentional?

ah ok nice, I misread the ordering of branches.


fix broken expo publish for bootstrapper

@paribaker — Can you provide more context on this issue? Maybe this was already fixed?


Time Delta

When users post an update on social media,such as a URL, image, status update etc., other users in their network are able to view this new post on their news feed. Users can also see exactly when the post was published, i.e, how many hours, minutes or seconds ago.
Since sometimes posts are published and viewed in different time zones, this can be confusing. You are given two timestamps of one such post that a user can see on his newsfeed in the following format:
Day dd Mon yyyy hh:mm:ss +xxxx
Here +xxxx represents the time zone. Your task is to print the absolute difference (in seconds) between them.
Input Format
The first line contains T , the number of testcases.
Each testcase contains 2 lines, representing time t1  and time t2 .
Constraints

Input contains only valid timestamps
year ≤ 3000

Output Format
Print the absolute difference (t1-t2)  in seconds.
Sample Input
2
Sun 10 May 2015 13:54:36 -0700
Sun 10 May 2015 13:54:36 -0000
Sat 02 May 2015 19:54:36 +0530
Fri 01 May 2015 13:54:36 -0000

Sample Output
25200
88200

Explanation
In the first query, when we compare the time in UTC for both the time stamps, we see a difference of 7 hours. which is 7x3600  seconds or  seconds.
Similarly, in the second query, time difference is 5 hours and 30 minutes for time zone adjusting for that we have a difference of 1 day and 30 minutes. Or 24 x 3600 + 30 x 60 => 88200

I would like to solve this. Please assign me this problem @ndrohith09.

@Yogiraj587 you have been assigned.

I would also like to contribute and solve this issue/question . Can you assign me this one @ndrohith09

jaichiranjeeva

can you specify your coding language in which you wish to contribute

I would like to solve using python

jaichiranjeeva

can you specify your coding language in which you wish to contribute

I have done it in python without any libraries / modules . Will try to contribute in java


Set cmake version to include file(COPY_FILE) #234

As mentioned in #234 I've propose upgrading cmake minimum to 3.21

Thanks for notifying us for this issue.
CMake 3.21 is too new though because current LTS Linux distributions are shipped with a CMake version < 3.21.
In https://github.com/libsdl-org/SDL_ttf/commit/c5478b14d639afc405f03c5bbdddbde58b4981bb, I replaced the file(COPY_FILE) with an execute_process(COMMAND "${CMAKE_COMMAND} -E COPY)


Improve workflow for modifying user and workspace settings.

Settings management between user and workspace tabs is cumbersome. There's no way to apply a value between the two (if you are mistakenly on the wrong tab, for example). This has also led to issues with state management (https://github.com/microsoft/vscode/issues/148709 & https://github.com/microsoft/vscode/issues/165175).
It would be great to see settings displayed in a non-tabbed fashion. I don't know the correct answer, but perhaps like app configurations in Azure?

Closing as out of scope because there are other tabs that could show up in other contexts. I think that a non-tabbed configuration could work if the only scopes were User and Workspace, but there are also Remote, Workspace Folder, and language-specific scopes that sometimes show up.


Add Indic STS benchmark dataset

Checklist for adding MMTEB dataset

Reason for dataset addition:

[x] I have tested that the dataset runs with the mteb package.
[x] I have run the following models on the task (adding the results to the pr). These can be run using the mteb run -m {model_name} -t {task_name} command.

[x] sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
[x] intfloat/multilingual-e5-small

[x] I have checked that the performance is neither trivial (both models gain close to perfect scores) nor random (both models gain close to random scores).
[x] If the dataset is too big (e.g. >2048 examples), considering using self.stratified_subsampling() under dataset_transform()
[x] I have filled out the metadata object in the dataset file (find documentation on it here).
[x] Run tests locally to make sure nothing is broken using make test.
[x] Run the formatter to format the code using make lint.
[ ] I have added points for my submission to the points folder using the PR number as the filename (e.g. 438.jsonl).

Add Semantic Textual Similarity benchmark between English and 12 high-resource Indic languages.
Team:

Diganta Mista (@digantamisra98) - MILA
Jay Gala (@jaygala24) - AI4Bharat

Points Summary:
This is the first dataset for Indic languages in the STS task category. Thus, all the 12 Indic languages are new ones for this task category.

This dataset = 2 pts
Any new language not covered previously in STS task = 4 pts x 12 languages

Total points = 2 + 4 x 12 = 50 pts


使用docker编译starrocks报错

1、按照git的安装步骤执行如下：
docker run -it
-v /{local-path}/.m2:/root/.m2
-v /{local-path}/starrocks:/root/starrocks
--name {container-name}
-d starrocks/dev-env:{version}
docker exec -it {container-name} /bin/bash
cd /root/starrocks
sh build.sh
2、docker中编译出现的错误，环境是mac

Because your mac is M1, we only support compiling on intel chip

From the screenshot, the build process(specifically g++) was killed somehow, probably because of OOM(you can check by show dmesg).
And whether M1 can build StarRocks or not is another issue.

https://github.com/StarRocks/docs/blob/main/administration/Build_in_docker.md#faq


EWC integration?

Does tensorforce have any plan to integrate Elastic Weight Consolidation  to overcome the catastrophic forgettings in the neural networks?
I don't find any notes if it is already implemented or is it actually needed or not.

It's not on the roadmap for the near future, but if you want to look into it, a PR is always welcome (and we try to be of help on the way).


Publish version more info

Publish new version with more package info on pypi

Accidentally bumped to 0.1.4


Bump JNA to 5.8.0

Fixes #320

@eed3si9n Thanks! Are you planning to merge this for the next release?

Note that 1.5.x series is already branched out to 1.5.x, so merging this to develop branch doesn't necessarily mean it will be part of the next release. I am not sure how safe it would be to upgrade JNA without going through RC cycle. It might address this issue, but it could break some other plugin?
sbt transitively also depend on JNA via sbt/ipcsocket, and I've actually released ipcsocket 1.3.1 and ipcsocket 1.4.0 so I don't introduce JNA upgrade in 1.5.x. One potential workaround might be to release sbt 1.6.0-M1 or fix the nightly build.


api improvements: project update + project details

Currently, updating a project is not possible, but the functionality is needed e.g.

when project owner changes
when project comment needs an update

-> we need update project functionality
When getting project details (https://daimler.github.io/sechub/latest/sechub-restapi.html#section-usecase-UC_021), the project comment is missing.
-> please add the field to the result json
related to: #332

Duplicate of https://github.com/Daimler/sechub/issues/97

Thanks for the hint.
It's only partly duplicate.

@sven-dmlr  I updated the issue so it contains only the comment part. So we can work parallel on #97 and this one


Adding a new error type / Fix Docs links

This PR provides following things:

add a new error MISSING_ORDERNUMBER in case there is no ordernumber given in getArticleByOrdernumber
Fixes the anchor links in README to docs
adds a doc for getArticleByOrderNumber

Awesome! Thanks for this PR. 🙏


Add hostname option to set the interface to bind to

This just amends mscharley's PR #289 by he changes that were requested over there.

Seeing that you merged in master @felixfbecker, is there anything more I should do?

Well the build is not passing and I'm not sure why

@felixfbecker as mentioned above, installing php via brew fails (this is a problem of the CI not of the code). I am not well versed with brew so I cannot help much there but it sounds like this version is not available anymore, so you probably need to do a php version bump on the recipe.

@felixfbecker There I fixed it for you

@felixfbecker Is there anything more needed?

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


Implement github oauth2

[x] Setup ueberauth's
[x] Create or get authenticated user and put it into session
[x] Create authentication plug and pipeline
[ ] Add sign in button to navbar

Codecov Report

Merging #83 (e56a2c0) into dev (ccd0096) will decrease coverage by 4.42%.
The diff coverage is 37.50%.

@@             Coverage Diff             @@
##               dev      #83      +/-   ##
===========================================
- Coverage   100.00%   95.57%   -4.43%
===========================================
  Files            8        8
  Lines          107      113       +6
===========================================
+ Hits           107      108       +1
- Misses           0        5       +5

Impacted Files
Coverage Δ

apps/publishing/lib/publishing/manage.ex
92.42% <37.50%> (-7.58%)
:arrow_down:

Continue to review full report at Codecov.

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


Kubefed is heading for archival

Kubefed will be archived. We should warn about it in this repository.
https://groups.google.com/g/kubernetes-sig-multicluster/c/aZv-YuafSko

Hey, looks like it might be time to mark it as archived. Could you break down why you decided to do this? We had design discussions and ended up with almost the exact same architecture as this project, and were really excited when we found it as we were considering adoption. I'm wondering if as a group you felt this was fundamentally flawed in some way?

@hak33m16 If you like the architecture, I'd like to recommend another project to you, that is Karmada which inherits the concept of Kubefed.

Please feel free to check out https://open-cluster-management.io/ as well. It's another alternative to kubefed.

Close this issue as https://github.com/kubernetes-sigs/kubefed/pull/1532 was merged.


understand display image size

if the image size can be configured, it should be a bit bigger
in any case, the processing should produce images that are the exact size that prodigy requires

Note that "height" and "width" keys are accepted in the image_manual thing that we might want to use for that purpose

@ta4tsering what's the status with this?

@Zakongjampa is handling this issue, since I was handling the image sampling for the layout analysis

The default max-width of the prodigy image container is only 657px. I have increased the max-width of the container with up to 2000px, which makes the image larger.
Before the update

After the update

thanks! @kaldan007 can you check with the annotators what screen resolution / size they have on average so that we can produce images of a good size?

ok. i will reach out to our freelancer manager to get an idea

@eroux one team is having screen size of average 21 inch and other one 14inch(most are using laptops varying from 15inch to 13inch)

Interesting, thanks!
Generally speaking I think a 13" laptop will not be ideal for the jib but we can try
It would be helpful to have their screen width in px but for now let's assume that the value of 2000px works


Add OSCAR dataset

I don't know if tests pass, when I run them it tries to download the whole corpus which is around 3.5TB compressed and I don't have that kind of space. I'll really need some help with it 😅
Thanks!

@pjox I think the tests don't pass because you haven't provided any dummy data (dummy_data.zip).

@pjox I think the tests don't pass because you haven't provided any dummy data (dummy_data.zip).

But can I do the dummy data without running python nlp-cli test datasets/<your-dataset-folder> --save_infos --all_configs first? 🤔

You make a good point! Do you know how big is it uncompressed?

Between 7T and 9T I think.

Hi ! I've been busy but I plan to compute the missing metadata soon !
Looking forward to be able to load a memory mapped version of OSCAR :)

Hi ! I've been busy but I plan to compute the missing metadata soon !
Looking forward to be able to load a memory mapped version of OSCAR :)

Amazing! Thanks! 😄

Hi there, are there any plans to complete this issue soon? I'm planning to use this dataset on a project. Let me know if there's anything I can do to help to finish this 🤗

Yes it will be added soon :)
Recently the OSCAR data files were moved to another host. We just need to update the script and compute the dataset_infos.json (it will probably take a few days).

@lhoestq I've seen in oscar.py that it isn't a dataset script with manual download way. Is that correct?
Some time ago, @pjox had some troubles with his servers providing that dataset 'cause it's really huge. Providing it on an automatic download way seems to be a little bit dangerous for me 😄

Now thanks to @pjox 's help OSCAR is hosted on HF's S3, which is probably more robust that the previous servers :)
Also small update on my side:
I launched the computation of the dataset_infos.json file, it will take a few days.

Now it seems to be a good plan for me 🤗

But is there a plan to provide the OSCAR's unshuffled version too?

The one we have on S3 is currently the unshuffled version

I've thought that you won't provide the unshuffled version 'cause this comment on oscar.py:
# TODO(oscar): Implement unshuffled OSCAR

That TODO is normal, I haven't touched the python script in months (I haven't had the time, sorry), but I guess @lhoestq fixed the paths if he's already working on the metadata. In any case from now on, only the unshuffled versions of OSCAR will be distributed through the hf/datasets library as in any case it is the version most people use to train language models.
If for any reason, you need the shuffled version it will always be available on the OSCAR website.
Also future versions of OSCAR will be unshuffled only.

Should we close this PR now that the other one was merged?

Sure.
Closing since #1694 is merged

@lhoestq just a little detail, is the Oscar version that HF offers the same one that was available on INRIA? By that I mean, have you done any further filtering or removing of data inside it? Thanks a lot!

Hello @jchwenger, this is exactly the same (unshuffled) version that's available at Inria. Sadly no further filtering is provided, but after the latest OSCAR audit (https://arxiv.org/abs/2103.12028) we're already working on future versions of OSCAR that will be "filtered" and that will be available on the OSCAR website and hopefully here as well.

@pjox brilliant, in my case I was hoping it would be unfiltered, good news!


Index(['a', 'b'], dtype='object') instead of Index([], dtype='object') with set_index when empty categories in dataframe

I ran into categories errors; it seems that a, b categories are created into the Dask Dataframes.
It's done when using the set_index on a Dask Dataframe with empty categories columns.
It does not happen when the pandas DataFrame is already indexed.
I was expecting the same Dask Dataframe with the two code samples.
Is there a reason for this ?
a,b categories with this sample code :
import pandas as pd
import numpy as np
import dask.dataframe as dd

df = pd.DataFrame({'i':[0,1], 'col1':[None, None], 'col2':[None, 'A']})
df=df.astype({'col1':'category',
              'col2':'category'})
df1 = dd.from_pandas(df, npartitions=2).set_index('i')
print('dask', df1['col1'].cat.categories)
print('compute', df1.compute()['col1'].cat.categories)

It prints :
dask Index(['a', 'b'], dtype='object')
compute Index([], dtype='object')

No a,b categories with this sample code :
import pandas as pd
import numpy as np
import dask.dataframe as dd

df = pd.DataFrame({'i':[0,1], 'col1':[None, None], 'col2':[None, 'A']})
df=df.astype({'col1':'category',
              'col2':'category'})
df2 = dd.from_pandas(df.set_index('i'), npartitions=2)
print('dask', df2['col1'].cat.categories)
print('compute', df2.compute()['col1'].cat.categories)

It prints :
dask Index([], dtype='object')
compute Index([], dtype='object')

Environment:

Dask version: 2.19
Python version: 3.8.2
Operating System: Ubuntu 18.04.3 LTS
Install method (conda, pip, source): pip

Is there a reason for this ?

Nope, looks like a bug. Can you investigate a bit more in set_index to see what goes wrong? Most like we're inappropriately converting UNKNOWN_CATEGORIES to "known" categories with the data from meta_nonempty
In [29]: dd.from_pandas(df,2 )._meta_nonempty
Out[29]:
   i col1 col2
0  1    a    A
1  1    b    A

I did not find exactly where it comes from.
The closest I've found :
There is a really similar meta object with a, b :
dask/dataframe/core.py(5175)
meta = _emulate(func, *args, udf=True, **kwargs)
And the object with a, b is returned when these lines are executed :
dataframe/shuffle.py
map_partitions(M.set_index, df, index, drop=drop, meta=meta)
dataframe/core.py(5248)map_partitions()
new_dd_object(graph, name, meta, divisions)
dataframe/core.py(6304)new_dd_object()
get_parallel_type(meta)(dsk, name, meta, divisions)
Does it help ?

Possibly, I'm not sure. Do you intend to keep debugging this?

It seems that's the following lines (meta is 'no_default') :
/opt/conda/lib/python3.8/site-packages/dask/dataframe/core.py(5174)
if meta is no_default:
5172            # Use non-normalized kwargs here, as we want the real values (not
5173            # delayed values)
5174 ->         meta = _emulate(func, *args, udf=True, **kwargs)
_emulate returns
(Pdb) meta
col1 col2
i
1    a    A
2    b    A
Line 5190, make_meta takes the emulate metadata as input:
5190 ->     meta = make_meta(meta)
It keeps ['a', 'b'] as categories for 'col1'.


Updating the Login/Logout Flow and Fixing the Admin Flow for Functional Tests

This change is

Review status: 0 of 2 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Function composition?

Hi, apologies if this isn't the right forum for such a question - feel free to close if that's the case!
I was wondering why function composition isn't part of ReScript. I assume that it's a deliberate decision, but I couldn't find an explanation online.
A silly example
let sub = (a, b) => a-b

let sq = a => a*a

let sqLess25 = a => sub(a, 5)->sq

It would be nice to write this as something like
let sqLess25 = sub(_,5)->sq

In particular, as a relative newcomer to FP, pipe and function composition feel like 2 halves of the same coin.
A common use case would be Option.map where I find myself writing ->Option.map(x => x->foo->bar) a lot. ->Option.map(foo->bar) or Option.map(foo(baz,_)->bar) would be really nice.
I expect it would beer to be a separate operator such as >>, in order to compile unambiguously. But the above syntax better captures how I conceive of it, so thought it was useful to share.
Anyway, thanks for all your work on ReScript; it's my new favourite language 🥳

The best place to chat about this stuff is usually here: https://forum.rescript-lang.org/c/general/1
FYI, Relude covers composition outside the core language: https://reazen.github.io/relude/api/Relude_Function/


Enhancement: Collect code coverage

This PR

[x] adds a whitelist filter configuration for collecting code coverage
[x] adds a coverage target to Makefile for collecting code coverage
[x] collects code coverage on Travis CI using https://codecov.io

Codecov Report

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

@@            Coverage Diff            @@
##             master    #1824   +/-   ##
=========================================
  Coverage          ?   56.33%
  Complexity        ?     2068
=========================================
  Files             ?      306
  Lines             ?     4851
  Branches          ?        0
=========================================
  Hits              ?     2733
  Misses            ?     2118
  Partials          ?        0

Continue to review full report at Codecov.

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

Thank you, @fzaninotto and @pimjansen!

Will add this to #1847 as well!


Incomplete Information

Step 4 states "If you have Service Provider metadata file", but it doesn't tell us where we are supposed to get this from. Please provide some more details. Thanks

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

ID: f8e131bf-99d7-a850-a597-ac02b9f6c3a9
Version Independent ID: a27625d3-cf35-ffaf-5734-d1a2bbcdd60c
Content: Tutorial: Azure Active Directory single sign-on (SSO) integration with AWS Single Sign-on
Content Source: articles/active-directory/saas-apps/aws-single-sign-on-tutorial.md
Service: active-directory
Sub-service: saas-app-tutorial
GitHub Login: @jeevansd
Microsoft Alias: jeedes

@ssivas Thank you for your feedback . We will investigate and update the thread.

@v-hagamp and @chetansriv This is a valid feedback. Can you please get this updated?

Issue resolved as suggested above, please find the updated article: _https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/aws-single-sign-on-tutorial_
#please-close


feat(typescript): add TypeScript examples

Full example of TypeScript usage in both Classic and Alloy apps! 🚀

@hansemannn I'll add tslint tomorrow and then this should be ready ;)

Oh, also, you should let them know to run npm i before using the setup. I just ran into that whe n testing classic (which also works fine afterwards)!


Virtualized Autocomplete scrolling still doesn't work on Internet Explorer 11 (IE)

[ ] The issue is present in the latest release.
I reference on closed issue https://github.com/mui-org/material-ui/issues/22705. It's still doesn't work

Current Behavior 😯
Open https://material-ui.com/components/autocomplete/#virtualization in Internet Explorer 11 and open the dropdown. Then click the scrollbar and the dropdown will disappear.
Expected Behavior 🤔

Steps to Reproduce 🕹

Steps:
Start Internet Explorer 11.
Open https://material-ui.com/components/autocomplete/#virtualization
Click the autocomplete to open the dropdown.
Click on the scrollbar.
The dropdown disappears.
Context 🔦
It's broken in IE 11 only. It works fine in Chrome, for example.
Your Environment 🌎

Internet Explorer 11

Tech
Version

Material-UI Core
4.12.1

Material-UI Lab
4.0.0-alpha.60

Browser
Internet Explorer 11

Material-UI only partially supports IE 11 and doesn't intend to improve that. See Supported Platforms.

Overall, the library doesn't prioritize the support of IE 11 if it harms the most common use cases. For instance, we will close new issues opened about IE 11 and might not merge pull requests that improve IE 11 support.

@DostoevskyMF See our policy regarding IE 11 https://next.material-ui.com/getting-started/supported-platforms/#ie-11

Plus, this issue was fixed in v5, it's a duplicate of #22705.

@eps1lon The documentation in IE 11 is broken, it fails here:
https://github.com/mui-org/material-ui/blob/5a5348b7ee7726b3a542b496935363ee6df5845f/docs/packages/markdown/loader.js#L130

I would propose we don't fix it, so we don't get distracted by issues like this one. Hopefully, people will try the docs in IE 11, see that nothing works, and use a different library, or give up on IE 11.

Oh right, forgot to propose the change. Need to fix this anyway.


Bots joins then leaves Instantly

Hello,
I have this weird glitch where when certain songs are played the bot will decide to leave the channel. This is closely related to issue #83, but I have good ping. Also, some songs will play, such as some of my playlists, but when I try to search or play certain songs, it leaves the chat. I have also tried playing a playlist adding the song to the end of the queue than skipping to it and it would still leave the chat. Happy to answer any further questions.
I am on Windows 10. Started typing words in randomly to see what worked and what didn't. Most songs searched except for my playlists did not work. Most tutorials and play throughs did work however. This is a weird issue.

Okay Found out what happened. The tutorial goes in a different order than your set up. For some reason that tutorial made it not work I think. Not sure. I re downloaded everything and made sure to follow your directions worked like a charm


mdbook-variables: init at 0.2.4

https://gitlab.com/tglman/mdbook-variables is a mdbook preprocessor which replaces values in double brackets with variables set in book.toml or environment variables.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build mdbook-variables


time: time.After and time.Sleep return early on windows/amd64

What version of Go are you using (go version)?
OS: Microsoft Windows Server 2019 Standard

$ go version
go version go1.16.3 windows/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\xxx\AppData\Local\go-build
set GOENV=C:\Users\xxx\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=d:\gopath\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=d:\gopath
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16.3
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\xxx\AppData\Local\Temp\2\go-build1340947938=/tmp/go-build -gno-record-gcc-switches

What did you do?
package main

import (
	"fmt"
	"time"
)

func TruncateMinute(inputTime time.Time, minute int) time.Time {
	return inputTime.Truncate(time.Duration(minute) * time.Minute)
}

func main() {
	for {
		tickTime := time.Now()
		fmt.Printf("\ncron_tick: %v\n", tickTime)

		time.Sleep(10 * time.Millisecond)

		now := time.Now()
		nextTick := TruncateMinute(now.Add(time.Minute), 1)
		waitTick := nextTick.Sub(now)
		fmt.Printf("cron_now: %v\n", now)
		fmt.Printf("cron_next: %v\n", nextTick)
		fmt.Printf("cron_wait: %v\n", waitTick)
		//time.Sleep(waitTick)
		select {
		case <-time.After(waitTick):
		}
	}

}

What did you expect to see?
I expected time.After not to fire ahead of time
What did you see instead?
Start, there are 17.3107307s left until the start of the next minute, but ended earlier (next cycle start at 15:29:59.9998877)
cron_tick: 2021-04-15 15:29:42.6426691 +0300 MSK m=+0.003286301
cron_now: 2021-04-15 15:29:42.6892693 +0300 MSK m=+0.049887501
cron_next: 2021-04-15 15:30:00 +0300 MSK
cron_wait: 17.3107307s

Next iteration 59.9894804s left until the start of the next minute, but ended earlier (next cycle start at 15:30:59.9997131)
cron_tick: 2021-04-15 15:29:59.9998877 +0300 MSK m=+17.360879901
cron_now: 2021-04-15 15:30:00.0105196 +0300 MSK m=+17.371512001
cron_next: 2021-04-15 15:31:00 +0300 MSK
cron_wait: 59.9894804s

Next iteration 59.9897221s left until the start of the next minute, but ended earlier (next cycle start at 15:31:59.9993215)
cron_tick: 2021-04-15 15:30:59.9997131 +0300 MSK m=+77.361995801
cron_now: 2021-04-15 15:31:00.0102779 +0300 MSK m=+77.372560801
cron_next: 2021-04-15 15:32:00 +0300 MSK
cron_wait: 59.9897221s

... Skipped
Next iteration 59.9903326s left until the start of the next minute, CORRECT!!! (next cycle start at 15:41:00.000753)
cron_tick: 2021-04-15 15:39:59.999119 +0300 MSK m=+617.373498701
cron_now: 2021-04-15 15:40:00.0096674 +0300 MSK m=+617.384047301
cron_next: 2021-04-15 15:41:00 +0300 MSK
cron_wait: 59.9903326s

Next iteration 59.9886968s left until the start of the next minute, CORRECT!!! (next cycle start at 15:42:00.0000637)
cron_tick: 2021-04-15 15:41:00.0007533 +0300 MSK m=+677.376445001
cron_now: 2021-04-15 15:41:00.0113032 +0300 MSK m=+677.386995101
cron_next: 2021-04-15 15:42:00 +0300 MSK
cron_wait: 59.9886968s

Next iteration 59.9891146s left until the start of the next minute, but ended earlier (next cycle start at 15:42:59.9990432)
cron_tick: 2021-04-15 15:42:00.0000637 +0300 MSK m=+737.377059301
cron_now: 2021-04-15 15:42:00.0108854 +0300 MSK m=+737.387881301
cron_next: 2021-04-15 15:43:00 +0300 MSK
cron_wait: 59.9891146s

cron_tick: 2021-04-15 15:42:59.9990432 +0300 MSK m=+797.377335701
cron_now: 2021-04-15 15:43:00.0104573 +0300 MSK m=+797.388750001
cron_next: 2021-04-15 15:44:00 +0300 MSK
cron_wait: 59.9895427s

On Linux all good

Thanks for the detailed issue and the small reproducer! Always greatly appreciated.
CC @ianlancetaylor @prattmic @ChrisHines

cc @zx2c4 @alexbrainman @mattn

FWIW, I can't reproduce this issue on my two Windows x86-64 machines (one is Windows 10 Enterprise, another is Windows 10 Pro), using go1.16.5 built with CGO and go1.16.3 that I built myself (without CGO, as I don't have a C compiler on my machine):
cron_tick: 2021-06-08 18:07:00.003787 +0300 MSK m=+4014.475411501
cron_now: 2021-06-08 18:07:00.0210998 +0300 MSK m=+4014.492724301
cron_next: 2021-06-08 18:08:00 +0300 MSK
cron_wait: 59.9789002s

cron_tick: 2021-06-08 18:08:00.0116271 +0300 MSK m=+4074.483257601
cron_now: 2021-06-08 18:08:00.0289214 +0300 MSK m=+4074.500551901
cron_next: 2021-06-08 18:09:00 +0300 MSK
cron_wait: 59.9710786s

cron_tick: 2021-06-08 18:09:00.0098472 +0300 MSK m=+4134.481483701
cron_now: 2021-06-08 18:09:00.0266484 +0300 MSK m=+4134.498284901
cron_next: 2021-06-08 18:10:00 +0300 MSK
cron_wait: 59.9733516s

cron_tick: 2021-06-08 18:10:00.003472 +0300 MSK m=+4194.475114501
cron_now: 2021-06-08 18:10:00.0148765 +0300 MSK m=+4194.486519001
cron_next: 2021-06-08 18:11:00 +0300 MSK
cron_wait: 59.9851235s

cron_tick: 2021-06-08 18:11:00.0156636 +0300 MSK m=+4254.487312101
cron_now: 2021-06-08 18:11:00.0350066 +0300 MSK m=+4254.506655101
cron_next: 2021-06-08 18:12:00 +0300 MSK
cron_wait: 59.9649934s

cron_tick: 2021-06-08 18:12:00.0178345 +0300 MSK m=+4314.489489001
cron_now: 2021-06-08 18:12:00.0350977 +0300 MSK m=+4314.506752201
cron_next: 2021-06-08 18:13:00 +0300 MSK
cron_wait: 59.9649023s

cron_tick: 2021-06-08 18:13:00.0176599 +0300 MSK m=+4374.489320401
cron_now: 2021-06-08 18:13:00.0342954 +0300 MSK m=+4374.505955901
cron_next: 2021-06-08 18:14:00 +0300 MSK
cron_wait: 59.9657046s

...

It seems this problem is highly environment-dependent and probably needs a docker file for a reliable reproduction.
Yours,
Andrey
===
Advanced Software Technology Lab
Huawei

Hey all, I am able to reproduce this with a Dockerfile building the code snippet posted in the original issue:
FROM golang:1.17.0-buster
WORKDIR /app

COPY go.* ./
RUN go mod download

COPY *.go ./

RUN go build -o /timetest
ENTRYPOINT /timetest

The results show that on just my third tick it happened slightly early causing the message to appear twice for the 16:48 minute
docker run -it timetest:v0.0.1

cron_tick: 2021-08-23 16:46:54.691913655 +0000 UTC m=+0.000097728
cron_now: 2021-08-23 16:46:54.703024674 +0000 UTC m=+0.011208744
cron_next: 2021-08-23 16:47:00 +0000 UTC
cron_wait: 5.296975326s

cron_tick: 2021-08-23 16:47:00.000868299 +0000 UTC m=+5.309052386
cron_now: 2021-08-23 16:47:00.011140129 +0000 UTC m=+5.319324201
cron_next: 2021-08-23 16:48:00 +0000 UTC
cron_wait: 59.988859871s

cron_tick: 2021-08-23 16:47:59.978902457 +0000 UTC m=+65.327759820
cron_now: 2021-08-23 16:47:59.989480843 +0000 UTC m=+65.338338206
cron_next: 2021-08-23 16:48:00 +0000 UTC
cron_wait: 10.519157ms

cron_tick: 2021-08-23 16:48:00.000928234 +0000 UTC m=+65.349785597
cron_now: 2021-08-23 16:48:00.011381157 +0000 UTC m=+65.360238520
cron_next: 2021-08-23 16:49:00 +0000 UTC
cron_wait: 59.988618843s

I might be wrong, but if you compare the monotonic times, it looks like it actually does not fire early (consider also printing the diff between cron_tick and previous cron_now, which would make this clear.)


is there a way to integrate secure-handlebars with hbsfy?

I have added secure-handlebars in the precompiler option of hbsfy
var hbsfy = require("hbsfy").configure({     precompiler: "secure-handlebars" });
and then
var app = gulp.src('./js/app.js').pipe(browserify({         transform: [hbsfy]     }));
However, on the browser it tells me:

"Error: Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (>= 4.0.0) or downgrade your runtime to an older version (>= 2.0.0-beta.1)"

In what way can I use secure-handlebars with hbsfy ?