Import images

Just in case someone wants to work on this, the implementation should have these attributes:
Technical

The image source data (the base64 or whatever format) shouldn't be stored in elements array, but live in a separate data structure (likely in appState.images).
The image source will be linked to an element (of {type: "image"} or something) that will live in elements — this element will be used for manipulation, and act as a normal element would.
In collab, the image source shouldn't be synced more than once per session. Only the element in elements array should be synced freely as we normally do with other elements.
The image source should be compressed (using pako zlib library we're already using for something else) before syncing/storing to database. Note, we're talking about a lossless compression, but EDIT: gzipping the image will actually offer almost no benefits, so let's not do that. But we'll want to serialize to binary string instead of base64 (which is inefficient). But we may also consider lossy compression (thus encode as JPG).
There should be a limit on individual size, and likely a limit on total images per scene.
When persisting the image to server (e.g. for collab scenes), we're currently using Firebase Firestore, which has 1MB size limit on documents. So we'll need to persist the images to separate Firestore documents, or preferably to Firebase Storage which is more suited for resources such as images (it also has better pricing per GB).

UI

For the first iterration we don't want any UI changes and adding images should happen with drag and drop (and maybe in the context menu to support mobile)
Show additional information in stats

Total number of images
Total size of images
When selecting an image or two.. show their size.

How about in the interim we support insertion from URL?

From UX perspective, you should be able to:

Drag and drop any image onto the window/canvas
Paste from image clipboard
Change fill mode: Fill, Contain, Tile

Seems like we should also be able to crop the image with a shape or upload it as a shape's fill, but that may be better left for a new issue.

Persistence could be done as base64 encoded json values

Keep in mind that we still store to localStorage (so we have ~5MB limit) and need to cache app (+canvas) state (potentially multiple, when #253 is implemented). Copy/pasting (meaning potentially another whole canvas) logic will also use localStorage.
Maybe we should investigate using different storage (IndexedDB...), soon.

Perhaps the implementations should be every image blob a key on localstorage and only store on the file the reference to the item. Others are doing these, (thought kibana)

We could upload the images in an encrypted manner to json.excalidraw.com.

What about downloading the file?

Download a zip maybe?

+1

How about getting a non-profit license from a hosting service? I've used Cloudinary in the past. cc @vjeux

How about getting a non-profit license from a hosting service? I've used Cloudinary in the past. cc @vjeux

What's wrong with uploading them to json.excalidraw.com? (If we are going to that route)

Yeah, I’d rather not we use random third party to host user content. We already have a way to store end to end encrypted blobs with json.excalidraw.com

I've worked on this for a couple of hours and found it fairly simple to add a new component so that's kudos to neat code. I've noticed there's PR #1589 which is also implementing this, so will pivot to help that progress.

is there any progress on this issue?

is there any progress on this issue?

Not at this moment.
I'm gonna link here what the implementation should look like: https://github.com/excalidraw/excalidraw/pull/1589#issuecomment-716223677

Not at this moment.
I'm gonna link here what the implementation should look like: https://github.com/excalidraw/excalidraw/pull/1589#issuecomment-716223677

Hi community of excalidraw!   =)
I’m Daniel and i’m working as an assistant at the computer center of Bauhaus-Universität Weimar. My job is to research on open source alternatives fitting to the needs of the people of our university. Further I am doing my master thesis „Sources of Freedom“ about the potential of FLOSS for artists and designers.
There is a professor for industrial design, Andreas Mühlenberend, who understands the benefit of community driven open source projects and he likes excalidraw very much! Especially the wiggling lines
A feature to import images would be killer for the use of excalidraw in his every day lessons. This professor asked me to ask you, if it would be possible to pay someone from your community to implement it. And if so, how much about it would cost?
With best regards from Weimar, Germany,
Daniel

Hi community of excalidraw!   =)
I’m Daniel and i’m working as an assistant at the computer center of Bauhaus-Universität Weimar. My job is to research on open source alternatives fitting to the needs of the people of our university. Further I am doing my master thesis „Sources of Freedom“ about the potential of FLOSS for artists and designers.
There is a professor for industrial design, Andreas Mühlenberend, who understands the benefit of community driven open source projects and he likes excalidraw very much! Especially the wiggling lines
A feature to import images would be killer for the use of excalidraw in his every day lessons. This professor asked me to ask you, if it would be possible to pay someone from your community to implement it. And if so, how much about it would cost?
With best regards from Weimar, Germany,
Daniel

Can I work on this feature?

Can I work on this feature?

So it is decided? We are going the cloud way? How it's going to work when saving the file? Do you need internet to see it? How big much can we get from local storage?

So it is decided? We are going the cloud way? How it's going to work when saving the file? Do you need internet to see it? How big much can we get from local storage?

The cloud will only be used for when persisting collaboration scenes to server (technically, link-shared scenes could do that as well). When saving the file locally, the image will be encoded into the JSON file in base64.
Though it seems we haven't specced that part yet :).
But you raise a good question about browser-persisted scenes (LS). I guess we'll need to start using IDB after all. Alright, this is getting more complex by the minute.
The sad part is, all of this must be implemented together in the first take because we can't support images in a way that will error out when you start collaboration session, or refresh browser, or save the file locally. It's either all or nothing.

The cloud will only be used for when persisting collaboration scenes to server (technically, link-shared scenes could do that as well). When saving the file locally, the image will be encoded into the JSON file in base64.
Though it seems we haven't specced that part yet :).
But you raise a good question about browser-persisted scenes (LS). I guess we'll need to start using IDB after all. Alright, this is getting more complex by the minute.
The sad part is, all of this must be implemented together in the first take because we can't support images in a way that will error out when you start collaboration session, or refresh browser, or save the file locally. It's either all or nothing.

Let's write an RFC in another issue with all the technical stuff that we need as a check list and modify that one.

Let's write an RFC in another issue with all the technical stuff that we need as a check list and modify that one.

I've create the following PR #3424. It covers just the basics, but I can try to finish the implementation.
@lipis could you please try to summarize what else should be covered?
@dwelle I have some experience with Firebase, so if you have a clear idea what we want I can try to implement it.

I am still confused. Can I add logos or pictures. It is preventing me from creating effective diagram.

This is in development. It won't be released soon. You can use the excalidraw library to add some logos or symbols.

+1

@o0O-ds-O0o note that anyone can support the project at any time from https://opencollective.com/excalidraw

Any tentative date on when this feature will be released?

Check the PR mentioned above.

Any updates on this issue? The PR referenced is a POC and hasn't had any activity in 2021.

Wrong PR. This one is active: https://github.com/excalidraw/excalidraw/pull/3424. Will get back to it in a few days. Latest preview: https://excalidraw-9im2ruy53-excalidraw.vercel.app/

While this PR is being worked on. For my IntelliJ IDEA Excalidraw integration plugin I copied internal code to support image export / import as suggested by  (although I am currently using version 0.8).
Eg (along with a few other files, like codec.ts) :
https://github.com/bric3/excalidraw-jetbrains-plugin/blob/main/excalidraw-assets/src/image.ts
This is definitely a workaround but it's working.

We need to finalise few API's so probably by end next month we will be shipping the next release

Would it be possible for this to support PDFs as well?

@gohma231  what do you mean? If you convert the pdf file to an image then you can use it. If you have something else in mind, please create an issue and elaborate on it.

Seems like we should also be able to crop the image with a shape or upload it as a shape's fill, but that may be better left for a new issue.

would love to be able to crop images.

@gohma231 what do you mean? If you convert the pdf file to an image then you can use it. If you have something else in mind, please create an issue and elaborate on it.

is it possible to load the pdf file in excalidraw so that i can read and annotate texts or pictures in pdf via excalidraw and automatically (or manually) generate elements in canvas of excalidraw? what inspired me is an app called guga compatible only with ipad currently, and since that app is similar to excalidraw in terms of a whiteboard, excalidraw can work better with obsidian if some functions(especially with pdf) can be realized.

@wutsminame you can:
https://www.youtube.com/watch?v=nB4cOfn0xAs&ab_channel=Zsolt'sVisualPersonalKnowledgeManagement
(maybe you already know)


provider_settings are usually string

For example:
"provider_settings.%": "3",
--
  | "provider_settings.pull_request_branch_filter_configuration": "",
  | "provider_settings.repository": "x/y",
  | "provider_settings.trigger_mode": "code",

fails currently with:

