Non default master key Server Side Encryption KMS support

Currently the buildkite agent KMS support is limited to (as per the environment script)
aws s3 cp --sse aws:kms source destination

which ends up employing the default master key for the S3 service, i.e. the key that is used to encrypt S3 objects when no other key is defined.
It would be ideal to make use of an explicit kms key id issued exclusively for buildkite agent purposes. Something like
aws s3 cp --sse-kms-key-id arn:aws:kms:ap-southeast-2:123456789:key/ac54dbd2-f301-42c1-bab9-88e6a84292a9

where the arn for the key could be passed in as a parameter to the Cloudformation template for the stack.

Sounds like this would make for a sensible default, along with creating a dedicated key in the cloudformation stack.
I wonder what the behaviour of changing the KMS key associated with already SSE encrypted files is.

Just my 2 cents worth. I think S3 default master key encryption as it is implemented today makes for a sensible default, the additional ability to specify as a parameter the arn of a kms key to the CF template for the stack would be slick.

Yup, on reflection, I agree.

Hi,
aws s3 cp  --sse-kms-key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
when I execute the above command am getting the following error.
-- when calling the put object operation: Server side encryption  with aws kms  managed key  requires http header x-amz-server-side-encryption:aws:kms
How can i overcome this issue? pls help me with this.

@ReshuS I believe you need to specify: --sse aws:kms too

@gugahoi  ya, Thank you! Its working now... :-)

When I am running this command facing following error:
aws s3 cp --sse=aws:kms --sse-kms-key-id kms-id-value file-to-be-copied.text s3://bucketname/.
error:
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied.

I hate to ask, but you're using your bucket name, not bucketname, right @sushilvarma2?

yah that is right. that is just for reference.

Do you have permission to write to that bucket?
Sent from my iPhone

On 8 Sep 2017, at 5:31 pm, sushilvarma2<EMAIL_ADDRESS>wrote:
yah that is right. that is just for reference.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Yah, I assigned S3, KMS role to the user.
It works without any issue when I am using default KMS ID and not even providing kms id. Just simple copy to S3 bucket.
I have also used this option, as advised in aws documentation.
aws configure set default.s3.signature_version s3v4.
I have tried both these policies also to the bucket but no help:
{
"Version": "2012-10-17",
"Id": "Policy1504851851295",
"Statement": [
{
"Sid": "Stmt1504851844388",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxxx:user/testuser1"
},
"Action": "s3:",
"Resource": "arn:aws:s3:::bucketname/",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
2nd time:
{
"Version": "2012-10-17",
"Id": "Policy1504851851295",
"Statement": [
{
"Sid": "Stmt1504851844388",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxxxxx:user/testuser1"
},
"Action": "s3:",
"Resource": "arn:aws:s3:::bucketname/"
}
]
}

This issue got resolved by adding user into "key users" section in encryption key.  Earlier I have added this user only into "Key Administrator" section. Thanks everyone.

Thanks a lot everyone, I had been breaking my head since yesterday, found this post, it worked.
Case: to copy data data using aws cli from sse encrypted bucket to custom kms key encrypted bucket.


Crash while attempting to generate Sulphuric Lake

The end was running really well until my game hard crashed on structure placement.
Crash Log is attached. I was running a LAN server while playing in singleplayer (to enable cheats).
crash-2022-01-07_19.51.37-server.txt

Can you please also attach latest game logs?

Sure, here they are.
I loaded up the same again and it didn't hard crash the second time. It did soft crash after a few minutes though (all entities froze, and no new chunks would load. When I tried to relog, the game was stuck on the "Saving world" screen).
rei.log
2022-01-07-1.log.gz
latest.log

Could you please try with the latest bclib/betterend. The issue may have been fixed with that bclib updated (at least I can not reproduce it with the current version)

Could you please try with the latest bclib/betterend. The issue may have been fixed with that bclib updated (at least I can not reproduce it with the current version)

It has not been fixed. I am still having this issue.

Thanks for getting back. Could you please send us the world seed and maybe the coordinates of the biome that is causing the issue.

On my world, the seed is 8624896 and the coordinates causing problems are centralized around 695 112 -1984. We were allowed to explore it for probably 10 minutes before it overloaded and crashed everything.

For what it's worth, the issue has not occurred again in my world since updating!

Thanks for the feedback and the seed. Unfortunately If I remember correctly, @cypressfalls did use the latest version.
Since I can not reproduce it in my test setup either, I guess it is a race-condition. I pushed a change that might mitigate the problem in the next release

For what it's worth, I'd like to note that my mods in every world I play are ALWAYS up to date, because for 1.18 since all the mods are new, I check for updates every single time I log on & make a backup if anything changes. This is with the most recent versions of everything.

Could you please try again with 1.0.2 and report back to us if the problem still persists?

Hi! Sorry, testing that now<3 All mods listed in my old post are once again up to date:)
After backing up the world and going to the end to see if the problem persisted, I've found that it seems to be running okay right now. Will report back later if it crashes again.
Attached is screenshots from our chunks corrupting and then reloading with what it assumed to be the correct biomes - not a problem for us, but it is progress in that the chunks seem to be loading fine now even if cosmetically they messed up.


Create Wallet : lncli create - transport: authentication handshake failed: x509: certificate signed by unknown authority

Background
In creating a new wallet, I get "x509: certificate signed by unknown authority"
Your environment

lnd version 0.12.0-beta commit=v0.12.0-beta-22-g10a81e01
Linux earth 5.8.0-41-generic #46-Ubuntu SMP Mon Jan 18 16:48:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
"version": 210000,
"subversion": "/Satoshi:0.21.0/",
"protocolversion": 70016,
go version go1.15.6 linux/amd64

Steps to reproduce

Install go
Build LND from source
Configure lnd with BTC
Create Wallet

Expected behaviour
Wallet created successfully
Actual behaviour
Wallet creation fails

As described here : https://github.com/lightningnetwork/lnd/issues/1980, local RCP and macaroon paths.

As described here : https://github.com/lightningnetwork/lnd/issues/1980, local RCP and macaroon paths.

@GraemeConradie what was your solution? I'm running into the same issue but can't figure out what's wrong. I'm not generating any custom certs, and rpc server is running, as far as I can tell.
 netstat -tlpn | grep lnd
tcp        0      0 <IP_ADDRESS>:8080          <IP_ADDRESS>:*               LISTEN      25025/lnd
tcp        0      0 <IP_ADDRESS>:10009         <IP_ADDRESS>:*               LISTEN      25025/lnd

Make sure you provide the correct --tlscertpath parameter when using lncli.


add backend-setup service definition

With the way the migrations route in the backend is currently implemented, it looks like we are going to need an extra backend service to handle migrations as the progress of an ongoing migration can only be asked from the specific container where it was started. And this would run into problems, if the main backend was scaled up.
For simple setups (i.e. where a scale=1 for the backend can always be assumed) we could have the this service optional using a config option similar to disablePostgres.
However having it in the stack brings another advantage:
When doing the 2-step migrations there must be a backend within the stack that is ahead in version of the other services.
By having a predefined service, this can be consistent and predictable (instead of adding another backend - which would be reachable under the same hostname as the "regular production" ones - and trying to distinguish between them).
With this I propose all requests from the manage-service should be called on backend-setup in the future, giving it clear semantic purpose.
Also I think with this the normal backend wouldn't even need the internal_auth_password as all internal routes are called on backend-setup
@normanjaeckel @gsiv @jsangmeister
feel free to share your thoughts :)

Thanks for bringing up the issue.
So, this is pretty much the same setup we use in OpenSlides 3.  The setup service is called server-setup there and has worked reliably.
There was a lot of focus on removing said service in OpenSlides 4 once; however, since there seem to be no other proposals for dealing with the migrations problem, I'm in favor of adding it back.  (There is one potential alternative that I'm aware of that would avoid adding the setup service.  It would require the backend code to be backwards-compatible so that new migrations could always safely be started by any one backend container that obtained a database lock.  AFAIK there is no interest in the added complexity of backwards compatibility, though.)
I agree that the backend-setup service should not be configurable.  In addition to the reason given, it may be worth noting that "simple setups" in the sense that the backend is guaranteed to be scaled to 1 do not exist.  Even the default Docker Compose stacks can and, surely, will be scaled up by some users.

@peb-adr Please review.


Fix issue#399

Changelog

Add the openshift python package (>= 0.6) in the two files of docs folder.
Fix for documentation issue.
Update the documentation.

Reviewed by
@sownak
Linked issue
#399

@Roshan13046 Thank you for your PR. Please follow https://github.com/hyperledger-labs/blockchain-automation-framework/blob/master/CONTRIBUTING.md for guidance on signing you PRs, and adding correct commit message.

Changes approved. But please raise a PR to develop branch always. Only thing pending is merging into a single commit


coordWalker Sprite Doesn't Move

Describe the bug
The sprite on coordWalker doesn't move when you use WASD and gamepad. It works on Edge but not on Chrome.
To Reproduce
Steps to reproduce the behavior:

Go to the game 'https://arcade.makecode.com/97058-47078-10350-12699" in Chrome
Click on 'A'
Press arrow keys or WASD to move
See error

Expected behavior
When you click WASD or the gamepad, the sprite should move.
Screenshots

Desktop (please complete the following information):

OS: Windows 10
Browser Chrome *Worked with Edge
Version: 79.0.3945.117

Additional context
Add any other context about the problem here.

@riknoll this is an interesting bug.  Move sprite works though

Does repro only on chrome

Fixed, @tjoycecarrollton can you validate in /beta?

@abchatra how do I access coordWalker on /beta?

Import the URL through through Import button at the home screen.

The sprite is still not moving for me in /beta on Chrome.

The issue here is that our getters for x/y/left/right/top/bottom always return integers. If you add a value that is less than any 0.5 to one of them, then the change will get lost next time you read it.
For example, this code will never move the sprite:
const p = sprites.create(img`
    1 1 1
    1 1 1
    1 1 1
`, SpriteKind.Player);

game.onUpdate(function () {
    p.x += 0.4
})

But if you change 0.4 to 0.5 you'll see the sprite zip off to the right of the screen fairly quickly.
The reason this bug only repros in Chrome is because the FPS of the simulator is higher, and so the values that are returned by controller.dx() and controller.dy() are lower. In a bigger program with more going on this probably wouldn't be an issue.
The physics engine doesn't run into this issue for low velocities because it uses the internal x/y values directly without the extra integer conversion.
TBH, I'm not sure what to do about this. That code I pasted above looks completely reasonable and I would have a hard time explaining to someone why it doesn't work. Changing the getters to return floats instead of integers might be a big breaking change though.
@pelikhan @mmoskal @abchatra thoughts?

I would say return floats from x/y/top/... The vx/vy/ax/ay already return floats.

Yeah, I totally agree but am worried this might cause some weird bugs in existing scripts

Possible, but I think unlikely. You may get the fractional numbers printed on the screen maybe, but doesn't seem critical and is easy to fix with s.x | 0. My vote would be to do it and wait for complaints.


Add the log_omit_repeated_times option to Console

Type of changes

[ ] Bug fix
[x] New feature
[ ] Documentation / docstrings
[ ] Tests
[ ] Other

Checklist

[x] I've run the latest black with default args on new code.
[x] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[ ] I've added tests for new code.
[x] I accept that @willmcgugan may be pedantic in the code review.

Description
This PR adds a log_omit_repeated_times option to the Console constructor. When set to False, the omission of repeated times by log() methods is disabled.

Hey @willmcgugan. Is this a feature that could be considered? If so, do I need to add anything to the PR?

Codecov Report

Merging #2013 (4eb6aff) into master (75f4637) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2013   +/-   ##
=======================================
  Coverage   99.81%   99.81%
=======================================
  Files          71       71
  Lines        7058     7058
=======================================
  Hits         7045     7045
  Misses         13       13

Flag
Coverage Δ

unittests
99.81% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

rich/console.py
100.00% <ø> (ø)

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 aa4546a...4eb6aff. Read the comment docs.

The constructor already has a large argument list. I'd prefer not to add to it without good reason.
What is your use case? Why do you not want identical times removed from the log function?

In my case, I wanted to be able to grep a log and be able to check the time it was recorded. But my motivation to write this PR was just because it made sense to me to have feature parity.

This option makes sense for logging, but less so for Console.log. Not worth adding yet another option. Thanks for the contribution.


Fine_tune.run_fine_tune returns losses of training set rather than validation set

Fine_tune.run_fine_tune should return the losses of validation set to calculate LOSS GAP RATIO. The current implementation returns losses of training set.

Hmm I realize you wrote this before I wrote run_fine_tune
Was someone else working on this?

I was writing the skeleton of run_fine_tune in #23, but we can replace it with your code


throws exception for duplicate command line arguments

When I invoked the following program:
    class Program
    {
        private static void Main(string[] args)
        {
            Parser.Default.ParseArguments<Options>(args);
        }
    }

    class Options
    {
        [Option("text")]
        public string Text { get; set; }
    }

with the duplicated arguments  --text text2 --text text1 I got an unhandled
System.InvalidOperationException

Including RepeatedOptionError error type in the switch in SentenceBuilder seems to fix this issue:
diff --git a/src/CommandLine/Text/SentenceBuilder.cs b/src/CommandLine/Text/SentenceBuilder.cs
index 642afe0..f86a740 100644
--- a/src/CommandLine/Text/SentenceBuilder.cs
+++ b/src/CommandLine/Text/SentenceBuilder.cs
@@ -128,6 +128,9 @@ public override Func<string> UsageHeadingText
                                                     "' is defined with fewer or more items than required.");
                                 case ErrorType.BadVerbSelectedError:
                                     return "Verb '".JoinTo(((BadVerbSelectedError)error).Token, "' is not recognized.");