* buildkite_pipeline.web_deploy_harnesses: 1 error(s) occurred:
--
  |
  | * buildkite_pipeline.web_deploy_harnesses: unexpected EOF
  | panic: interface conversion: interface {} is string, not bool
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite:
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: goroutine 32 [running]:
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: github.com/saymedia/terraform-buildkite/buildkite.preparePipelineRequestPayload(0xc420207a40, 0x16)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/home/ubuntu/go/src/github.com/saymedia/terraform-buildkite/buildkite/resource_pipeline.go:300 +0x11a0
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: github.com/saymedia/terraform-buildkite/buildkite.UpdatePipeline(0xc420207a40, 0xa618a0, 0xc42026d7c0, 0x0, 0x0)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/home/ubuntu/go/src/github.com/saymedia/terraform-buildkite/buildkite/resource_pipeline.go:229 +0xbe
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: github.com/hashicorp/terraform/helper/schema.(*Resource).Apply(0xc420256c60, 0xc4200fea50, 0xc420281220, 0xa618a0, 0xc42026d7c0, 0x1, 0x28, 0xc4202dd920)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/home/ubuntu/go/src/github.com/hashicorp/terraform/helper/schema/resource.go:192 +0x378
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: github.com/hashicorp/terraform/helper/schema.(*Provider).Apply(0xc4202071f0, 0xc4200fea00, 0xc4200fea50, 0xc420281220, 0x7f63f3a774b0, 0x0, 0x0)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/home/ubuntu/go/src/github.com/hashicorp/terraform/helper/schema/provider.go:242 +0x9b
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: github.com/hashicorp/terraform/plugin.(*ResourceProviderServer).Apply(0xc420213fe0, 0xc420280a00, 0xc4202978c0, 0x0, 0x0)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/home/ubuntu/go/src/github.com/hashicorp/terraform/plugin/resource_provider.go:488 +0x57
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: reflect.Value.call(0xc42001cba0, 0xc42000e480, 0x13, 0xab4719, 0x4, 0xc420040f20, 0x3, 0x3, 0xadab90, 0xc4201fcee8, ...)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/usr/local/go/src/reflect/value.go:434 +0x91f
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: reflect.Value.Call(0xc42001cba0, 0xc42000e480, 0x13, 0xc4201fcf20, 0x3, 0x3, 0xc4201fcf0c, 0x180001, 0x200000000)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/usr/local/go/src/reflect/value.go:302 +0xa4
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: net/rpc.(*service).call(0xc4202799c0, 0xc420279980, 0xc42027c188, 0xc420023d80, 0xc42026cec0, 0x9aab00, 0xc420280a00, 0x16, 0x9aab40, 0xc4202978c0, ...)
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/usr/local/go/src/net/rpc/server.go:387 +0x144
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: created by net/rpc.(*Server).ServeCodec
  | 2017/07/13 01:42:54 [DEBUG] plugin: terraform-provider-buildkite: 	/usr/local/go/src/net/rpc/server.go:481 +0x404
  | 2017/07/13 01:42:54 [DEBUG] root: eval: *terraform.EvalWriteState
  | 2017/07/13 01:42:54 [DEBUG] root: eval: *terraform.EvalApplyProvisioners
  | 2017/07/13 01:42:54 [DEBUG] root: eval: *terraform.EvalIf
  | 2017/07/13 01:42:54 [DEBUG] root: eval: *terraform.EvalWriteState
  | 2017/07/13 01:42:54 [DEBUG] root: eval: *terraform.EvalWriteDiff
  | 2017/07/13 01:42:54 [DEBUG] root: eval: *terraform.EvalApplyPost
  | 2017/07/13 01:42:54 [ERROR] root: eval: *terraform.EvalApplyPost, err: 1 error(s) occurred:

due to an incorrect conversion from string -> bool.

PR updated

Thanks for this, @joscha!
I also added a simple acceptance test and turned on Travis-CI runs for the basic provider test (which doesn't really do anything, but at least tests that things can compile.) Hopefully that will make it easier to test changes in future.

Awesome @apparentlymart - that's actually what I wanted to chat with you about - I got an open source free plan from the buildkite guys and would like to add a few tests to the pipeline, but for that I have to invite you (which means I need your email address) and either you have to set up the secrets or make me a collaborator on the project :)

I already have a free account for testing, so no need to worry about me! Like with the acceptance tests in the "official" Terraform providers, it uses environment variables to get the credentials.
I wasn't planning to set up any automatic running of the acceptance tests since it's easy enough to run them locally with the current level of development. Travis is running the unit tests, though, which at least verifies that the code compiles and that the provider complies with Terraform's expectations.


[app] Fix terminal for Kubernetes Pods

This commit fixes two smaller problems with the built-in terminal for
Kubernetes Pods:

When a opened a terminal and then selected another container or shell
to open a new terminal the commands where send twice to the terminal.
When a user reached the end of a line the command overflows to the
start of the line instead of a new line.

[x] I added a CHANGELOG entry for this change.
[ ] I adjusted the corresponding documentation for this change.
[ ] I adjusted the values.yaml file and the documentation for all values.

Codecov Report

Merging #391 (0401194) into main (17c699b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #391   +/-   ##
=======================================
  Coverage   45.20%   45.20%
=======================================
  Files         134      134
  Lines       10377    10377
=======================================
  Hits         4691     4691
  Misses       5608     5608
  Partials       78       78

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 17c699b...0401194. Read the comment docs.


retry: updated 3.0 gitignore to match master

updated openssl-3.0's .gitignore to match the master branches .gitignore (backporting)
Fixes #23574 - https://github.com/openssl/openssl/issues/23574
You can see the two original files here. I am updating the openssl-3.0 gitignore file to include the statements (backporting) in the master's gitignore file.
Deleted in line 10:
/*.pc
Added after line 16:
/builddata.pm
/installdata.pm

# Exporters
/*.pc
/OpenSSLConfig*.cmake
/exporters/*.pc
/exporters/OpenSSLConfig*.cmake

Added after line 59:
/include/internal/param_names.h

# Auto generated parameter name files
/crypto/params_idx.c

Added after line 118:
/test/timing_load_creds
Added after line 143:
/util/quicserver
Added after line 248:
!.ctags.d
Added after line 257:
# LSP (Language Server Protocol) support
.cache/
compile_commands.json

@bbbrumley - faculty at RIT who would like to track my PR progress :)

Please ignore my changes. I am having issues with Git at the moment.

@t8m @romen this one should be clean now :)

Unfortunately @dgbkn was faster submitting https://github.com/openssl/openssl/pull/23847

As that PR is already approved I am closing this one. Thank you anyway for your effort.


fix on json exception on getPaymentToken()

since env and type is not present on the JSON response by the backend. getString is replaced by optString

Please ignore if you're planning to fix the backend part

Hi @shawncalda thanks for this!


Releases/v0.14.0

Breaking

Reworked the MuxImaListener API to improve data accuracy (see below)

Improvements:

update Mux Data dependencies
add Swift Package Manager example

Need to write a brief migration guide here. It will automatically be moved onto the GH release.
Optionally, we can also add a note about it to the dev guide


Add nix support

Is this what will allow us to deploy/install e.g. as a .deb package, or something else?

No that is different, it allows us to package with Nix, which is a completely reproducible dependency manager. It is distro independent unlike .deb, .rpm, PKGBUILDS etc..


Convert stdio_mgr to be tuple StdioManager

Codecov Report

Merging #53 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #53   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines          77     91   +14
=====================================
+ Hits           77     91   +14

Impacted Files
Coverage Δ

src/stdio_mgr/__init__.py
100% <100%> (ø)
:arrow_up:

src/stdio_mgr/stdio_mgr.py
100% <100%> (ø)
:arrow_up:

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 a13f06a...d34f58b. Read the comment docs.

This no-op test needs to be updated, as __enter__ and __exit__ will no longer be called upon instantiation.


Test ezy.neuron.Neuron vs. features.get_feature compatibility.

Need to check get_features is equivalend to ezy Neuron member
functions functionality before deprecating and removing ezy
Neuron members.

Current coverage is 100.00%

Merging #298 into master will not affect coverage as of b7538a0

@@            master    #298   diff @@
======================================
  Files           41      41
  Stmts         1832    1832
  Branches         0       0
  Methods
======================================
  Hit           1832    1832
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of b7538a0

Powered by Codecov. Updated on successful CI builds.

@eleftherioszisis @lidakanari First step towards removing duplicated functionality: make sure it really is duplicated!


text_on_image Creator - Web design #145

https://images01.nicepagecdn.com/page/40/38/html-template-403835.jpg Design a text_on_image like the above image
Create a file "text_on_image_NUM_by_(YourName).html" in the modules/text_on_image folder.
Use simple HTML and CSS and JAVASCRIPT to create the text_on_image animation. You can use the interface development https://kwickerhub.com/ (This project) or you can write the lines of code yourself.
Step by Step Guide.
Fork this project(Use the 'fork' button in the top right corner) and Clone your Fork.
git clone https://github.com/YOUR_USERNAME/frontend
Open your code Editor and Create a file "text_on_image_NUM_YOUR_NAME_.html" in the "modules/text_on_image" folder of this project you just cloned. No need to create head, title and body tags, Just Add a div tag with some embedded style(i.e use the style tag) and the script tag where necessary.
If you want to add an image resource, please add it in the folder ••
"modules/text_on_image/images_and_icons"
We recommend you use an svg for your image/icon.
Push your Code: You need to push your recent changes back to the cloud. Use the command below in the main directory of this Repository
git push origin dev
or use a GUI tool to avoid mistakes or complexity. LOL.
Then make you Pull Request...
Below is a example of the code structure we need:
<div>
    <!---YOUR CODE---->
</div>

<style>
    /* YOUR STYLE */
</style>

<script>
    // YOUR SCRIPT if any
</script>

The goal of this issue is to create modules that other people/dev/designers can use or easily import into their projects. Avoid the desire to style all elements in the page by using codes like:
<style>

*{

}
/* OR */

div, a, h1, pre{

}

</style>

use classes or id to style the elements to avoid a collision of styles.
Remember to make your module usable across different screens(Make your design responsive).
For more examples:
modules->buttons
modules->cards
for examples of contributions or Pull request accepted in to the project.
And please do not wait for this issue to be assigned to you as we have limited hands but have a lot to do/cover. Please send in your PR.
Good-luck and thank you.

hey, i am doing this will add a PR soon.

Hi @NtemKenyor , I would like to work on this issue.

Hi @HarikaB11 I already worked on this issue and my Pr is also successfully merged. you are free to take any other similar issue. :)


Feature request: Ignore larva test step response

Reporter
Ricardo
Is your feature request related to a problem? Please describe.
As part of a larva test, I regularly have to cleanup tables in a database. To ensure I actually work on the state that I created as initialization, I need to do a .read to wait for the response. This requires me to have a file to compare that result with. As it is an initialization step, the response might change between runs, which would require several ignores. However, for later steps I am interested in the values returned, so ignores cannot be used. Currently the only solution is to use a DelayPipe and wait long enough for the transaction to finish.
Describe the solution you'd like
An .ignoreRead, which makes the adapter read the response, but do not do any compares with it.
Describe alternatives you've considered
N/A
Additional context
N/A

I don't understand why ignores cannot be used (though I understand that it ), and I also do not understand how the values could be used in later steps.
Could you explain?

I have a test in which I empty and fill various tables in the database as part of initialization. I need to be sure that that step has finished, so I need to do a read before doing a write on the actual adapter I want to test. As the content in the database might actually change between tests, I would need to ignore the X. The actual adapter ends with a FixedQuerySender, giving me the same rowsupdated in the response, where I do want to know how many rows have been updated. Then I empty the tables again, and there I also would want to know how much rows have been deleted. Of course I do verify the contents of the tables as part of the test, so with some set of ignores I could ignore the rowsupdated and still verify that my adapter worked as intended, but there might be other usecases where an .ignoreRead might be useful.

OK. I think I understand now.
You want an ignore, but only for this specific step. If you would construct an ignore of content between keys  and , they would be ignored everywhere.

Yes, you understand correctly.


Integrate EmbroideryIO Reads.

Pushing new version to app store.
EmbroideryIO is basically done. So it should have properly fleshed out reads of basically all known embroidery formats.
Reads:

10o
100
Bro
Col (color only format)
Csv
Dat (Sunstar & Baurdan)
Dsb
Dst
Dsz
Emd
Emm (internal format to this app)
Exp
Exy
Fxy
Gt
Inb
Inf (color only format)
Jef
Jpx
Ksm
Max
Mit
New
Pcd
Pcm
Pcq
Pcs
Pec
Pes
Phb
Phc
Pmv (brother stitch format)
Sew
Shv
Stc
Stx
Tap
Tbf
U01
Vp3
Xxx
Zxy

Writes:

Dst
Exp
Pec
Pes
Emm (internal format)
Jef
Pcs (might not work).
U01

I also can make sure it exports, .SVG, .CSV .PMV. But, strictly speaking these are not actually embroidery formats. They are vector, general text, and a stitch format for some Brother sewing machines. And I can successfully write VP3 format, and plan to add that.
While this makes for an exceptionally powerful backend, it does have a front end that generally ignores all these features.

Updated the manifest to include all of these types.
Updated EmbroiderIO to better decouple from the geometry stuff.


A small bug when preprocessing the VFHQ dataset

Good work and congratulations!
I came across a small bug when I preprocess the VFHQ dataset with the scripts scripts/preprocess_dataset.py. It is about reading files:
ibpng error: Read Error
cv2.error: OpenCV(4.8.1) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed...

That's because there is an image in the VFHQ dataset which has a transparent part.

The image's location is at
"VFHQ_dataset/Clip+8jwB6QSzjy4+P0+C1+F17517-17845/00000184.png"
simply removing this image or adding a judgement sentence at line100-line101 in scripts/preprocess_dataset.py can fix this issue.
if img is None:
    continue

Hope this can help someone.

Oh yes, excluding the invalid images is crucial. Thank you so much!


Secret key in file!

There is a key to your openai account in the local_search_engine_demo.py, and it says that there is also one in the davinci_demo. I would recommend removing them as soon as possible

Thanks, the keys are old but and they were already revoked. Still thank you I'm a mess with these things 😅


vvvvvv: init at 2.3.6

Description of changes
Adds VVVVVV, closing #77519 and superseding #79068.

Things done
Also updated tinyxml-2.
Didn't test Darwin at all. If no one can test it, I'll remove it.

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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

[ ] 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/)
22.11 Release Notes (or backporting 22.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

How does this address the problems discussed in #79068 ?

Result of nixpkgs-review pr 176140 run on aarch64-darwin 1

1 package marked as broken and skipped:

backintime

4 packages built:

backintime-common
encfs
tinyxml-2
vvvvvv

Plays great too!

How does this address the problems discussed in #79068 ?

To be fair, I looked at it less than I should.
As not a lawyer, and if I go by semantics, the thing that cannot be done is to distribute data.zip. Technically, what's being done is using a script to download data.zip from the official source, so it should be as ok as downloading it manually. (I may be wrong, though.)

Should I also add a vvvvvv-redist (or similar name) in all-packages.nix that overrides makeAndPlay to true or would it have no use?

How do I name it? vvvvvv-makeandplay? vvvvvv-redist?

Sorry for bumping this, but:

How do I name [the Make And Play version in top-level]? vvvvvv-makeandplay? vvvvvvv-make-and-play? vvvvvv-redist?

Sorry! I think vvvvvv-makeandplay would be fine.

Sorry for the bump, is there anything left to do for this to be merged?

Personally I'm ~fine with this, I think I preferred the requireFile solution from the earlier solution though. It's a little difficult since I believe since hydra is going to cache the data.zip it will "redistribute" it even when building the unfree version. Its just being distributed without any of the other binaries at all. Even though I think the allowed distribution is only when distributing it with make and play
but lets give the people involved in the last PR a chance to have some input
@anna328p @leo60228

I gave a quick look.
cache.nixos.org doesn't cache unfree-redistributable packages... yet. #83884
You are right, even with the Make And Play version, data.zip is still there (even in the official download page), so... yeah, it should absolutely not be cached.
It would be possible to prevent it by either making data.zip itself a derivation (so that it could have meta.license = unfree), or by simply adding meta.hydraPlatforms = [] so that both versions will never ever be cached no matter what happens (I prefer the second option).
At this point, though, I think it doesn't make sense to have the Make And Play version top-level...
TL;DR, if no one says anything, I'm gonna add meta.hydraPlatforms = [] and remove vvvvvv-makeandplay from top-level (I'll still leave it as an option).

Personally I'm ~fine with this, I think I preferred the requireFile solution from the earlier solution though. It's a little difficult since I believe since hydra is going to cache the data.zip it will "redistribute" it even when building the unfree version. Its just being distributed without any of the other binaries at all. Even though I think the allowed distribution is only when distributing it with make and play.
If both are marked as not being redistributable I think the problem goes away
but lets give the people involved in the last PR a chance to have some input
@anna328p @leo60228

I think a good way to do this is to make data.zip a derivation with two versions, one unfree-redistributable and one unfree (with requireFile maybe?). pass the unfree derivation to the full version of the game, and the unfree-redistributable version to the make and play edition. this means they would have different hashes? i am not sure

While I think using a licenses.unfree fetchurl for both M&P and the full version is technically fine, I do think it violates the spirit of the license, and it'd probably be preferable to use fetchurl for M&P and requireFile for the full version. However, without any additional steps, they would have the same hash. Something like what I proposed in https://github.com/NixOS/nixpkgs/pull/79068#issuecomment-581399903 would solve this.

For some reason it didn't build anymore, and I had to add some CMake stuff.
cmakeFlags = [
  # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
  # (setting it to an absolute path causes include files to go to $out/$out/include,
  #  because the absolute path is interpreted with root at $out).
  "-DCMAKE_INSTALL_INCLUDEDIR=include"
  "-DCMAKE_INSTALL_LIBDIR=lib"
];

And:
NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2_mixer}/include/SDL2";


Email verification - Placeholder

For email based indicators, attempt to identify common mail retrieval service subdomains (pop, pop3, mail, imap...etc) , also resolve and display those IP's in result boxes. Eventually add SMTP rcpt verification to determine if the mailbox in question exists/accepts email.
https://github.com/EmailVerify/email-verify

Resolved. Closing


Enhance command: aad o365groups recyclebinitem restore

aad o365group recyclebinitem restore
Restores a Group from the recycle bin shoudl get the DisplayName and Mailnickname options to search for a Group

Option
Description

--id [id]
Id of the Group in the recycle bin

-d, --displayName [displayName]
Displayname of the Group

-m, --mailNickname [mailNickname]
Mailnickname of the Group

--query [query]
JMESPath query string

--confirm
Does not ask for confirmation

Reference issue: #1982

Looking at the spec, is there a reason why the name and mail shouldn't be an exact match rather than a 'begins with'? In other commands we use an exact match so for consistency it would be better to follow the same approach here.
Also, let's change o365groups to a singular o365group

I would like to work with this one since I'm already working with the same chain of commands

Thank you. All yours

I'm working on it and expect to finish in the next couple of days.

I'm working on it and expect to finish in the next couple of days.

@waldekmastykarz and @plamber , I was looking that there is another command that seems to do the same thing as this one, is this correct?
O365GROUP_RESTORE: ${prefix} o365group restore

@waldekmastykarz and @plamber , I was looking that there is another command that seems to do the same thing as this one, is this correct?
O365GROUP_RESTORE: ${prefix} o365group restore

Hi @douglasromao,
yes. You are right. In the issue #1982 we mentioned that we are extending the existing command with the new parameters and create an alias for the old one. In such a way we ensure that we do not have breaking changes for scripts using the old command name.
Maybe we were not explicit enough in this issue. Sorry for that.
My recommendation would be to take the existing command, rename the name of the files and create an alias (We have an example how to implement the alias under mail-send.ts). Afterwards, you should add the additional filter parameters we mentioned in this issue.
Is this ok for you?
br,
Patrick

Hi @douglasromao,
yes. You are right. In the issue #1982 we mentioned that we are extending the existing command with the new parameters and create an alias for the old one. In such a way we ensure that we do not have breaking changes for scripts using the old command name.
Maybe we were not explicit enough in this issue. Sorry for that.
My recommendation would be to take the existing command, rename the name of the files and create an alias (We have an example how to implement the alias under mail-send.ts). Afterwards, you should add the additional filter parameters we mentioned in this issue.
Is this ok for you?
br,
Patrick

Hey @douglasromao, are you still working on this?