+                                case ErrorType.RepeatedOptionError:
+                                    var repeatedOption = (RepeatedOptionError) error;
+                                    return "Repeated option: " + repeatedOption.NameInfo.NameText;
                                 case ErrorType.NoVerbSelectedError:
                                     return "No verb selected.";
                             }```

Btw did you mean to include MutuallyExclusiveSetError in the switch as well/ or does the new version support mutually exlusive sets (couldn't find it) ?

Sorry, didn't notice https://github.com/gsscoder/commandline/commit/d63ba89583181029a569fa64a9c9cf7afed1bbc1


guitarix

Could you add  guitarix

Something to try, not sure if it even builds on windows..
As with calf, these plugins will be without UI support, at least initially.

closing, decided against gtk2 based plugins


Doesn't support UTF-8

Hi, there. First of all, thanks for the library.
I'm having issues with UTF-8 characters not being presented correctly. Here's the output I'm getting for a transaction (at OFX.BANKMSGSRSV1.STMTTRNRS.STMTRS.BANKTRANLIST.STMTTRN) containing UTF-8 symbols:
{
  TRNTYPE: 'CREDIT',
  DTPOSTED: '20180502120000[-3:BRT]',
  TRNAMT: '841.62',
  FITID: '20180502841621',
  CHECKNUM: '38082544',
  REFNUM: '38082544',
  MEMO: 'CR ANTECIPA��O MASTERCARD'
}

The MEMO field should have the following content: CR ANTECIPAÇÃO MASTERCARD.

Ok, so I just looked at the file's contents and it looks like it's the bank's fault. The OFX's encoding is set to USASCII, so encoding is broken. Sorry.

Ok, so I fixed the file contents by hand, and now everything is in USASCII 1252 (Windows 1252), but the parser still returns broken characters.
The start of the file looks like this:
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

The file contents are encoded accordingly.
I removed all sensitive information from it and upload to: https://1drv.ms/u/s!AqjXMR1svQEwguNAkdSldHTI9RerIA?e=aSopFj

Sorry, again. The issue was with the encoding set on fs.readFile's options.


Feat/pulling stage to accounts

Pulling Stage to Accounts

Resolving eslint errors
Resolving merging conflicts

Issues

css broken when using docker build


How to  customizable Voices?

Checks

[X] This template is only for question, not feature requests or bug reports.
[X] I have thoroughly reviewed the project documentation and read the related paper(s).
[X] I have searched for existing issues, including closed ones, no similar questions.
[X] I confirm that I am using English to submit this report in order to facilitate communication.

Question details
Does it support some custom parameters, such as tone, pitch, softened voice, etc.?

I have thoroughly reviewed the project documentation and read the related paper(s).

could use ref_audio to control


Update Simple ETL Example.ipynb

I think I've got it this time...

Looks like this fixes the rendering issues. the change is to use four spaces at the beginning of each line to indicate 'code' in the markdown describing the required cell metadata


docs: update Per-Shot Look FAQ

Update the looks docs with the recent email info. Also provide an example .ocio configuration demonstrating it.
Per Shot Looks:
Step 1: Setup a Look
A look is a top-level OCIO configuration object.  Conceptually, it's a named transform which gets applied in a specific color space.  All of the changes below to the .ocio configs can be done manually by editing the text, or using the python API.
Example OCIO Configuration:
looks:

!
name: di
process_space: rclg16
transform: ! {src: look_di.cc, interpolation: linear}

The src file can be any lut type that OCIO supports. (In this case, it's a file that contains the  element from a CDL file.)  You could also specify a .3dl, etc.
Once you define a look in your configuration, you'll see that the OCIOLookTransform node in Nuke will provide the named option.  In this example, the 'DI' look conceptually represents a look that will be applied in DI.  Other look names we often used are 'onset', 'editorial', etc.     The process_space implies that the transform should be applied in that space.  I.e., if you provide linear input to the OCIOLookTransform node, the pixels will be converted to rclg16 in this example before applying the cc.
Step 2:  Update the Display to use a look.
Example:
displays:
DLP:
- ! {name: Raw, colorspace: nc10}
- ! {name: Log, colorspace: rclg10}
- ! {name: Film, colorspace: p3dci16}
- ! {name: Film DI, colorspace: p3dci16, looks: di}
sRGB:
- ! {name: Raw, colorspace: nc10}
- ! {name: Log, colorspace: rclg10}
- ! {name: Film, colorspace: srgb10}
- ! {name: Film DI, colorspace: srgb10, looks: di}
You can optionally specify a 'looks' tag in the View tag, which will apply the specified look(s).  This lets application in the viewer provide options which do (or do not) use the looks.   Option for super advanced users:  The looks tag is actually a comma-delimited list supporting +/- modifiers.  So if you you wanted to specify a View that undoes DI, and then adds Onset, you could do "-di,+onset".
Step 3:  Get per-shot looks supported.
In the top example, look_di.cc, being a relative path location, will check each location in the config's search_path.  The first file that's found will be used.
So for
search_path: luts
only the 'luts' subdir relative to the OCIO config will be checked.
But if you specify:
search_path: /shots/show/$SHOT/cc/data: luts/ocio
the directory /shots/show/$SHOT/cc/data/  will be evaluated first, and only if not found luts/ocio will be checked.
envvars, absolute, and relative paths can be used both in the config's search_path, as well as the View's src specification.
Example:

!
name: di
process_space: rclg16
transform: ! {src: looks/$SHOT_di/current/look_$SHOT_di.cc, interpolation: linear}

Note that if the per-shot lut is not found, you can control whether a fallback lut succeeds based on if it's in the master location.  You can also use this for multiple levels (show, shot, etc).
Advanced option: If some shots use .cc files, and some use 3d-luts currently there's no simple way to handle this.  What we'd recommend as a work around is to label all of your files with the same extension (such as .cc), and then rely on OCIO's resiliance to misnamed lut files to just load them anyways.  Caveot: this only works in 1.0.1+ (6da3411ced)
Advanced option:  In nuke OCIO nodes, you often want to preview looks 'across shots' (often for reference, same-as, etc).  You can override the envvars in each node, using the 'Context' menu.  For example, if you know that $SHOT is being used, in the context key1 you should specify 'SHOT', and the in value1 specify the shot to use (such as dev.lookdev).
Advanced option:  If you are writing your own OCIO integration code, getProcessor will fail if the per-shot lut is not found, and you may want to distinguish this error from other OCIO errors.   For this reason, we provide OCIO::ExceptionMissingFile, which can be explicitly caught. (And then handled using OCIO::DisplayTransform::setLooksOverride())  I'd expect image flipbook applications to do this approach.

Should be consolidated with this:
http://opencolorio.org/userguide/contexts.html#per-shot-grades

With the consolidation, the "a complete example" section should be updated to use a Look, instead of the confusing pair of colourspaces (lnh and lnh_graded)
(also the github formatting has eaten a few of the <)


Provide ability to turn off plugins

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ ] Question or discussion
[ ] Bug
[ ] Requirement
[ x ] Feature or performance improvement

Question

What do you want to know?

Bug

Which version of SkyWalking, OS and JRE?

Which company or project?

What happen?
If possible, provide a way for reproducing the error. e.g. demo application, component version.

Requirement or improvement

Please describe about your requirements or improvement suggestions.
By default Skywalking instruments many plugins that are present in ~/apache-skywalking-apm-bin-es7/agent/plugins directory. In Skywalking v7.0 there are 76 plugin jars available. Not all environments need all of these plugins instrumented.

Proposal is to provide a property configuration via agent.config which can take a file name that can in turn list the plugins needed for an environment. Below elaborates more on specifics of this request
In agent.config, introduce a new property, say "PluginConfigs", as shown below
….
PluginConfigs=/some-directory/skywalking-plugin.def
and
Let us say I have /some-directory/skywalking-plugin.def as shown below
rabbitmq-5.x=org.apache.skywalking.apm.plugin.rabbitmq.define.RabbitMQProducerInstrumentation
rabbitmq-5.x=org.apache.skywalking.apm.plugin.rabbitmq.define.RabbitMQConsumerInstrumentation
In this setup, expectation is to just instrument only RabbitMQ consumer and producer although I have agent installed with all 76 plugins.
In summary, new property "PluginConfigs" acts a override to current behavior which instruments all plugins available under "agent/plugin" directory. And "PluginConfigs" property is optional. when "PluginConfigs" is not configured, current behavior to instrument all available plugins based on class path can be retained.

Why no just moving the plugin jar files to other places?

This feature will help have a common oap-server that can service different applications instrumenting different plugins. For example, lower life cycles (like staging) can have all plugins turned on vs higher life cycles (like production) can have few plugins turned. Also, if problems noticed in higher life cycle, services can be redeployed with updated agent.config/skywalking-plugin.def to enable more plugins as needed. It gives more flexibility.

I prefer you still use the agent.config to deactivate, by listing the disable plugin names. You should notice all plugin.def includes names, You should use those names to disable agent plugins.
WDYT?
And, this discussion should happen in the mail list, could you forward there?

Moving discussion to mailing list

Update, further discussion happens https://lists.apache.org/thread.html/re13f7a861bbc66f3ee2ab76e709d6fd2cfde44777394346fe98f1959%40<dev.skywalking.apache.org>


move text-input-v1 to hyprwayland-scanner

Describe your PR, what does it fix/add?
^
Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
tested with chromium --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
and works the same as before for me
Is it ready for merging, or does it need work?
yes

im gonna do the last one soon so its possible to remove wayland-scanner from deps in that pr right?

ay yo no pch fail lmao

should be fixed now


chore: fix deps grpc, sys, goproxy and more

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (38b50be) 37.33% compared to head (8364fd0) 37.33%.
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1085   +/-   ##
=======================================
  Coverage   37.33%   37.33%
=======================================
  Files          83       83
  Lines        5373     5373
=======================================
  Hits         2006     2006
  Misses       3217     3217
  Partials      150      150

Flag
Coverage Δ

unit
37.33% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


raspberry pi 0 fails to create files in a volume during hup suite

In the hup suite, a volume is created and populated with a file, to check that volumes persist across Hups - in the pi 0's case, there is an error thrown while trying to create a file in this created volume: https://github.com/balena-os/meta-balena/blob/master/tests/suites/hup/tests/smoke.js#L51
not ok 2 - "balena run -v hello-world:/the-volume --entrypoint "/bin/sh" alpine -c 'echo "Howdy!" > /the-volume/the-file.txt' &&     balena run -v hello-world:/the-volume --entrypoint "/bin/sh" alpine -c 'md5sum /the-volume/the-file.txt > /the-volume/MD5.SUM'" failed. stderr: , stdout: , code: 139

There was a bug in the old releases of balena-engine where armv5 devices like this would identify as armv7 when pulling images.
# failed
docker run alpine sh

# works
docker run arm32v6/alpine sh
# or
docker pull --platform=arm32v6 alpine

We should be able to workaround this by checking the architecture of the DUT and specifying the platform when pulling the alpine image. Or just use another method to create a volume that does not require pulling a multiarch image.


DEP: scipy.stats.stats: clarify deprecation warnings

Reference issue

Future follow-ups will close:
https://github.com/scipy/scipy/issues/17572
https://github.com/scipy/scipy/issues/17771
https://github.com/scipy/scipy/issues/18279
Follow up to #18649
What does this implement/fix?

Takes Matt's solution and makes it more generic so that it can be applied to all private but present modules. See #18649 for a thorough explanation.
Additional information

@mdhaber @h-vetinari wanted to check this was along the lines of what you had in mind before continuing as it will take a fair amount of work. Also, the diff is going to be pretty large but not sure there is an easy way to break this up. On the plus side this has been quite effective at sniffing out things in __all__ that either just don't exist or aren't importable.

Also, the diff is going to be pretty large but not sure there is an easy way to break this up.

Why not? Can't the test run only on the modules you want it to run on? I'd limit this PR to stats.py and morestats.py. Another PR can do the rest of stats. Future PRs can do one sub-package (e.g. scipy.special) at a time so the can be reviewed by the appropriate people.

Updated to include just stats.py and morestats.py

Thanks @h-vetinari for the review! I agree with most of that, but I have a suggestion related to the argument order: consider using "subpackage" to refer to scipy.stats instead of "module". Then, "morestats.py" is the "module" and "_morestats.py" is the "private module". I think this is more consistent with a strict definition of "module", and then "morestats.py" and "_morestats.py" are both "modules" instead of one being a "module" and the other a "submodule".

Thanks both, signature updated and docstring added

Lint failure unrelated

Great. Would you like to do the follow-up with the other modules in stats, @j-bowhay or @h-vetinari? I think I can review.


New eslint rules to add

"no-new-wrappers": ["error", "always"],
"radix": ["error", "double"],
"no-restricted-globals": ["error", "isNaN", "isFinite"]

Added more from the Airbnb style guide. not sure I agree with all of it, but most of it is good


HDDS-3056. Allow users to list volumes they have access to, and optionally allow all users to list all volumes

What changes were proposed in this pull request?
Optionally allow non-admin users to list all volumes.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3056
How was this patch tested?
NOTE: The chunk below is out-dated. Will update once the patch is complete.
Tested manually in ozonesecure docker-compose.
testuser is an admin user (listed in ozone.administrators), testuser2 is a non-admin user.

Before
After (ACL disabled)
After (ACL enabled)

ozone sh volume list
Lists volumes owned by user
Lists volumes owned by user
Lists volumes that user has ACL LIST to.

ozone sh volume list --all
n/a
Lists all volumes if ozone.om.volume.listall.allowed is true; if false, only admins can list all volumes, non-admin will get OmException with PERMISSION_DENIED.
Same as ACL disabled.

After the patch (non-admin can list all volumes)
bash-4.2$ kinit -kt /etc/security/keytabs/testuser.keytab<EMAIL_ADDRESS>bash-4.2$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal<EMAIL_ADDRESS>
Valid starting     Expires            Service principal
03/18/20 21:20:25  03/19/20 21:20:25<EMAIL_ADDRESS>	renew until 03/25/20 21:20:25
bash-4.2$ ozone sh volume create vol1
bash-4.2$ ozone sh volume list
{
  "metadata" : { },
  "name" : "vol1",
  "admin" : "root",
  "owner"<EMAIL_ADDRESS>...
bash-4.2$ kdestroy
bash-4.2$ kinit -kt /etc/security/keytabs/testuser2.keytab<EMAIL_ADDRESS>bash-4.2$ ozone sh volume list --all
{
  "metadata" : { },
  "name" : "vol1",
  "admin" : "root",
  "owner"<EMAIL_ADDRESS>  "creationTime" : "2020-03-18T21:20:35.370Z",
...

For comparison, before the patch (non-admin can't list all volumes)
# kinit'ed as testuser2 (non-admin)
bash-4.2$ ozone sh volume list --all
PERMISSION_DENIED org.apache.hadoop.ozone.om.exceptions.OMException: Only admin users are authorized to create or list Ozone volumes.
bash-4.2$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal<EMAIL_ADDRESS>
Valid starting     Expires            Service principal
03/18/20 21:15:34  03/19/20 21:15:34<EMAIL_ADDRESS>	renew until 03/25/20 21:15:34

@elek @xiaoyuyao Would you take a look? Thanks.
Essentially what this does is removing the admin check in listAllVolumes.
I believe this shouldn't impose security risks other than intentionally "leaking" all volume names (for now). What do you security experts think?

Thanks @smengcl for working on this.
The code change looks good.
I do not have details about the conversation with Arpit/Sanjay you mentioned thus I am not merging this PR yet. As far as security is concerned, listing all volumes is a functionality suited for system admins. If I am not supposed to have access to read the contents of some volumes what benefit will I achieve by being able to list those volumes? Thus I am not able to understand what value this change brings to ozone or the user experience.

Thanks for the comment Dinesh. You concern is totally valid.
One motivation/background of this change is that in ofs://, all users should be able to list "root", which is essentially a listVolumesByUser() client call at this moment that returns only the list of volumes current user creates.
So there is also a tmp mount (HDDS-2929) implemented for ofs://, the current implementation of which is asking an admin to create a volume named tmp (with world ALL ACL) during cluster setup, so every other user will be able to use ofs://om/tmp/ as a temp folder. While the tmp mount transparently points to bucket md5(current_username) in volume tmp.
Now there is a visual glitch when listing. Since the volume tmp is created by an admin, if another user tries ozone fs -ls ofs://om/, he won't see volume/mount tmp at all. -- I admit a better way to fix this might be to hack listing results and inject mount tmp. The point is this is one example of the motivation.
Yes there is this security implication behind this. I discussed with @xiaoyuyao a bit about this today.
We plan to discuss with @arp7 about this tomorrow and see if we actually want to loosen the admin check of listAllVolumes().

Discussed with @arp7 @xiaoyuyao @dineshchitlangia . Our conclusion is that we want to allow users who have access to some volumes to be able to list them. We will add a new config param in ozone-site.xml to allow OM admin to control whether they want to (1) shows all volumes to all users or (2) only allow users to list volumes they have access to. This config param should default to (1).
I'll repurposing this jira. TODOs:

Modify the existing API(s) listVolumesByUser(?) to allow users who have access to some volumes to be able to list them;
Add new config param as mentioned above;
Add unit/integration tests.

https://github.com/apache/hadoop-ozone/pull/696/commits/4bdeafd675765712967be9bb23b297e5ee700f29 should've accomplished the "optionally allow all users to list all volumes" part. I'll add test for that later.
As for the "Allow users to list volumes they have access to" part, first I was trying to write the code in OmMetadataManagerImpl#listAllVolumes, but then realized it wasn't a good spot to check for ACLs since that class shouldn't really import IAccessAuthorizer (as used in OzoneManager#checkAcls).
So eventually I decide to implement the logic in OzoneManager#listVolumeByUser. Since the deeper level calls into VolumeManager and OmMetadataManager doesn't have access to ACL (for the reason described in the previous paragraph), the implementation lists all volumes internally. And then checks ACL for each volume with current UGI when ACL is enabled.
-- This might lead to higher memory consumption when there are a lot of volumes existing in OM. But it requires a bit more change to mitigate this. I might try to put some of the listing iterator logic in OzoneManager to solve this, if this is a problem.

Rebased onto latest master to include the acceptance test failure fix HDDS-3284.

Will add the integration test soon.
Will resolve minor conflict with the Ozone Shell refactoring.

Looks like this need a rebase after HDDS-2691.

Just added integration tests. But it seems only one cluster can be launched in one test class.
Four tests can succeed separately. But when I run them at once in IntelliJ, the second would get stuck in a loop. Any help?

Just added integration tests. But it seems only one cluster can be launched in one test class.
Four tests can succeed separately. But when I run them at once in IntelliJ, the second would get stuck in a loop. Any help?

Rebased.

Rebased again because of HDDS-3340 (class ListVolumeHandler moved).

I'm able to dig a bit into the root cause of the timeout.
Turns out, when a mini ozone cluster launches for a second time in the same test class. In setOwner() call the OM side would add the same volume to owner list for a second time and succeed, which is very weird. This causes testAclDisabledListAllDisallowed to get stuck in the it.hasNext() infinite loop and eventually timeout.
I am able to confirm my discovery by setting a breakpoint inside addVolumeToOwnerList().
If I only run testAclDisabledListAllDisallowed this one test directly in IntelliJ, the test case would just pass. This makes the problem weirder. Because I do call the shutdown function in MiniOzoneClusterImpl to do the cleanup. And it did delete the temp directory for the entire cluster. This in theory should have performed the clean up work.
My questions:

Unless there are some other in-memory cache (TableCache) that is accidentally persisted across mini cluster (i.e. not fully cleaned up in MiniOzoneClusterImpl)? If this is the case we just need to somehow fix the test utility.

Or could it be the case that the userTable is flushed by mistake? In this case this would be a major bug (outside the scope of this jira) that should be fixed.

Pinging for some help @bharatviswa504 @elek

I just posted https://github.com/apache/hadoop-ozone/pull/806, might be related to the issue.

#806 is merged. will rebase this PR.

just rebased.
somehow all the integration tests are timing out on my machine so I can't verify locally if the problem is fixed by #806. we'll see.

Blocked on #821

Rebased one more time as #821 is merged.

@xiaoyuyao Pls give this PR one more look. Then we can close it if there aren't more issues since the tests are green now, finally. This blocks OFS list FS root functionality.

Even after reverting the lock change the acceptance test still fails.
Previously there is a passing run: https://github.com/apache/hadoop-ozone/runs/590172040
The details shows there are some s3 tests failures which are seemingly unrelated.
Rebased to latest master to hopefully resolve this test failure.

Acceptance failure is related to HDDS-3456.
This PR is blocked by the above jira then.
Or we can commit since the failures are unrelated. What do you think? @xiaoyuyao

Or we can commit since the failures are unrelated. What do you think? @xiaoyuyao

Please don't commit with unrelated failures.  These may hide other, related failures, as we've seen in the past.
Please review #844 instead. ;)

Or we can commit since the failures are unrelated. What do you think? @xiaoyuyao

Please don't commit with unrelated failures. These may hide other, related failures, as we've seen in the past.
Please review #844 instead. ;)

Sure thing. Let's wait for #844 merge. Then I'll do a rebase. :)

Rebased as HDDS-3456 is committed.

Got a green run after the rebase. Will commit shortly.
Thanks @xiaoyuyao and @dineshchitlangia for the review.


feat: add common modal(use react-aria-components)

Added a common modal that build by react-aria-component. In the future,if you need modal, you can use this modal instead of base/modal

BaseModal and CommonModal appear to be different names for the same thing. If we are creating a second base modal, then please include in the PR description your rationale for what your need it for and introduce your plan to replace the BaseModal if you think it would be better or a reason why both should exist.

use the modal in two places to justify it here.

This is a draft PR，we will discuss it‘s necessity later

Closing as we haven't used this. Feel free to reopen in case we want it in the future


reorder the sketch

move the dropdowns and the date settings to a horizontal bar and assign 8 columns to the map and 4 columns to the bar charts.

Sketch has been updated to a picture of the (old) UI. Will need to be updated (GIF?) after addition of Mengjun's plot. Could also follow the little example usage I added right before the sketch in the README

it has been updated based on the new UI

Ready to be closed.

closed :)


Fixed time format for Last-Modified header

Fixed time format for Last-Modified header when parsing oss/cos attributes.
Signed-off-by: Sabaping<EMAIL_ADDRESS>COS api doc reference
OSS api doc reference
Changes

clientutil.ParseLastModified function accepts optional format parameter
Bucket.Attributes function, for cos/oss object storage, passes additional time.RFC1123 when calls clientutil.ParseLastModified.

Verification
Unit test.

#2613

Fixed unit tests

Refactored code and improved readability based on @bwplotka 's comments.

Thanks. I think we need some CHANGELOG for this, but we can add it during release time.

LGTM❤  @SabaPing  @kakkoyun


Added image alignment

Added the image alignment option to layout configuration

Your changes are now available with the latest version 2.0.3


GEOMESA-1536, GEOMESA-1525, GEOMESA-1227 Docs fixes

* Add docs about feature events.
* Fix query planner links in Accumulo chapter.
* Fix Spark properties links.
* Fix link to GS install docs, link for XZ tools.
* Fix links in authorizations tutorials.
* Fix link in geohash "tutorial".
* Fix Kafka link.
* RST-ify geomesa-raster tutorial.
* Add a note about using the proper GeoMesa tutorials release.
* Add note about Hadoop 2.6 version.

Signed-off-by: Matthew Zimmerman<EMAIL_ADDRESS>

Looks good to me.

looks good, thanks!


Add option to run ktlint only when running Reformat Code (Ctrl+Alt+L)

Assume the following case:

After selecting the variable name, as shown above, when I click the left curly bracket key on my keyboard, the variable name is not wrapped in curly brackets as expected, because ktlint is being fired automatically and removes them instantly.
It would be nice to have an option to run ktlint only when using Reformat Code (Ctrl+Alt+L).

If you disable option 'format on save' this should work as you expect.

Unfortunately it does not. The only option I have right now is to disable the Distract Free mode altogether.

Just checked it, and the format on save is not related to this.
I can reproduce the behavior you described. Unfortunately, I can not find a solution for this as you want to run Ktlint formatting together with (e.g. after) formatting of Intellij IDEA. For some reason the PostFormatterProcessor hook gets fired once you insert the left curly brace manually.
Interestingly enough, if you use option insert curly braces around variable thePostFormatterProcessor does not get triggered, and you get the behavior you want.
As, this is not something that I can fix in the plugin, I will close the issue.


fix(db): Add a new diesel migration for the missing db values

Type of Change

[x] Bugfix

Description

The missing db values can be updated by running the queries present in the new migration. This is for local_db and the changes are done considering sandbox as the source of truth.
Motivation and Context

This PR solves this issue.
Checklist

[x] I formatted the code cargo +nightly fmt --all
[x] I addressed lints thrown by cargo clippy
[x] I reviewed submitted code

Closing this since I've opened a corresponding new PR : https://github.com/juspay/hyperswitch/pull/1812.


Vickel: Watch luxurywoods.de

Vickel requests the watch of the watch_keyword luxurywoods\.de. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

luxurywoods\.de has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Android - Payments - Unable to remove the verified bank account under Payments, error message appears.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Precondition: Add VBA into your beta account

Launch the app and login with Beta account
Go to the payments page.
Tap on VBA payment method
Tap "Delete"

Expected Result:
Able to remove the verified bank account under Payments
Actual Result:
Unable to remove the verified bank account under Payments
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS - freezing after tap delete
Android

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/155247015-d9e7ab3a-f1ba-4d53-aa90-881bb6eabd00.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @Julesssss (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

We're blocking this in the backend, probably for a specific reason. I'm asking internally to see if we need a better error message instead here...

Hi @kbecciv, do you remember which email was used to test this?

Hello @Julesssss, tester login credentials<EMAIL_ADDRESS>and Password: Feya86Katay

Issue not reproducible during KI retests. (First week)

Okay, so although the error is expected, the app shouldn't hang.
Awaiting proposals

It is caused by the same reason I posted here https://github.com/Expensify/App/issues/7768#issuecomment-1044879541.

Aha, thank you @parasharrajat. I'll close this.


Entity not avalible

I have installed the integration, but no entities are available, and they don't appear as they do in the screen shots.

Could you enable debug logs and provide them?

hope this is what you want.
yoto.docx

Strange - reloading or restarting home assistant doesn't help?

No, nothing changes

Just for kicks could you rename to remove the apostrophe from the device name in Yoto's app. Reload the integration and let me know if anything changes.

Ive resolved it, it was a local network firewall issue

Enjoy the integration.  Let me know if you want anything added to it feature wise!


Dockerfile of tensorflow container tag "1.10.1-gpu"

Dear all,
where can i find the Docker file of the docker container with tag "1.10.1-gpu" ?
Best regards. Giusy

Please find this link


fix: return expected leases.ErrConflict from dal

fixes #1678
leases interface documents that leases.ErrConflict is the expected error if lease acquisition fails, but dal was returning dal.ErrConflict

TBH I think we should not be using the DAL directly for this abstraction.


cpupercentcollector

I have tried multiple times but I cannot get CpuPercentCollector to work
trying
extern crate psutil;

let mut cpu_percent_collector = psutil::system::CpuPercentCollector::new().unwrap();

Error reports it cannot fine cpupercentcollector module
this is for version 1.1.1

nevermind, looks like that function isn't in 1.1.1 but is in github


Simplified "How to play" instructions

@IanDCarroll do the same for the test section

This is a very good suggestion which I will move to issues.
Though, it isn't the code that you're modifying, I feel like it's not in the spirit of the exercise. And it's a slippery slope.
It's a big project, but it's also a test which I must code with only my own two hands.
But I really appreciate the suggestion and the effort!


blue markers on map is not available

The website is not working, blue markers on map is not available. And also API is not available.

The API is working fine


reload 3 or more pods, it cause deploy on the same hosts,and doesn't work

What kind of request is this (question/bug/enhancement/feature request):
question
Steps to reproduce (least amount of steps as possible):
if I reload 3 or more pods, it cause deploy on the same hosts,and doesn't work.  it will be cause the CPU to rise abnormally,so that pods restart failed.
Result:
Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
Installation option (single install/HA):
rancher v2.4.8

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
Machine type (cloud/VM/metal) and specifications (CPU/memory):
Kubernetes version (use kubectl version):

(paste the output here)

Docker version (use docker version):

(paste the output here)

Unless you specify an anti-affinity scheduling rule, there is no guarantee that multiple pods for a workload will end up on different nodes.

I am seeing the same issue. I added a app=xxx label and from node scheduling add require rules to key=app no in set value=xxx
Not sure this is related to a old issue #14752

What you have said there is "schedule this pod onto a node that does not have the node label app=boinc-client".  You don't have any nodes with that label, so this has zero effect on scheduling.
What you are saying you want is "schedule this pod onto a node that is not already running any pods with the label app=boinc-client".  This is called pod anti-affinity.  UI support for  configuring these is only in the newer "Explorer" interface.

@vincent99 ack. Yes, indeed I want pod anti-affinity.
As mentioned, the affinity block are added by the Rancher UI, not the explorer interface...
Let me give it a try and report back.

confirmed able to setup pod anti-affinity using the pod scheduling tab in explorer UI


Re-enable travis-ci on this fork

:green_heart: build on my fork: https://travis-ci.org/dblock/grape-swagger-rails/builds/49598923

seems it's working fine, just pushed test branch and it was builded  by travis
https://travis-ci.org/TinkerDev/grape-swagger-rails

Great, tanks.


Embedding

bert embedding

please remove this closed PR.
We just studied about your code, It was kind of garbage.
:)


Fixing TRT5 GA compilation

Here, looks like they have changed API in GA again.
There seem to be no good way - and probably no reason - to support earlier TRT5 builds, so I did not try to add ifdefs on build number.

The fix was wrong.


Please update

Daniel, update this with the "new" version

This sounds like it could be cool. Is there a new version?

Hi @sendsent yes there is a "new" version (it's actually many years old!) at https://github.com/danielrhodeswarp/JS-Robots-2
It has HTML5 graphics and sound, feel free to check it out.
Thank you.


add Float number print in DataElement::Parser::ParseData

Are we now actively using floating point types in schema? If so, which one(s)?

https://github.com/openweave/openweave-core/blob/master/src/test-apps/schema/nest/test/trait/TestATrait.h#L180
We have several internal/external traits which is using float

Just update the corresponding test in this PR. thanks


Method getLyrics() sometimes isn't returning all the lyrics

[x] I have downloaded the latest v. of the genius-lyrics-api npm module.
[x] I've got an explanation of the issue.

For a little tiny bit of context, I'm making a Discord bot, and wanted to add a lyrics command to its music system. That's how I found your module.
It's working pretty good, but I noticed something.
When I call the getLyrics() method, sometimes it'll return the entire lyrics, and sometimes just a chunk of it.
I made two pastebins with the two different outputs for a same song (K. Money - Come Outside).

First output: https://pastebin.com/gVYCsBSx
Second output: https://pastebin.com/Can6F8xR

Here is my code.
import * as Discord from "discord.js";
import { getLyrics } from "genius-lyrics-api";
import getArtistTitle from 'get-artist-title';
import * as dotenv from "dotenv";
dotenv.config();

// Music command

/**
 * Skips actual guild music.
 * @param {Discord.Client} Client the client
 * @param {Discord.Message} Message the message that contains the command name
 * @param {string[]} args the command args
 * @param {any} options some options
 */
export async function run(Client: Discord.Client, message: Discord.Message, args: string[], ops: any) {
    const accessToken = process.env.ACCESS_TOKEN;
    const queue: any = await ops.queue.get(message.guild.id);
    let songID;
    let songArtist, songTitle;

    async function retrieveArtistTitle() {
        [songArtist, songTitle] = await getArtistTitle(queue.songs[0].title, {
            defaultArtist: queue.songs[0].author.name
        });
    }

    await retrieveArtistTitle();

    const options = {
        apiKey: accessToken,
        title: songTitle,
        artist: songArtist,
        optimizeQuery: true
    };

    await gatherLyrics();

    async function gatherLyrics() {
        await getLyrics(options).then((lyrics) => {
            if (lyrics == null) {
                return message.channel.send(`No lyrics found for **${queue.songs[0].title}**.`);
            } else {
                const lyricsEmbedOne = new Discord.MessageEmbed()
                .setAuthor(message.author.username, message.author.avatarURL())
                .setDescription(lyrics.slice(0, lyrics.length / 2))
                .setColor("#80F906")
                .setFooter(`Lyrics (1) - ${Client.user.username}`, Client.user.avatarURL())
                message.channel.send(lyricsEmbedOne);

                const lyricsEmbedTwo = new Discord.MessageEmbed()
                .setAuthor(message.author.username, message.author.avatarURL())
                .setDescription(lyrics.slice(lyrics.length / 2, lyrics.length))
                .setColor("#80F906")
                .setFooter(`Lyrics (2) - ${Client.user.username}`, Client.user.avatarURL())
                message.channel.send(lyricsEmbedTwo);
            }
        });
    }

    if (!queue) {
        return message.channel.send("No song is currently playing.");
    }
}

Music system works like a charm, so that doesn't cause the problem. Other modules used in this code are also working fine - same for my Genius Developer Token.
Thank you for reading this issue.

Thank you for reporting the issue. I'll investigate and push a fix asap.

Hello - any update on this?

Hey, sorry I'm a little tied up rn. I do plan to fix this by the end of the week though

No problem! Take your time, just wanted to know how this issue was evolving.

@ma15fo43 I just released a patch. Feel free to reopen the issue if the problem still persists.


Create .env

Template .env file for documentation

This wiped my local .env... As such I don't think we should have this template.

This wiped my local .env... As such I don't think we should have this template.

It will only wipe it once as it is in the .gitignore. This is to make it easy for users to paste in their variables rather than having them create a new file, which is different on every OS.


support batch size dimension in 2D sparse attention mask

The purpose of this PR is to enable different attention masks per mini-batch in the sparse attention module. Generally, sentences are of different length and so it doesn't really make sense to assume that the 2D attention mask is constant, as implemented currently.
Background: I am (ab-)using the sparse attention as a cross attention module by padding one of the inputs to the length of the other to make the attention matrix square. Now since both inputs come from different sentences with different sentence lengths, a non-symmetric 2D attention mask is the general case. However, this way I can still work with the built-in assumption of the block sparse operations that the key-query matrix is square.
I had to slightly generalize the input preparation since now the batch size is another dimension which should not be squeezed.

I do not need this functionality anymore, so will only be able to provide limited guidance. Feel free to close if noone else needs this.

Thanks, @jglaser - closing this now then since its fairly old.  Appreciate your contributions and next time we will do a much better job reviewing things promptly.


Add validation for private message recipients.

The function will check whether the recipient is in settings.CROSS_REALM_BOT_EMAILS or settings.ADMIN_DOMAIN
Fixes: #930

@timabbott

Responding to one of the comments now lost by GitHub after your last rebase:

@timabbott Can you explain a little bit more on using dictionary and fold_case to do the case-insensitive comparison? Also what should be the name of the function when we refactor the code.

If you grep for fold_case in the Zulip frontend codebase, you'll see what I meant with that.
If we go the function route, I'd use a verbose but clear name like string_in_list_case_insensitive.

@timabbott Fixed the issues. Please check.

Posted a couple comments; otherwise this looks good!

@timabbott Updated the code. Please check.

@hackerkid this looks good, a few small requests:
(1) Can you put the fixes to the new function introduced by the first commit in the first commit?
(2) Can you add a comment in validate_private_message explaining the logic here?  Basically, the user is allowed to send private messages to other users in the realm, plus certain special cross-realm users.
(3) Maybe we should rename cross_realm_bot_emails to just cross_realm_user_emails?  That way if we later add some non-bot users who can talk cross-realm, the name is fine.

@timabbott Updated !

Cool, looks great!  I noticed one more small problem and added a commit just before this branch to fix it, f44b227b852d89364cac3d77f54eecd3bce01688.  It just makes the frontend list of cross-realm users match what we're using in the backend code (your version only had the cross-realm bots, not the ADMIN_DOMAIN admin users).
I'm not closing this PR yet, because I think you should additionally add some tests for validate_private_message (probably in the frontend_tests/node_tests suite; might consider adding a new compose.js file in there for this).

@timabbott When requiring compose.js for writing node tests I have to define $.trim method. But compose.js also requires $ to be defined as function so that the values $().on, $.attr, etc are valid.
set_global('$', function () {
    return {
        on: function () {
            return;
        },
        attr: function() {
            return {
                blur: function() {
                    return;
                }
            }
        },
        show: function () {
            return;
        },
        val: function () {
            return;
        }
    };
});

What is the work around on defining the $.trim method?

What happens if you just add e.g. $.trim = function () {return;};?

Alternatively, you can use actual jQuery, which I think would be reasonable here, like we do in templates.js: global.$ = require('jQuery');

@timabbott Thanks.That fixed the problem. :+1:

@timabbott I am having trouble defining window which lies inside a jquery argument function

$(function () {
    $("#new_message_content").autosize();

    // Run a feature test and decide whether to display
    // the "Attach files" button
    if (window.XMLHttpRequest && (new XMLHttpRequest()).upload) {
        $("#compose #attach_files").removeClass("notdisplayed");
    }

    // Lazy load the Dropbox script, since it can slow our page load

I tried defining it like this
var window = {
    XMLHttpRequest: ""
}
set_global('window', window);

But I am getting this error
ReferenceError: window is not defined

The window is accessible when it is outside the function. How to fix this?

Hmm, we have some code in server_events.js for doing a set_global on window; have you tried using that?  If not, can you post the actual test that's failing so I can debug interactively?

@timabbott I have added the tests as commits. You would have to remove this function in util.js to reproduce the error. I tried defining the window like in server_events.js.
(function test_normalize_recipients() {
    assert(util.normalize_recipients('<EMAIL_ADDRESS><EMAIL_ADDRESS>'), 'alice@foo.com,bob@foo.com');
}());

@hackerkid cool!  It looks like this isn't passing tests, though?

@timabbott I am still stuck at window is not defined error. If you run the tests you would get an error in util.js. When you remove the test_normalize_recipients  in util.js you can access the window error. Sorry there are a lot of errors right now.

@timabbott Can I write a casper test for this instead of the Node.js test. I am still stuck at the window error.

@timabbott Actually all the variables inside
$(function () {
});

in compose.js has the value undefined.

Let me spend a bit of time debugging on the node test front, and if I can't get it to work, we can switch to a Casper test.  Does that seem reasonable?

@timabbott Yeah sure.

OK, I've figured out what's going on here.  Looking at the full output is after commenting out that util.js test_normalize_recipients test is instructive:
(zulip-venv)vagrant@vagrant-base-trusty-amd64:/srv/zulip$ ./tools/test-js-with-node
running tests for activity
running tests for alert_words
running tests for bot_data
running tests for compose
running tests for composebox_typeahead
running tests for dict
running tests for echo
running tests for filter
running tests for hashchange
running tests for i18n
running tests for message_list
running tests for message_list_view
running tests for muting
running tests for narrow
running tests for people
running tests for presence_list_performance
running tests for search_suggestion
running tests for server_events
running tests for stream_color
running tests for stream_data
running tests for stream_list
running tests for templates
running tests for unread
running tests for util
To see more output, open .test-js-with-node.html

/srv/zulip/static/js/compose.js:843
    if (window.XMLHttpRequest && (new XMLHttpRequest()).upload) {
        ^
ReferenceError: window is not defined
    at Object.module.exports (/srv/zulip/static/js/compose.js:843:9)
    at fire (/srv/zulip/node_modules/jQuery/lib/node-jquery.js:1100:30)
    at Object.self.fireWith (/srv/zulip/node_modules/jQuery/lib/node-jquery.js:1218:7)
    at jQuery.extend.ready [as _onTimeout] (/srv/zulip/node_modules/jQuery/lib/node-jquery.js:460:14)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

The failure is actually happening after all the tests have finished running and passing!  So what's going on here is that by using full jquery, and loading compose.js (which for whatever reason is different from our other modules in this respect), after all the tests are finished running, the node.js test suite's jQuery runs the late initialization code for compose.js (inside the $(function () { starting around line 824), and that code accesses window and document and so on, in a context where those things don't exist, and thus fails.
I think probably we need to do something, either in index.js or in how we import jquery, to turn off this "run later timer" functionality, since it's certainly undesirable

@hackerkid have you had a chance to look into disabling that feature of jquery in the node tests yet?  I think that's all we need to do in order to make this work.
@showell may have some ideas for how to do this as the original author of the node test suite :)

My memory is pretty fuzzy on the jQuery stuff, but I remember that getting the node tests to work w/jQuery never got too far beyond the experimental phases, so I wouldn't be surprised if there are dragons lurking.  Is it possible to stub out the run-later-timer logic?

I think so!  We just need to find out where the code for that is to stub it
out :)

There a couple stubbing mechanisms.  Look at patch_builtin in index.js, for example.  Have you isolated which test causes this?  I.e. can you remove any particular test from index.js and make the problem stop?

Not to be overly defensive of the node tests--they are definitely janky, especially when jQuery gets involved--I would definitely look at the production code to see if there are anythings janky in it as well.  Whatever is going on here, if it can cause flakiness in the node tests, I'm willing to be $10 it can also cause flakiness in the Casper tests.  :(

Irrespective of getting these tests to pass, I think it's a good practice to extract initialization code from an anonymous function into something like function initialize(), just so it has a name in tracebacks.  And then, back to testing concerns, that sets you up better to stub it for testing certain methods in isolation.

@timabbott Was planning to continue working on this once subdomains get merged.

@showell @hackerkid maybe it's worth finishing these tests up?

So the compose code is kind of hard to unit test, because it primarily does UI stuff, and there's not a very good separation between the UI code and code that doesn't involve the UI.
You can get past some of the startup UI code by saying global.stub_out_jquery(); at the top of the module.  And then you can skip some of the UI stuff in compose.validate() by directly testing validate_private_message().
Even the function validate_private_message() is coupled to the UI via compose_error().  Both of those functions are private now, but we could expose those by doing something like exports._validate_private_message = validate_private_message and exports._compose_error = compose_error.  Then we'd run tests against the validate function and stub out the error function.  There would still be some dependencies with util and people to deal with.
So, it's possible to continue these changes, but I'm not sure it's worth the degree of difficulty at this point.  @timabbott: I am abandoning the PR for now, but @hackerkid, feel free to re-open it if you want to take another stab it.


No longer working?

When I try to expose a port I get:
504 Gateway timeout

seems to be working for me

@robbie-cahill I'm also getting a 504 - it's coming from nginx so I assume that's your actual infrastructure
Oddly, it only seems to happen when I'm running my service in docker (specifically on a mac under colima).  I have noticed with this config that localhost seems... problematic and often I need to use <IP_ADDRESS> instead.

@robbie-cahill I'm also getting a 504 - it's coming from nginx so I assume that's your actual infrastructure
Oddly, it only seems to happen when I'm running my service in docker (specifically on a mac under colima). I have noticed with this config that localhost seems... problematic and often I need to use <IP_ADDRESS> instead.

I figured this out - colima is not exposing ports to both :1 and <IP_ADDRESS> - but /etc/hosts defines "localhost" as both of these.  One possible fix is to get colima to expose ports to both, but in the short term I commented out the ipv6 version of localhost, and this fixed all my localhost vs <IP_ADDRESS> problems, including the 504 problem noted here.


Spot-dl error on 50%

System OS
Windows
Python Version
3.10 (CPython)
Install Source
GitHub
Install version / commit hash
4.0.1
Expected Behavior vs Actual Behavior
so i was just trying to install a song and this showed up

i was using the web app using the executable .exe file
Steps to reproduce - Ensure to include actual links!
open  spotdl-4.0.1-win32.exe
give the spotify link
and just get the error
Traceback
Updating
<IP_ADDRESS>:52174
<IP_ADDRESS>:52174
<IP_ADDRESS>:52175
127.€.0.1:52174
127.€.€.1:52174
17:36:28 - ERROR
- ERROR
17:36:28 - ERROR
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
web app
Started server process [3776]
Waiting for application startup.
Application startup complete.
Uvicorn
running on http://127.e.ø.1:88€e (Press CTRL+C to quit)
- "GET / HTTP/I.I" 260 0k
- "GET /assets/index.51f4422f.js HTTP/I.I" 260 0k
- "GET /assets/vendor.7698a149.js HTTP/I.I" 260 0k
<IP_ADDRESS>:52174 - "GET /assets/index.d96dcc94.css HTTP/I.I" 200 0K
- "GET /api/settings HTTP/I.I" 200 0k
- "GET /assets/spotd1.5dcb64ce.svg HTTP/I.I" 0k
— Connecting WebSocket: {'client_id' :
' 879e893f-U1cU-U6b7-a7b1-eUd80122d073 '
- INFO
('127.€.€.1', 52178) -
"WebSocket /api/ws" [accepted]
connection open
- INFO
- INFO
, 'websocket' : <starlette.websockets .WebSocket object at ex€O€O€2€85259A8FO>}
. . 1:52177 - "GET /api/song/urt?urt=https:*2F%2Fopen.spotify.com*2Ftrack*2Fun7jnsxVLd8QioibtTDBDq%3Fsi%3D2bebe3e6123948da HTTP/I.I" 200 0k
127 € o.
— On My Way — Alan Walker: Downloading
— 1/0 complete
— TypeError: expected str, bytes or os.PathLike object, not int
— Error downloading! Failure downloading On My Way
— Error downloading!
127.€.€.1:52177 - "POST a i download en.s otif •nsxVLd8 ioibtTDB
&client id=879e893f-u1cu-U6b7-a7b1-eud89122d€73 HTTP 1.1" Internal server Error

Other details
No response

fixed in v4.0.2


Render Mode Failure

Describe your bug here. If you are modding, try testing your bug in a clean version of the engine instead. Also, if you're using an older version of JSE, please try the latest version/action build. Also, be sure to check the pinned 'JS Engine: Known Issues' issue, to check if your issue hasn't already been found!
Everytime I enable rendering mode and click on a song to play, the engine closes by itself. I can send you a unlisted YT video here: https://youtu.be/VR2dqMUEGK4
Command Prompt/Terminal/Crash logs (if existing)
No response
Have you identified any steps to reproduce the bug? If so, please describe them below in as much detail as possible. Use images if possible.
Activate Rendering mode, go to Freeplay, and then click on the song.

Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
No
If you use 1.12.0 or earlier, did you have Optimized Chart Loading turned on?
None
Did you check for any similar issues to what you're reporting? Check, then come back here. If there is a similar issue, then do not report the issue, otherwise it will be marked as a duplicate.
No

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

this exact crash has been reported many times.
try to go in the visuals & ui menu and reset/change your noteskin/splash skin options.
if it still crashes idk what to tell you, it's not crashing for me

ok i did change the ffmpeg version and updated a couple of personal visual settings. MY PREDATOR HELIOS 300 RENDERED ULTRASOUND IN 4 MINUTES!

Ok I fixed the bug lmao FFMPEG was in another location of another JS Engine sdjpiauhfquiwnqwoief


K8S the hardway setup using console-GKE/GCP only - possible?

Not really an issue, does the console of GCP support setting up K8S the hard way? or Is gcloud cloud shell or CLI the only option?
Right now, GKE on GCP supports 1.7.6 version, I started my300$ Free Tier today and hence the above Question.
Thanks

I used the shell to ensure a step by step experience that's easy for me to test and others to replicate. For the most part you can do almost everything using the GCP console, but I would have to create a ton of screenshots to provide a step by step guide.

Perhaps, a video recording to YouTube might help for newbies likeme. Thanks.
On 18-Dec-2017 9:02 PM, "Kelsey Hightower"<EMAIL_ADDRESS>wrote:

I used the shell to ensure a step by step experience that's easy for me to
test and others to replicate. For the most part you can do almost
everything using the GCP console, but I would have to create a ton of
screenshots to provide a step by step guide.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kelseyhightower/kubernetes-the-hard-way/issues/232#issuecomment-352461111,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AdwXhhD4oMOyAw63CbIyKmAGhTQRHjsmks5tBoWHgaJpZM4PyzKk
.


Max length for splitStrings

Is your feature request related to a problem? Please describe.
I'm always frustrated when I have a very long string that is split in very small chunks by splitStringsChunkLength, eg:
data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2CmV1unU4zPgISg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQPbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7
splitString is great to hide values like document ("docu"+"ment"), but performs horribly with absurdly long strings: it increases the obfuscated payload size, and performances are bad.
Describe the solution you'd like
I would like to specify a maximum string length. Past this threshold, strings are ignored and not split in tiny chunks.
Describe alternatives you've considered
Disabling splitString, and crying. They're mediocre alternatives, I don't recommend them

What do you mean?
Split with too long strings have too slow performance?

Yes, this leads to slow performances -- but more importantly, the generated script can be 2x to 3x as big due to it.


Collision Detection

I am having troubles.
So I am coding in collision detection
https://yewtreedesign.github.io/120-work/hw-12/
but I want to include images.
I want the images to change when they collide.
Here's what I have so far;
`
let seal;
let boop;
function preload(){
seal = new Bubble loadImage('seals/seal.png');
boop = new Bubble loadImage('seals/boop.png');
}
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
if (seal.intersects(boop)) {
background(200, 247, 247);
}
seal.show();
boop.show();
seal.move();
boop.x = mouseX;
boop.y = mouseY;
}
class Bubble {
constructor(x, y, r, img) {
this.x = x;
this.y = y;
this.r = r;
this.seal= img;
}
intersects(other) {
let d = dist(this.x, this.y, other.x, other.y);
return (d < this.r + other.r);
if (d < this.r + other.r) {
  this.seal = boop;
//   return true;
// } else {
//   return false;
 }

}
contains(px, py) {
let d = dist(px, py, this.x, this.y);
if (d < this.r) {
return true;
} else {
return false;
}
}
move() {
this.x = this.x + random(-2, 2);
this.y = this.y + random(-2, 2);
}
show() {
image(this.seal, this.x, this.y, this.r);
}
}
`
here's the images:

I am stuck and it shows up blank in the browser. What am I doing wrong?

I did not test this yet, however I see in your intercect function you RETURN (d <this.r + other.r). Whenever you return something in a function, it completes the function and wont continue. So it isn't getting to your if statement.
I would rewrite like...
intersects(other) {
  let d = dist(this.x, this.y, other.x, other.y);
  let intersect = (d < this.r + other.r);

  if (intersect) {
    this.seal = boop;
    return true;
   } else {
   return false;
  *and reset it to regular seal*
  }
}


Add typedMetadata for RouteEntry&ClusterInfo

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description: Add typedMetadata interface for RouteEntry and ClusterInfo.
design doc : http://doc/1AKA_5iMSR6WZaDbjQfLFbK9maO_la_MZgVtYdD9gWtA
Risk Level: LOW (new interface)
Testing: unit test.
Docs Changes: Api level.
Release Notes:
[Optional Fixes #Issue] #4513
[Optional Deprecated:]

loop in @AndresGuedez

Can you please make the design doc public? I would like to understand the motivation properly. Given the amount of bikeshedding that has gone into the simple filter state, I really don't want more eccentric interface into metadata and having to deal with two ways of passing data across filters.

Can you please make the design doc public? I would like to understand the motivation properly. Given the amount of bikeshedding that has gone into the simple filter state, I really don't want more eccentric interface into metadata and having to deal with two ways of passing data across filters.

Hi @rshriram , could you try this link? https://docs.google.com/document/d/1AKA_5iMSR6WZaDbjQfLFbK9maO_la_MZgVtYdD9gWtA/edit?usp=sharing
In short, we want to have a convenience wrapper around some metadata entries, which removes the toil of deserialization & provides other helper functions.

This also raises the question of why have perRouteFilterConfig in the route at all, if we allowed typed data in the metadata entry, that can be used by other filters.. @htuch was particular about not using the generic metadata for sharing info from Envoy route to all other filters, and that we should have a dedicated perRouteFilterConfig thing (semantically, it allows the control plane to add typed objects in the route that can then be used by the filters to retrieve info). This filter is doing something very similar, except its actually using the metadata again.

Can you please make the design doc public? I would like to understand the motivation properly. Given the amount of bikeshedding that has gone into the simple filter state, I really don't want more eccentric interface into metadata and having to deal with two ways of passing data across filters.

Could you please confirm you have access to the design doc?  I have little knowledge about doc sharing works, but I think it's opened to public by link.

This also raises the question of why have perRouteFilterConfig in the route at all, if we allowed typed data in the metadata entry, that can be used by other filters.. @htuch was particular about not using the generic metadata for sharing info from Envoy route to all other filters, and that we should have a dedicated perRouteFilterConfig thing (semantically, it allows the control plane to add typed objects in the route that can then be used by the filters to retrieve info). This filter is doing something very similar, except its actually using the metadata again.

The metadata as I understand is to provide another way to offer config data to filters other than config data that creates the filter, but to serve the filter.  I have little knowledge of the perRouteFilterConfig,
I think you mean perFilterConfig in route?

Sorry not quite familiar with this UI, but to your question:
"Please reconcile with RouteSpecificFilterConfigs.. Otherwise, we are going to have one too many snowflakes involving typed* all over the code. "
We should probably as some point consolidate this class with filterState::Object, as they serve the same purpose (offer a root for typedData), and that's part of why I pick filterState::Object as the root in this PR. But I am afraid it's not in the scope of this PR.

My thoughts are the following:

The existing per-filter config mechanism serves a validation and necessary purpose; providing a distinct, typed mechanism for per-route config overrides for filters. Structure makes sense here, as this is a very specific use of metadata and calling it out clarifies the intended purpose. This configuration is supplied to the filters at instantiation time.
The mechanism in this PR is specifically intended to assist filters in capturing per-service metadata in a typed, consistent snapshot, where this data may be shared across the filter chain at execution time.
While it's possible to make use of (2) to also provide additional typed route data, that is a role that is already provided by (1).
We should not churn the per-filter route config mechanism, this creates an unstable API for users.

I think @stevenzzzz that we need docs that clearly explain the different metadatas and configs, including dynamic, filter state, per-route filter state, fixed metadata, and your new abstraction. There should be a doc that explains what each of these is/does, and when you want to use one instead of the other. That to me is reasonably in the scope of this PR.

My thoughts are the following:

The existing per-filter config mechanism serves a validation and necessary purpose; providing a distinct, typed mechanism for per-route config overrides for filters. Structure makes sense here, as this is a very specific use of metadata and calling it out clarifies the intended purpose. This configuration is supplied to the filters at instantiation time.
The mechanism in this PR is specifically intended to assist filters in capturing per-service metadata in a typed, consistent snapshot, where this data may be shared across the filter chain at execution time.
While it's possible to make use of (2) to also provide additional typed route data, that is a role that is already provided by (1).
We should not churn the per-filter route config mechanism, this creates an unstable API for users.

I think @stevenzzzz that we need docs that clearly explain the different metadatas and configs, including dynamic, filter state, per-route filter state, fixed metadata, and your new abstraction. There should be a doc that explains what each of these is/does, and when you want to use one instead of the other. That to me is reasonably in the scope of this PR.

Copy that. Happy to update the docs and make this work.
Thanks!

Hey Harvey, as we've communicated, this PR is kinda orthogonal to the dynamicMetadata versus perRequestState/preConnectionState discussion happened offline.
I have nuked the doc file, PTAL

@stevenzzzz can you merge master, there is a conflict?

@stevenzzzz can you merge master, there is a conflict?

sure thing. Should be merged now.


Correction for raw affiliation IHRIM, UMR 5317 CNRS, Université de Rouen-Normandie, Place Emile Blondel, 76130, Mont Saint Aignan, France

Correction needed for raw affiliation IHRIM, UMR 5317 CNRS, Université de Rouen-Normandie, Place Emile Blondel, 76130, Mont Saint Aignan, France
raw_affiliation_name: IHRIM, UMR 5317 CNRS, Université de Rouen-Normandie, Place Emile Blondel, 76130, Mont Saint Aignan, France
new_rors: 02feahw73;03nhjew95;02wmc6m46
previous_rors: 02feahw73;03nhjew95
works_examples: W2575197150
contact: bd2866c5d7ccbcdb1d3eb20819dce08c:cc629b65b54aaac42668c798bc73 @ ens-lyon.fr

This issue was accepted and ingested by the OpenAlex team on 2024-11-01. The new affiliations should be visible within the next 7 days.


[FEAT] Need an easy way to toggle interact mode

Describe the feature
A user needs to switch to interact to scroll inside the elements, would be great to be able to quickly do that.
CMD+option to swap to interact mode would work

Part of #152

This was solved in #193


events in month view should sort by start time

currently it appears that events in month view are sorted by course as well as start time within each day block; this leads to events being out of time order in the visual stack.
Events should be sorted strictly by start time.

couldn't quite figure it out (yet), this may be something in the elemental calendar.
anyhow, i've unassigned myself from this issue for now. don't want to hog it as i don't expect to be working on it anytime soon.


HTML entities are not being properly decoded

Seems like encoded html entities are not handled properly.
See this example: https://runkit.com/embed/9n1c04lodkqm
Providing the following html:

Let's go

I expect the following output when calling parseHTML(html).textContent:
Let's go

However, zeed-dom outputs the entities undecoded:
Let's go

I can see there is a small list of encoded/decoded entites in encoding.ts, but all other entities are being ignored.
Seems like there used to be a check to optionally load he if available. I understand this could cause issues, however the current behavior is not ideal either. Can this be improved in any way?
Thanks!

Thanks for good description of the problem. I'll look into it, this is indeed a bug.

Thanks for a swift fix!
Shouldn't he be now listed as zeed-dom's dependency in package.json?

Absolutely, here it is https://github.com/holtwick/zeed-dom/blob/master/package.json#L44

Ah, overlook that. Great!