Hi @douglasromao, yes. You are right. In the issue #1982 we mentioned that we are extending the existing command with the new parameters and create an alias for the old one. In such a way we ensure that we do not have breaking changes for scripts using the old command name.
Maybe we were not explicit enough in this issue. Sorry for that.
My recommendation would be to take the existing command, rename the name of the files and create an alias (We have an example how to implement the alias under mail-send.ts). Afterwards, you should add the additional filter parameters we mentioned in this issue.
Is this ok for you?
br, Patrick

@plamber @waldekmastykarz do you guys have a preferece/suggestion on how we can call this alias?

Hi @douglasromao,
in this case the alias should be "O365GROUP_RESTORE: ${prefix} o365group restore".
Cheers

Thanks @plamber !

@plamber It seems that someone already added this there some time ago:

@plamber also the alias configuration it seems to be there already on the o365group-recyclebinitem-restore.ts, looks like only the command options (displayname and mailnickname) that are not implemented if I am not mistaken

Hi @douglasromao,
I verified the codebase and saw that there is a command that restores the M365 Group here.
So we should just extend the existing command with additional filter capabilities (displayname and mailnickname). I Updated the specs.
Just let me know if you have additional questions.
Thank you,
Patrick

Hi @douglasromao,
I verified the codebase and saw that there is a command that restores the M365 Group here.
So we should just extend the existing command with additional filter capabilities (displayname and mailnickname). I Updated the specs.
Just let me know if you have additional questions.
Thank you,
Patrick

Awesome @plamber , thanks for clarifying! I will do that!

Hey @douglasromao
Are you still working on this one? If not I'm willing to solve this one. ☺


OCC-88: Add site setting to limit the list of available countries/regions.

OCC-88
Fixes #187

Also can you add a unit test checks if the country list is limited? You can use the new Order content item editor to verify the country list the easiest.


[Kibana] 8.5.1"message":"secrets "kibana-kibana-es-token" already exists"

Chart version:
8.5.1
Kubernetes version:
GitVersion:"v1.23.8"
Kubernetes provider:
Azure AKS
Helm Version:
Version:"v3.10.3"
helm get release output
Maybe the instructions here should be updated to ask for helm get all ${releasename}, because it was really unclear what to do, and that release was the name of a release and not a keyword.

Output of helm get release
NAME: kibana
LAST DEPLOYED: Thu Feb  2 09:16:19 2023
NAMESPACE: <redacted>
STATUS: failed
REVISION: 2
TEST SUITE: None
USER-SUPPLIED VALUES:
null

COMPUTED VALUES:
affinity: {}
annotations: {}
automountToken: true
elasticsearchCertificateAuthoritiesFile: ca.crt
elasticsearchCertificateSecret: elasticsearch-master-certs
elasticsearchCredentialSecret: elasticsearch-master-credentials
elasticsearchHosts: https://elasticsearch-master:9200
envFrom: []
extraContainers: []
extraEnvs:
- name: NODE_OPTIONS
  value: --max-old-space-size=1800
extraInitContainers: []
extraVolumeMounts: []
extraVolumes: []
fullnameOverride: ""
healthCheckPath: /app/kibana
hostAliases: []
httpPort: 5601
image: docker.elastic.co/kibana/kibana
imagePullPolicy: IfNotPresent
imagePullSecrets: []
imageTag: 8.5.1
ingress:
  annotations: {}
  className: nginx
  enabled: false
  hosts:
  - host: kibana-example.local
    paths:
    - path: /
  pathtype: ImplementationSpecific
kibanaConfig: {}
labels: {}
lifecycle: {}
nameOverride: ""
nodeSelector: {}
podAnnotations: {}
podSecurityContext:
  fsGroup: 1000
priorityClassName: ""
protocol: http
readinessProbe:
  failureThreshold: 3
  initialDelaySeconds: 10
  periodSeconds: 10
  successThreshold: 3
  timeoutSeconds: 5
replicas: 1
resources:
  limits:
    cpu: 1000m
    memory: 2Gi
  requests:
    cpu: 1000m
    memory: 2Gi
secretMounts: []
securityContext:
  capabilities:
    drop:
    - ALL
  runAsNonRoot: true
  runAsUser: 1000
serverHost: <IP_ADDRESS>
service:
  annotations: {}
  httpPortName: http
  labels: {}
  loadBalancerIP: ""
  loadBalancerSourceRanges: []
  nodePort: ""
  port: 5601
  type: ClusterIP
serviceAccount: ""
tolerations: []
updateStrategy:
  type: Recreate

HOOKS:
---
# Source: kibana/templates/post-delete-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: post-delete-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": hook-succeeded
---
# Source: kibana/templates/pre-install-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: pre-install-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": pre-install,pre-upgrade
    "helm.sh/hook-delete-policy": hook-succeeded
---
# Source: kibana/templates/configmap-helm-scripts.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: kibana-kibana-helm-scripts
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": pre-install,pre-upgrade,post-delete
    "helm.sh/hook-delete-policy": hook-succeeded
data:
  manage-es-token.js: |
    const https = require('https');
    const fs = require('fs');

    // Read environment variables
    function getEnvVar(name) {
      if (!process.env[name]) {
        throw new Error(name + ' environment variable is missing')
      }
      return process.env[name]
    }

    // Elasticsearch API
    const esPath = '_security/service/elastic/kibana/credential/token/kibana-kibana';
    const esUrl = 'https://elasticsearch-master:9200' + '/' + esPath
    const esUsername = getEnvVar('ELASTICSEARCH_USERNAME');
    const esPassword = getEnvVar('ELASTICSEARCH_PASSWORD');
    const esAuth = esUsername + ':' + esPassword;
    const esCaFile = getEnvVar('ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES');
    const esCa = fs.readFileSync(esCaFile);

    // Kubernetes API
    const k8sHostname = getEnvVar('KUBERNETES_SERVICE_HOST');
    const k8sPort = getEnvVar('KUBERNETES_SERVICE_PORT_HTTPS');
    const k8sPostSecretPath = 'api/v1/namespaces/<redacted>/secrets';
    const k8sDeleteSecretPath = 'api/v1/namespaces/<redacted>/secrets/kibana-kibana-es-token';
    const k8sPostSecretUrl = `https://${k8sHostname}:${k8sPort}/${k8sPostSecretPath}`;
    const k8sDeleteSecretUrl = `https://${k8sHostname}:${k8sPort}/${k8sDeleteSecretPath}`;
    const k8sBearer = fs.readFileSync('/run/secrets/kubernetes.io/serviceaccount/token');
    const k8sCa = fs.readFileSync('/run/secrets/kubernetes.io/serviceaccount/ca.crt');

    // Post Data
    const esTokenDeleteOptions = {
      method: 'DELETE',
      auth: esAuth,
      ca: esCa,
    };
    const esTokenCreateOptions = {
      method: 'POST',
      auth: esAuth,
      ca: esCa,
    };
    const secretCreateOptions = {
      method: 'POST',
      ca: k8sCa,
      headers: {
        'Authorization': 'Bearer ' + k8sBearer,
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      }
    };
    const secretDeleteOptions = {
      method: 'DELETE',
      ca: k8sCa,
      headers: {
        'Authorization': 'Bearer ' + k8sBearer,
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      }
    };

    // With thanks to https://stackoverflow.com/questions/57332374/how-to-chain-http-request
    function requestPromise(url, httpsOptions, extraOptions = {}) {
      return new Promise((resolve, reject) => {
        const request = https.request(url, httpsOptions, response => {

          console.log('statusCode:', response.statusCode);

          let isSuccess = undefined;

          if (typeof(extraOptions.extraStatusCode) != "undefined" && extraOptions.extraStatusCode != null) {
            isSuccess = response.statusCode >= 200 && response.statusCode < 300 || response.statusCode == extraOptions.extraStatusCode;
          } else {
            isSuccess = response.statusCode >= 200 && response.statusCode < 300;
          }

          let data = '';
          response.on('data', chunk => data += chunk); // accumulate data
          response.once('end', () => isSuccess ? resolve(data) : reject(data));  // resolve promise here
        });

        request.once('error', err => {
          // This won't log anything for e.g. an HTTP 404 or 500 response,
          // since from HTTP's point-of-view we successfully received a
          // response.
          console.log(`${httpsOptions.method} ${httpsOptions.path} failed: `, err.message || err);
          reject(err);  // if promise is not already resolved, then we can reject it here
        });

        if (typeof(extraOptions.payload) != "undefined") {
          request.write(extraOptions.payload);
        }
        request.end();
      });
    }

    function createEsToken() {
      // Chaining requests
      console.log('Cleaning previous token');
      // 404 status code is accepted if there is no previous token to clean
      return requestPromise(esUrl, esTokenDeleteOptions, {extraStatusCode: 404}).then(() => {
        console.log('Creating new token');
        return requestPromise(esUrl, esTokenCreateOptions).then(response => {
          const body = JSON.parse(response);
          const token = body.token.value

          // Encode the token in base64
          const base64Token = Buffer.from(token, 'utf8').toString('base64');

          // Prepare the k8s secret
          const secretData = JSON.stringify({
            "apiVersion": "v1",
            "kind": "Secret",
            "metadata": {
              "namespace": "<redacted>",
              "name": "kibana-kibana-es-token",
            },
            "type": "Opaque",
            "data": {
              "token": base64Token,
            }
          })

          // Create the k8s secret
          console.log('Creating K8S secret');
          return requestPromise(k8sPostSecretUrl, secretCreateOptions, {payload: secretData})
        });
      });
    }

    function cleanEsToken() {
      // Chaining requests
      console.log('Cleaning token');
      return requestPromise(esUrl, esTokenDeleteOptions).then(() => {
        // Create the k8s secret
        console.log('Delete K8S secret');
        return requestPromise(k8sDeleteSecretUrl, secretDeleteOptions)
      });
    }

    const command = process.argv[2];
    switch (command) {
      case 'create':
        console.log('Creating a new Elasticsearch token for Kibana')
        createEsToken().catch(err => {
          console.error(err);
          process.exit(1);
        });
        break;
      case 'clean':
        console.log('Cleaning the Kibana Elasticsearch token')
        cleanEsToken().catch(err => {
          console.error(err);
          process.exit(1);
        });
        break;
      default:
        console.log('Unknown command');
        process.exit(1);
    }
---
# Source: kibana/templates/post-delete-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: post-delete-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": hook-succeeded
rules:
  - apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - delete
---
# Source: kibana/templates/pre-install-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pre-install-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": pre-install,pre-upgrade
    "helm.sh/hook-delete-policy": hook-succeeded
rules:
  - apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - create
      - update
---
# Source: kibana/templates/post-delete-rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: post-delete-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": hook-succeeded
subjects:
  - kind: ServiceAccount
    name: post-delete-kibana-kibana
    namespace: "<redacted>"
roleRef:
  kind: Role
  name: post-delete-kibana-kibana
  apiGroup: rbac.authorization.k8s.io
---
# Source: kibana/templates/pre-install-rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pre-install-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": pre-install,pre-upgrade
    "helm.sh/hook-delete-policy": hook-succeeded
subjects:
  - kind: ServiceAccount
    name: pre-install-kibana-kibana
    namespace: "<redacted>"
roleRef:
  kind: Role
  name: pre-install-kibana-kibana
  apiGroup: rbac.authorization.k8s.io
---
# Source: kibana/templates/post-delete-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: post-delete-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": post-delete
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  backoffLimit: 3
  template:
    spec:
      restartPolicy: Never
      containers:
        - name: clean-kibana-token
          image: "docker.elastic.co/kibana/kibana:8.5.1"
          imagePullPolicy: "IfNotPresent"
          command: ["/usr/share/kibana/node/bin/node"]
          args:
           - /usr/share/kibana/helm-scripts/manage-es-token.js
           - clean
          env:
            - name: "ELASTICSEARCH_USERNAME"
              valueFrom:
                secretKeyRef:
                  name: elasticsearch-master-credentials
                  key: username
            - name: "ELASTICSEARCH_PASSWORD"
              valueFrom:
                secretKeyRef:
                  name: elasticsearch-master-credentials
                  key: password
            - name: ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES
              value: "/usr/share/kibana/config/certs/ca.crt"
          volumeMounts:
            - name: elasticsearch-certs
              mountPath: /usr/share/kibana/config/certs
              readOnly: true
            - name: kibana-helm-scripts
              mountPath: /usr/share/kibana/helm-scripts
      serviceAccount: post-delete-kibana-kibana
      volumes:
        - name: elasticsearch-certs
          secret:
            secretName: elasticsearch-master-certs
        - name: kibana-helm-scripts
          configMap:
            name: kibana-kibana-helm-scripts
            defaultMode: 0755
---
# Source: kibana/templates/pre-install-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: pre-install-kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
  annotations:
    "helm.sh/hook": pre-install,pre-upgrade
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  backoffLimit: 20
  template:
    spec:
      restartPolicy: Never
      containers:
        - name: create-kibana-token
          image: "docker.elastic.co/kibana/kibana:8.5.1"
          imagePullPolicy: "IfNotPresent"
          command: ["/usr/share/kibana/node/bin/node"]
          args:
           - /usr/share/kibana/helm-scripts/manage-es-token.js
           - create
          env:
            - name: "ELASTICSEARCH_USERNAME"
              valueFrom:
                secretKeyRef:
                  name: elasticsearch-master-credentials
                  key: username
            - name: "ELASTICSEARCH_PASSWORD"
              valueFrom:
                secretKeyRef:
                  name: elasticsearch-master-credentials
                  key: password
            - name: ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES
              value: "/usr/share/kibana/config/certs/ca.crt"
          volumeMounts:
            - name: elasticsearch-certs
              mountPath: /usr/share/kibana/config/certs
              readOnly: true
            - name: kibana-helm-scripts
              mountPath: /usr/share/kibana/helm-scripts
      serviceAccount: pre-install-kibana-kibana
      volumes:
        - name: elasticsearch-certs
          secret:
            secretName: elasticsearch-master-certs
        - name: kibana-helm-scripts
          configMap:
            name: kibana-kibana-helm-scripts
            defaultMode: 0755
MANIFEST:
---
# Source: kibana/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
spec:
  type: ClusterIP
  ports:
    - port: 5601
      protocol: TCP
      name: http
      targetPort: 5601
  selector:
    app: kibana
    release: "kibana"
---
# Source: kibana/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana-kibana
  labels:
    app: kibana
    release: "kibana"
    heritage: Helm
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: kibana
      release: "kibana"
  template:
    metadata:
      labels:
        app: kibana
        release: "kibana"
      annotations:

    spec:
      automountServiceAccountToken: true
      securityContext:
        fsGroup: 1000
      volumes:
        - name: kibana-tokens
          emptyDir: {}
        - name: elasticsearch-certs
          secret:
            secretName: elasticsearch-master-certs
      initContainers:
      containers:
      - name: kibana
        securityContext:
          capabilities:
            drop:
            - ALL
          runAsNonRoot: true
          runAsUser: 1000
        image: "docker.elastic.co/kibana/kibana:8.5.1"
        imagePullPolicy: "IfNotPresent"
        env:
          - name: ELASTICSEARCH_HOSTS
            value: "https://elasticsearch-master:9200"
          - name: ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES
            value: "/usr/share/kibana/config/certs/ca.crt"
          - name: SERVER_HOST
            value: "<IP_ADDRESS>"
          - name: ELASTICSEARCH_SERVICEACCOUNTTOKEN
            valueFrom:
              secretKeyRef:
                name: kibana-kibana-es-token
                key: token
                optional: false
          - name: NODE_OPTIONS
            value: --max-old-space-size=1800
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 10
          periodSeconds: 10
          successThreshold: 3
          timeoutSeconds: 5
          exec:
            command:
              - bash
              - -c
              - |
                #!/usr/bin/env bash -e

                # Disable nss cache to avoid filling dentry cache when calling curl
                # This is required with Kibana Docker using nss < 3.52
                export NSS_SDB_USE_CACHE=no

                http () {
                    local path="${1}"
                    set -- -XGET -s --fail -L

                    if [ -n "${ELASTICSEARCH_USERNAME}" ] && [ -n "${ELASTICSEARCH_PASSWORD}" ]; then
                      set -- "$@" -u "${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}"
                    fi

                    STATUS=$(curl --output /dev/null --write-out "%{http_code}" -k "$@" "http://localhost:5601${path}")
                    if [[ "${STATUS}" -eq 200 ]]; then
                      exit 0
                    fi

                    echo "Error: Got HTTP code ${STATUS} but expected a 200"
                    exit 1
                }

                http "/app/kibana"
        ports:
        - containerPort: 5601
        resources:
          limits:
            cpu: 1000m
            memory: 2Gi
          requests:
            cpu: 1000m
            memory: 2Gi
        volumeMounts:
          - name: elasticsearch-certs
            mountPath: /usr/share/kibana/config/certs
            readOnly: true
          - name: kibana-tokens
            mountPath: /usr/share/kibana/config/tokens
            readOnly: true

NOTES:
1. Watch all containers come up.
  $ kubectl get pods --namespace=<redacted> -l release=kibana -w
2. Retrieve the elastic user's password.
  $ kubectl get secrets --namespace=<redacted> elasticsearch-master-credentials -ojsonpath='{.data.password}' | base64 -d
3. Retrieve the kibana service account token.
  $ kubectl get secrets --namespace=<redacted> kibana-kibana-es-token -ojsonpath='{.data.token}' | base64 -d

Describe the bug:
helm upgrade --install kibana elastic/kibana works only once, updating kibana doesn't work
Steps to reproduce:

helm upgrade --install elastic elastic/elastic # elastic works
helm upgrade --install kibana elastic/kibana # now kibana works, connected to elastic, all fine
helm upgrade --install kibana elastic/kibana # times out, and there's a bunch of pods named pre-install-kibana-kibana-XXXXX all in the erred state

Expected behavior:
helm upgrade --install just works and applies new values if relevant
Provide logs and/or server output (if relevant):
Be careful to obfuscate every secrets (credentials, token, public IP, ...) that could be visible in the output before copy-pasting
kubectl logs pre-install-kibana-kibana-26xrr
Creating a new Elasticsearch token for Kibana
Cleaning previous token
statusCode: 200
Creating new token
statusCode: 200
Creating K8S secret
statusCode: 409
{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"secrets \"kibana-kibana-es-token\" already exists","reason":"AlreadyExists","details":{"name":"kibana-kibana-es-token","kind":"secrets"},"code":409}

Any additional context:
Looks like it can't handle the token already existing? I see code claiming to clean the token, but I guess that's not working.
Possibly related to https://github.com/elastic/helm-charts/issues/1765 but they didn't add enough output to be sure, so I don't want to assume it's the same issue.

I see code claiming to clean the token, but I guess that's not working.

It's working but that's the part where it remove the old token from elasticsearch not from k8s cluster.
The actual problem is from line below where it make a post request to k8s to create a secret. The quick fix is to remove the old secret first
          return requestPromise(k8sDeleteSecretUrl, secretDeleteOptions, {extraStatusCode: 404}).then(() => {
            return requestPromise(k8sPostSecretUrl, secretCreateOptions, {payload: secretData})
          })

That fix the initial problem but it still doesn't work seamlessly if the update doesn't change the deployment. Its pods will not restart and will use the old token. You'll still need to manually restart the deployment.

Hello, came here to solve this annoying issue when upgrading.
Thanks for the tips to delete the token.
Will there be any fix soon ?

@JoranDox   Tried installing the Kibana post Elasticsearch deployment but it fails saying cannot use elastic username as it is a superuser. Any help ? how can we create a user for Kibana so that pre install job gets succeeded ?

Hello, same problem here (with ArgoCD). With Helm, you can upgrade with --no-hooks option


Speed up Travis CI build

now building pegasus takes more than 30 minutes (travis ci timeout is 50 minutes), we need to speed up it.

some efforts: https://github.com/XiaoMi/pegasus/pull/83
but not enough

some doc: https://eng.localytics.com/best-practices-and-common-mistakes-with-travis-ci/

more efforts: #85


🍺 Add Homebrew packager

Fixes https://github.com/kcctl/kcctl/issues/127

Ok, but that can't be all, right? I suppose I need to request deploy permissions for brew as well?

Oh but it is, because the formula is pushed to your own tap, not the main Homebrew repo.

Ok, and that's validated against this org's name then? So no one else can publish to kcctl's identity?

Applied in any case, thx! Seems I should do another release then?

So reading https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap, I don't fully get it yet. Do we need to create a kcctl/homebrew-repo repo or something like that?

I'm getting

is this me only?

So reading https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap, I don't fully get it yet. Do we need to create a kcctl/homebrew-repo repo or something like that?
JReleaser creates the repo automatically.

@helpermethod, yes, that has all been sorted out by now; the repo has been created, and kcctl should be available via Homebrew (it works for me, but it seems @hartmut-co-uk is having a problem).

@hartmut-co-uk, which OS and architecture are you on? AArch64 by any chance? If so, that'd explain; we currently publish binaries for x86 only.

AArch64 yes

Ok, I see. So we should raise a more meaningful error in the tap in that situation // CC @aalmiray.
We'll have to see whether/how we can publish binaries for AArch64/Linux (there's no easy-to-use runner for that for GH Actions). If you have GraalVM with the native image tool installed, you could build it yourself locally via mvn clean verify -Pnative.

FYI I just downloaded the latest osx binaries (https://github.com/kcctl/kcctl/releases/tag/v1.0.0.Alpha5) and can run without problems (very basic first try)

Ah, that's great to hear. So the x64 emulation on the M1 works for this as expected then, very nice. Didn't think of that initially.
In that light, we may publish the x64/macOS one for AArch64/macOS then, too. @aalmiray, WDYT?

FYI: I've done some more testing / actually used kcctl today, everything works just fine!

@gunnarmorling how will we build a Native Image for osx-aarch64? Based on the list of binaries listed at https://github.com/graalvm/graalvm-ce-builds/releases we can only build native executables for

linux-x86_64 (matches linux-amd64)
linux_aarch64
osx-x86_64 (matches darwin-amd64)
windows-x86_64 (matches windows-amd64)

We can't build for linux-aarch64 using a default GitHub runner unless we use a Docker image running inside an ubuntu-latest runner (yay containers!).

how will we build a Native Image for osx-aarch64?

IIUC, we could simply take the x86 binary and distribute that to macOS/AArch64 users too. macOS on the M1 comes with a powerful emulation layer which should allow to run that one as-is. I think it's only a question of configuring the right metadata in the Brew formula for taking the x86 binary also for AArch64.

If that's the case then duplicating the existing macOS artifact definition found in the pom.xml but using <platform>osx-aarch_64</platform> would be enough. The name of the file remains the same but that's of no consequence to the brew formula.

Logged https://github.com/kcctl/kcctl/issues/134 for this.


帮助文档，移动端无法正常浏览

Is your feature request related to a problem? Please describe.
做的很赞，感谢开源贡献。 目前在移动端看文档时，文档内容被菜单挡住，菜单没有折叠功能导致内容无法阅读
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
期望增加移动端支持，增加一个菜单折叠即可
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

目前不支持移动端访问

了解了，感谢回复。期待未来能支持


missing method="get" in form tag

In the picture under "Notice the distinctive font in the <form> tag. That distinctive font indicates the tag is supported by Tag Helpers", I'm assuming we're supposed to have a method="get" added to the end. The picture above seems to be showing that you're trying to do that, but the one below is just missing it.

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

ID: f9b9859c-b83c-5fc3-41d5-15531232185f
Version Independent ID: 5438de31-8562-3747-d1a5-2a4622252fc1
Content: Adding Search
Content Source: aspnetcore/tutorials/first-mvc-app/search.md
Product: asp.net-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Yes. We'll fix in the next sweep.


Update tests for pangram, roman-numerals, and triangle

First batch of test syncs

Related to #248


Update docs for proxy configuration

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks again @mmadoo!


telebot: Bad request: Field "disable_web_page_preview" must be of type Boolean

Hi,
I tried to implement a simple inline bot, but my generated ArticleResult create an error. This is my code for the ArticleResult an the Result:
result := telebot.ArticleResult{"bla", "blubb", "blablubb", telebot.ModeMarkdown, true, true, "", true, ""}
results := []telebot.Result{result}

if err := bot.Respond(query, results); err != nil {
	fmt.Println("ouch:", err)
}

I get the error:
telebot: Bad request: Field "disable_web_page_preview" must be of type Boolean

I tried a bit in your code and found the fault in the MarshalJSON() method of inline_article.go.
There you create the byte stream for every key value pair with
const tpl = `"%s":"%s",`
b.WriteString(fmt.Sprintf(tpl, key, value))

but that inserts "" around the bools. Telegram don't like that. ;)
I test the method with a hardcoded
if (key == "disable_web_page_preview") {
	b.WriteString(`"disable_web_page_preview":true,`)
} else {
	b.WriteString(fmt.Sprintf(tpl, key, value))
}

and this works! The program now says:
telebot: Bad request: Field "hide_url" must be of type Boolean

I think it would a better idea to add the "" to the strings directly and then only use const tpl = `"%s":%s,` .

Hi @kagutsuchii, I recently opened a PR (#50) which (I think) greatly improves support for inline mode and the various results it supports. Would you mind giving my branch a try perhaps? I'm willing to bet it will resolve your issue as well.

Hi @zoni, your pull request looks really cool. Very good work! I hope your PR will be acceppted. Until that I will use your branch. ;)
Unfortunately in your branch there is the same problem. In line 85 of inline_article.go you also have const tpl = `"%s":"%s",` . So the second "%s" puts "" also around a boolean. So I also get the error.

Can anyone but me report whether it's been resolved or not?

To my knowledge this issue has been resolved in #50.


Missing a lot movies from the list

I'm submitting a ...

[ ] bug report
[ ] feature request
[x] support request

General information
Addon version used
[0.14.0 beta23]
Description
[I can not get full list of movies from every item in the menu. EX: in Netflix Originals I just get 337 movies sort A B C, start with "#realityhigh" and the last movie is "Fre Rein: Valentine's Day. Missing a lot movies]
Context (Environment)
Installation

[x] I'm using this Netflix Repo
[ ] I'm using other Netflix Repo (Please specify which)
[ ] I'm using a different source (Please tell which)

Operating System

[ ] Linux (x86/x64)
[ ] OSX (x86/x64)
[ ] Windows (x86/x64)
[x] Linux (ARM)
[ ] Android

Additional information on the environment
[I am using LibreELEC 9.0.1 on S905X TV box]
Other information
[Movies playing very good with 720p (set from Inputstream Adaptive), get lag if set to 1080p]

It's not an error, it's a limitation that i imposed because getting more than 300 results means to weigh down the data request, which generates inputstream timeout error.
If you want to experiment with more results in the lists, change the setting to:
Expert settings -> limit list results


[ISSUE #94] Batch push compatible with single push

#94
Optimization logic
According to the configuration enableBatchPush, choose whether to synchronize data through batch. When a push request is received, it is judged whether it is a batch push according to the number of messages sent.

Verification Test
Test one：enableBatchPush（false --> true）

Initialization: The cluster has not yet started BatchPush
Upgrade content: enable enableBatchPush

Unoptimized version test:  enableBatchPush=true, upgrade a slave (machine 05)

Optimized version test:  enableBatchPush=true, upgrade a slave (machine machine)

Test two：enableBatchPush（true --> false）

Initialization: Start BatchPush in the cluster
Upgrade content: turn off enableBatchPush

Unoptimized version test:  enableBatchPush=false, upgrade a slave (machine 05)

Optimized version test:  enableBatchPush=false, upgrade a slave (machine machine)


Can't send cards to Anki

Hello,
Since 4-5 days ago I can't seem to be able to create new cards(or update old ones) using the extension, I always get this error:
Deck not sent: request to http://<IP_ADDRESS>:8765/ failed, reason: read ECONNRESET
I think this started happening since I updated to the latest VS Code version(1.93) but I am not too sure.
Am I the only one having this issue?

Yeah, when I downgraded to VS Code 1.92.2, everything seems to be working again, but this is not a long term solution.

Same here. Except the reason is "socket hang up". When I invoke localhost:8765 in my browser, I get the expected response, so Anki-connect seems to work properly.

Thanks for raising, I have no idea what is failing here, as the extension hasn't changed in a while this will be coming from VS Code itself, I have raised an issue here.

Ok so I've made a new release which targets 1.93+
if people can try it out and let me know that would be great. This fix removes node-fetch and uses Electron's built-in fetch instead

Just tried the fix and it works on my side with the latest VS Code(1.93.1).
Thank you!


Unable to get email from Google docs page

gmail.get.user_email()not working when I am on https://docs.google.com/ but it works fine when I open my gmail account.
Is there any way to access user email from Google docs page?

@tahiryasin this extension will only work if the domain is gmail.com


Update bot.ts

Codecov Report

Merging #140 (6a3717e) into master (cf1f132) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##           master     #140   +/-   ##
=======================================
  Coverage   81.83%   81.83%
=======================================
  Files           1        1
  Lines         424      424
  Branches       86       86
=======================================
  Hits          347      347
  Misses         77       77

已经修好发版了，不用了，下次注意点。

已经修好发版了，不用了，下次注意点。

嗯嗯


⚠ Bofrost.be has degraded performance

In 52ef505, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1766 ms

Resolved: Bofrost.be performance has improved in 406c58f after 40 minutes.


fixed extra callback calls in while using cue to the soundFiles

fixes #443

@therewasaguy  please have a look on this pr !

@montoyamoraga
please have a look on this pr !

Sounds great! I will be adding a unit test for the same :)

I have added the tests for the same !

@therewasaguy  have a look at it ! 🙂

looks great to me !


Create vcf_combiner.py

EH 5M loci run was done using 50 sharded subcatalogs, meaning that each sample has 50 sharded VCFs.
This script combines the 50 sharded VCFs into one combined VCF (ie each sample will have one combined VCF for downstream use).
This script assumes that the

##fileformat, ##FORMAT, ##INFO, ##FILTER lines are constant across all sharded VCFs, and therefore extracts these lines from the first shard to write to output.
##ALT lines are collected as a set across all sharded VCFs (set structure removes duplicates), and then sorted alphabetically to be written to output.
remaining lines are calls (genotypes) at each locus, and are added sequentially to the output file. [VCF sort is run as a downstream step of the pipeline so no need to sort the loci by coordinates now].

Can look at shards in test-analysis here: gs://cpg-tob-wgs-main-analysis/str/5M_run/


make_trade raises ValidationError

...
>>>uniswap_wrapper.make_trade(eth, aave, 8e16)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/uniswap/uniswap.py", line 72, in approved
    return method(self, *args, **kwargs)
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/uniswap/uniswap.py", line 446, in make_trade
    return self._eth_to_token_swap_input(output_token, Wei(qty), recipient)
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/uniswap/uniswap.py", line 505, in _eth_to_token_swap_input
    * self.get_eth_token_input_price(output_token, qty)
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/uniswap/uniswap.py", line 85, in check_version
    return f(self, *args, **kwargs)
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/uniswap/uniswap.py", line 299, in get_eth_token_input_price
    qty, [self.get_weth_address(), token]
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/web3/contract.py", line 875, in __call__
    clone._set_function_info()
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/web3/contract.py", line 885, in _set_function_info
    self.kwargs
  File "/root/miniconda3/envs/paddington/lib/python3.7/site-packages/web3/_utils/contracts.py", line 163, in find_matching_fn_abi
    raise ValidationError(message)
web3.exceptions.ValidationError:
Could not identify the intended function with name `getAmountsOut`, positional argument(s) of type `(<class 'float'>, <class 'list'>)` and keyword argument(s) of type `{}`.
Found 1 function(s) with the name `getAmountsOut`: ['getAmountsOut(uint256,address[])']
Function invocation failed due to no matching argument types.

You are passing in a float as the amount. Don't do that. Use 8*10**18 instead of 8e18.

The error message is pretty clear.
You are passing in a float as the amount. Don't do that. Use 8*10**18 instead of 8e18.

Ah, god ,I am blind. And thank you.

The error message is pretty clear.
You are passing in a float as the amount. Don't do that. Use 8*10**18 instead of 8e18.

Ah, god ,I am blind. And thank you.


Add a function Connect to retrieve a DbConnection but not open

At the moment, we're supporting two functions in the interface: Parse and Open. Open is returning the DbConnection but the connection is open which could be an issue in some cases. Connect, just returns the DbConnectionwith the ConnectionString specified.

Included in PR #65


Update .travis.yml

Codecov Report

Merging #3 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master     #3   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines          83     83
  Branches       22     22
=====================================
  Hits           83     83

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 e7acea1...e544d62. Read the comment docs.


No longer works with current socket.io-client

The package used to implement XMLHttpRequest used by engine.io-client is nowadays xmlhttprequest-ssl instead of xmlhttprequest leading to
Error: Cannot find module '../socket.io-client/node_modules/engine.io-client/node_modules/xmlhttprequest

when trying to import socket.io-client-cookie.
├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  └─<EMAIL_ADDRESS>

Cannot find module here too

I'm closing this and making another issue because this module is actually no longer necessary.
While this is very thinly documented, you can nowadays pass extraHeaders to the io constructor like this:
const io = require('socket.io-client');

const socket = io(url, { path, extraHeaders: { cookie } });

Documented in the underlying engine.io-client library:
https://github.com/socketio/engine.io-client#nodejs-with-extraheaders

See #9

@japsu , extraHeaders is not in socket.io-client API (https://github.com/socketio/socket.io-client/blob/master/docs/API.md), How can I set cookie to a instance of socket.io-client not instance of engine.io-client?

@diegobill, hence "thinly documented". You can try it yourself and verify that it indeed works.
As you can see here, opts is passed verbatim to engine.io-client:
https://github.com/socketio/socket.io-client/blob/master/lib/manager.js#L226

works, thanks

No problem. Might be inclined to put up a full example sometime soon to signal boost this little known fact.


captureSession.stopRunning() Unexpectedly found nil while implicitly unwrapping an Optional value

Steps to reproduce:

Create SwiftUI Project
Implement a TabView
Implement MijickCameraView into one of the tabs
Display tab with camera view, switch off, and return to tab with camera view
App crashes

I'm facing the same problem using a NavigationStack. Were you able to find a workaround?

I'm facing the same problem using a NavigationStack. Were you able to find a workaround?

Nope. I migrated to this package instead.
https://enebin.github.io/Aespa/documentation/aespa/

Guys, just don't declare manager in CameraView, you can inject it from parent.

when it is fixed i want to control the switch directly in the preview itself ?


Fix/v2 p2pkhbytelen

Adds the missing varint

Codecov Report

Merging #32 (bad55a6) into v2 (b2889d5) will increase coverage by 2.35%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##               v2      #32      +/-   ##
==========================================
+ Coverage   75.45%   77.81%   +2.35%
==========================================
  Files          18       18
  Lines         925     1073     +148
==========================================
+ Hits          698      835     +137
- Misses        149      160      +11
  Partials       78       78

Impacted Files
Coverage Δ

txchange.go
75.90% <100.00%> (+3.68%)
:arrow_up:

fees.go
100.00% <0.00%> (ø)

varint.go
100.00% <0.00%> (ø)

bytemanipulation.go
100.00% <0.00%> (ø)

input.go
79.36% <0.00%> (+0.05%)
:arrow_up:

output.go
87.30% <0.00%> (+1.33%)
:arrow_up:

tx.go
82.05% <0.00%> (+1.63%)
:arrow_up:

signaturehash.go
84.00% <0.00%> (+1.91%)
:arrow_up:

bscript/address.go
85.96% <0.00%> (+1.96%)
:arrow_up:

bscript/oppushdata.go
72.83% <0.00%> (+2.17%)
:arrow_up:

... and 8 more

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 b2889d5...bad55a6. Read the comment docs.


fix: Stop portals in The End generating end gateway strucutres when used

If an entity touches an end gateway block in The End (or a world like it) which has no exit location set, the game will generate a new end gateway structure at the same angle relative to and 1024 or so blocks away from the origin (i.e. around the inner edge of the outer islands). Using a vane portal in an End world therefore creates a tower of gateways that grows each time the portal is used. This happens before Paper/Bukkit Entity/PlayerTeleportEndGatewayEvents are fired, so the existing cancelling of them doesn't prevent this. All the relevant logic is in net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity.teleportEntity.
Setting an exit location for end gateway blocks in vane portals is enough to prevent this behaviour. Any location will do (I picked the portal's spawn since it was handy, and means at least one fewer allocation), since the teleport events being cancelled will prevent anything going there anyway.

Thanks!
I recall not doing this because I was having problems with players being randomly teleported to the specified coordinates when we initially built this feature, but I can't reproduce this right now. This was a long time ago though and gateways were pretty new, so quite possibly that was a bug in paper back then.
I guess I'll just merge this and just see if there's going to be any trouble. Thanks again :)


View inconsistencies

Describe the bug
The ui shows a requested amount of something. but the requesting station is not listed. or the amounts dont match. it seems the higher the throughput the more likely the issue ocurrs, or maybe a general refresh issue that the right side takes data from the moment a selection has been done on the left side while the left side still shows the data from a snapshot when the ui was opened up.
Save file

https://drive.google.com/open?id=1L42cg_jdb2rxNEPMCVTydmAM-wWMnA3-
the save

This is happening because when you click an inventory button, only the right side of the GUI is updated. Turns out that I cache those total numbers when assembling the left side, so those numbers will match what's on the left side.
The fix is simply to refresh the entire page when you click a button. It'll be in for the next version.

thx


Getting a pokemon with that ?

Hello,
When you say release a pokemon it mean getting it ?  if not, your tool can allow us to get special pokemon ?
Another question,
Is it risky to use ? Thanks :)

Release means transferring, i.e., deleting. You can't get back a pokemon once you delete it.

@LeaklessGfy you could trigger a Pokemon encounter as soon as there is one nearby, catching it via craftRequest calls - but it will be the exact same pokemon that you could have catched by yourself by using the app.
At the risk to use: any non-altering things (= watching the traffic) should be undetectable (as long as you set up the certificate). any request altering could be detected, as its still unknown if some fields in the RequestEnvelope could be checksums of some sort. We can't say yet for sure but its a big topic in the reverse engineering scene atm.

Thanks a lot !


Fix/poetry build

PR-Codex overview
Focus of this PR:
This PR focuses on updating the configuration file path and adding new packages to the project.
Detailed summary:

Updated the path for the configuration file from Configs/config.json to comiknet-be/Configs/config.json.
Added new packages comiknet-be to the project.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Use poetry install to install dependencies.


[nrf toup] Fix app dependency on offsets.h generated header

Fix issue of rare race-condititon for source file included in 'app' target for the generated header file offsets.h
zephyr/include/zephyr/linker/linker-defs.h:26:10:
| fatal error: offsets.h: No such file or directory
|     26 | #include <offsets.h>
|        |          ^~~~~~~~~~~
|  compilation terminated.
Fix this by adding the generated headers offsets.h and version.h to the zephyr_interface target instead and remove the zephyr_generated_interface target that app has no dependency on.

Closing this, a workaround is applied upstream and we can wait for the upstream PR to resolve itself and come down in the regular upmerge.


@apply property !important compiles incorrectly.

👋 Hi
I start new react app based on create-react-app without webpack config and I wont care about merging with custom, so I just configured scripts.
First case of project scripts:
    "start:scss": "sass --watch --no-source-map src/tailwind.scss src/tailwind.css",
    "build:scss": "sass --no-source-map src/tailwind.scss src/tailwind.css",
    "start:css": "postcss src/styles/tailwind.src.scss -o src/tailwind.scss -w",
    "build:css": "postcss src/styles/tailwind.src.scss -o src/tailwind.scss --env production",

Firstly run postcss - it goes to tailwind.src and compiles into scss - their compiler watch on and compile all new change into clean css, which imports to App.js.
When we try to compile @apply some-property !important with this config postcss compiles to
some: property; !important;, with dot-comma after property. And I got an error...
Error: expected "}".
   ╷
99 │       stroke: #EAECEF; !important;

=======
So, I just switch css proccess and update my scripts.
    "start:scss": "sass --watch --no-source-map src/styles/tailwind.src.scss src/tailwind.post.css",
    "build:scss": "sass --no-source-map src/tailwind.scss src/tailwind.css",
    "start:css": "postcss src/tailwind.post.css -o src/tailwind.css -w",
    "build:css": "postcss src/tailwind.post.css -o src/tailwind.css --env production",

Now, SCSS on first level and postCSS - after it, like a normal people do - cause POST...css, right?)
And I got an error from SCSS compiler...
Error: expected ";".
   ╷
45 │             @apply stroke-graylight !important;

Ok, this is not the end.... I know about #{!important} concat, I did it and all css chain works good, but now webpack got the same error as SASS compiler reject to me first time...
Guys, this is a bug  -_-
UPD
Sry, forget about tailwind problem fragment code:
&:focus {
            @apply outline-none shadow-none bg-ui-bluedarker transition-0;
            @apply stroke-graylight #{!important};
            &#{$parent}--secondary {
                @apply text-white
            }
        }

Can you create a GitHub repo that reproduces the issue?

@adamwathan i'm confused - in a clean react + tailwind repo this problem won't appear. I need some time to analyze why. Real project is a fresh too, but has some differences. Custom config, more difficult button cunstruction etc....

@adamwathan Ok, I found a reason of my problem. It's inside my tailwind.config:
const UIcolorPallete = {
    dark: "#30333D;",
    brown: "#333333;",
    graydark: "#707D88",
    gray: "#C3CAD5;", /* Gray_middle */
    graylight: "#EAECEF;",
    green: "#4CDB96;",
    red: "#EB5757;",
    orange: "#F2994A;",
    yellow: "#F2C94C;",
    blue: "#3176FA;",
    bluedark: "#0158FF;",
    bluedarker: "#043590;",
    white: "#fff"
};

const IconSizes = {
    'icon-sm': '10px',
    'icon-md': '18px',
    'icon-lg': '30px'
}

const PointerInputSizes = {
    'checkbox': '20px'
}

const SVGcolorProps = Object.assign({}, {
    'current': 'currentColor',
}, UIcolorPallete);

After defining design guide objects I just assign thier for different keys like this:
theme: {
  extend: {
    fill: Object.assign({}, SVGcolorProps),
    stroke: Object.assign({}, SVGcolorProps),
  }
}

And got this problem.
When I correct it on static object like this:
stroke: {'dark': '#333'}

!important directive works perfect

I've tried to inherit colors to stroke by using theme callback:
 colors: {
            transparent: 'transparent',
            black: '#000',
            white: '#fff',
            ui: {
					    dark: "#30333D;",
					    brown: "#333333;",
					    graydark: "#707D88",
					    gray: "#C3CAD5;", /* Gray_middle */
					    graylight: "#EAECEF;",
					    green: "#4CDB96;",
					    red: "#EB5757;",
					    orange: "#F2994A;",
					    yellow: "#F2C94C;",
					    blue: "#3176FA;",
					    bluedark: "#0158FF;",
					    bluedarker: "#043590;",
					    white: "#fff"
            }
          }
        },

And into the stroke:
stroke: (theme) => theme('colors', 'ui'),

Still errored

@adamwathan repo for issue: https://github.com/WebKieth/react-tailwind-tests

@adamwathan, I solve it. The main reason of this bug sits opposite the PC.
I wrote all color values with dot-comma in the end. So tailwind just pass it into the value as is =)
When I erase last comma dots, important works properly,
BUT... It will be a nice feature to replace this char from string values if it was setted as last.

Ah gotcha. Probably not going to add any fancy validation like that but glad you found the issue.


update term to 0.6

Updating term to 0.6 allows compiling rustfmt for wasm targets (e.g. wasm32-unknown-unknown).

I just saw that updating term is also part of https://github.com/rust-lang/rustfmt/pull/3707, so I'll close this PR.


Revelation of Wrath

text: Ruling #3 is wrong. ANK corrected himself to say that a vampire being burned can indeed play the card.
link: http://www.vekn.net/forum/rules-questions/78861-revelation-of-wrath?start=6#101144

Fixed


docs: adds more of ec2 spot heads up

Fixes #N/A
Description
I ran into this while following the get started guide and trying to follow along using terraform, adding this little blurb would help relay the importance.
How was this change tested?
Wasn't 👀
Does this change impact docs?

[x] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[ ] No

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

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 82.535%

Files with Coverage Reduction
New Missed Lines
%

pkg/providers/amifamily/ami.go
1
90.56%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
5548

Relevant Lines:
6722

💛  - Coveralls


Give scala-native a try

It should be possible to have a workish scala-native command-line tool, by taking a few shortcuts. It'd be interesting to compare the perf of such a tool to its JVM counterpart.
Among the points to address / circumvent:

use scalaz 7.3.0-M10 (hoping the sources of coursier are fine with it),
don't depend on fastparse, which doesn't seem to be compiled for scala-native (temporary, only used to parse Ivy "patterns" - either remove support for Ivy repos, or use an old dependency-free workish implem of the parser),
concurrency: on the JVM, it is brought by the use of scalaz.concurrent.Task as a monad. Something like cats.Eval (don't know the scalaz equivalent) could be used instead, to effectively disable concurrency.
IO: in a first time, a cache-less coursier.Fetch could be implemented, so that only network stuff would have to be handled (with libcurl?) It already works this way with scala-js in the web module.

With all these points worked around, a workish scala-native-based command-line tool should be able to run resolutions.

Name/Need/Value is scalaz's cats.Eval, if I understand correctly.

I would love to see this happening.

IO: in a first time, a cache-less coursier.Fetch could be implemented, so that only network stuff would have to be handled (with libcurl?) It already works this way with scala-js in the web module.

Support for IO is on the way (/cc @Duhemm).

don't depend on fastparse, which doesn't seem to be compiled for scala-native (temporary, only used to parse Ivy "patterns" - either remove support for Ivy repos, or use an old dependency-free workish implem of the parser),

Can you use regexes for this? There's also an ongoing effort to implement them (/cc @MasseGuillaume).

network with axel or aria2c?

Has anyone looked at this lately?

I might give it a try again, using libuv (spotted here).

I saw this as well but it is not fresh. https://github.com/TimothyKlim/scala-native-libuv/tree/develop/src/main/scala/com/timothyklim/libuv

It looks like it's possible to use both libuv (thread pool / event loop, file IO, basic network IO) and libcurl (HTTP stuff), as exemplified in the libuv documentation.

@rwhaling also provides an example of a libuv driven ExecutionContext in Modern Systems Programming with Scala Native (it looks to be the topic of this talk on ScalaDays 2019 as well)
You can get the source code from the docker image he ships with the book

Just catching up on this - I've actually got a repository here: https://github.com/rwhaling/native-loop
with a proof-of-concept libuv/libcurl integration - a bit more streamlined than the code in the book.  Hoping to clean it up and start publishing artifacts for the Scala Native 0.4 milestone releases as soon as they are available.
If coursier has a use case for async on native, I'd be really excited to talk about what that would entail, and how I could help out.


Replace "return ;" with "return;"

These lines are exception. Everywhere else return is followed by an immediate semicolon. This change will help future contributors to keep the style consistent.

thanks!


Unit Test Error When Testing vmap With Missing Module "autograd_function_db"

When running pytest test/functorch/test_vmap.py, the error

ModuleNotFoundError: No module named 'torch.testing._internal.autograd_function_db'

comes up. This issue is only prevalent with test_vmap.py, all the other unit tests in functorch works just fine.

autograd_function_db was added fairly recently and should be available only by installing nightlies or building from source. Unfortunately none of the stable release has it.
cc: @zou3519

@sunmorgan what are you trying to do?

@zou3519 I tried running

pytest test/functorch/test_vmap.py -v -k "test_op_has_batch_rule_tril" (as well as triu)

and received

ModuleNotFoundError: No module named 'torch.testing._internal.autograd_function_db'

Is the above line the expected error? (built from source)

That is not expected, what commit hash are you at? (git log will tell)

13b3d862dd35cef133e09bdbc62ee9891999209f

Can you verify that you do not have a PyTorch binary installed in your environment that is interfering? What does import torch; torch.__version__ say?

2.0.0a0+git13b3d86