VueSSRServerPlugin produces a slow-to-parse JSON for large projects

What problem does this feature solve?
Makes for a better development experience with vue SSR.
I was looking into why it takes 500ms to render an single-component page from the server in our fairly large application and found an interesting issue. Webpack creates ~40 bundles for us. Altogether, these weigh ~20MB. The way  VueSSRServerPlugin plugin works, as you know, is it combines all of these files into a single vue-ssr-server-bundle.json file. Reading that file in node is fast (5ms on average) for us, but after reading it we need to JSON.parse it before providing to createBundleRenderer and that takes ~400ms.
Initially I was thinking of using webpack's splitChunks, to reduce the file-size (our router dynamically imports top-level pages, so each chunk could benefit from not having to bring in common component) but VueSSRServerPlugin does not support that (and throws the "Server-side bundle should have one single entry file" error).
What does the proposed API look like?
I'm not exactly sure what to do here at this point as I just noticed this issue. I'm concerned that as the app grows, the json parse time will increase adding seconds to the load-time in development.

400ms reload during dev seems acceptable for "a fairly large application"... unless you expect your app to be 3~4 times larger than it already is in the future?

Thanks for responding, @yyx990803. We're anticipating the app to grow by more pages. That is what's making me concerned that a single JSON file containing all of the code (without at least the ability to split out common chunks) will not scale for us. Also (and this is subjective, of course) 400ms is a noticeable penalty for every refresh of the app.

I would be willing to bet 95% of your ~20MB file is redundant code from external libraries.  You should never be recompiling external libraries and bunching them into your bundle file.
Analyze the bundle file and make sure only your app's proprietary code is inside.  This should only be page template, business logic, routing logic, state management logic.  If you see the Vue library in there that should set off alarm bells.
Always externalize vendor libraries.  On the server, on the client, everywhere.
Another rule of thumb is if npm run build takes longer than 10 seconds, something is wrong.
Once you axe out the redundant code you'll notice your real app is actually something along the lines of 500KBs tops, and JSON.parse will be back to bearable speed.

Thanks for your analysis and care for the ecosystem, @zeltice!
You're correct in that by externalizing our vendor libraries the size of the vue-ssr-server-bundle.json goes down. The amount of reduction we see with the use of webpack-node-externals isn't quite 95% unfortunately, but is a decent ~20%. This brings us down to ~16MB.
The next big chunk of that file is made up of source-maps, disabling which unsurprisingly gives us a ~50% reduction (to ~8MB of first party code). Of course, this also means that we can't debug, so disabling these isn't an option, but it's important to know that it isn't just code in there.
As I wrote, we're running a large website with ~30-and-growing top-level page components and many features across those pages. Although tolerable for now, I don't believe the single-json-file approach of the VueSSRServerPlugin scales well. That being said, 90% of the time is spent parsing the JSON file, and not reading it, so perhaps a low-hanging fruit is to optimize that, maybe by using an alternative serialization format, or maybe by allowing source-maps to be their own file.

In regards to source maps, you're likely working with two environments:  dev & production
In dev:  you should never have source maps enabled since your JS should not be minified anyway.  Therefore, source map size should be 0 bytes.
In production:  During the build stage, webpack creates a separate file for the source maps -- those are never part of your js bundle, unless there was a misconfiguration.  Remember that the source maps are retrieved as separate files in separate HTTP requests in production.  These source map URLs are hinted by specialized commented hints in your minified, packaged js and css files.
Regardless, the original problem is slow development experience -- so dev environment.  Source map should not exist in dev.

I see.  If you must have source maps in dev, try the cheaper but still effective source map solutions going for a balance of filesize and speed:
https://webpack.js.org/configuration/devtool/
My company does not use source maps in dev so my advice is only based on experience from 4 years ago where I used "cheap-eval-source-map"; which was good enough to identify the file and line number of the problem, yet fast enough to be ~1 second delay in updates on every code change.

In production: During the build stage, webpack creates a separate file for the source maps -- those are never part of your js bundle, unless there was a misconfiguration. Remember that the source maps are retrieved as separate files in separate HTTP requests in production. These source map URLs are hinted by specialized commented hints in your minified, packaged js and css files.
Regardless, the original problem is slow development experience -- so dev environment. Source map should not exist in dev.
In my projet server bundle vue-ssr-server-bundle.json file size is 21.4 mb because of source map. i don't know why server bundle including source map. i am using this scaffolding. can you guys tell me where i am doing wrong ?

It has now been two years since I opened this issue. Whereas the vue-ssr-server-bundle.json was 20MB then and took 400ms to reload it is now 51MB in size and takes seconds to reload. The application is 3-4 times larger now (or rather we've converted the rest of it to use vue) @yyx990803 . If you have any suggestions we'd happily try them out, as we're finding it more and more difficult to tolerate the reload time. Thank you for your amazing work!


Invalid type in JWTDecoder function parse

in JWTDecoder.gd:
func _init(jwt: String):
	self.parts = jwt.split(".")
	var header: PoolByteArray = JWTUtils.base64URL_decode(self.parts[0])
	var payload: PoolByteArray = JWTUtils.base64URL_decode(self.parts[1])
	self.header_claims = _parse_json(header)
	self.payload_claims = _parse_json(payload)

func _parse_json(field) -> Dictionary:
	var parse_result: JSONParseResult = JSON.parse(field)
	if parse_result.error != OK:
		return {}
	return parse_result.result

JSON.parse(field) field should be a string according to godot docs, but here a PoolByteArray is passed instead

Looks like you are using a version from dev branch, try installing the plugin from master if you are using 3.x instead, or from 4.x if you are using Godot 4.0 and later

I downloaded it from the releases, I will try installing from the master branch.

Thanks, I forgot to make releases in a while, I'll make a new one just now so you can use it

Thanks it is working


Add Move

https://github.com/MystenLabs/awesome-move
Move is a programming language for writing safe smart contracts originally developed at Facebook in 2019 as part of the Diem project. This is a curated list of code and content from the Move programming language community (351⭐) maintained by multiple Move developers. Move does not yet have its own Awesome list in the "Awesomeverse", but the growing community definitely would benefit from one. The list was first announced here: https://github.com/sindresorhus/awesome/issues/2242#issuecomment-1113513351
By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.

You have to review at least 2 other open pull requests.
Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration. Just commenting “looks good” or simply marking the pull request as approved does not count! You have to actually point out mistakes or improvement suggestions.

https://github.com/sindresorhus/awesome/pull/2275#pullrequestreview-1009352952
https://github.com/sindresorhus/awesome/pull/2278#pullrequestreview-1009290429
https://github.com/sindresorhus/awesome/pull/2336#pullrequestreview-1049592003
https://github.com/sindresorhus/awesome/pull/2287#issuecomment-1160318390

You have read and understood the instructions for creating a list.

This pull request has a title in the format Add Name of List.

✅ Add Swift
✅ Add Software Architecture
❌ Update readme.md
❌ Add Awesome Swift
❌ Add swift
❌ add Swift
❌ Adding Swift
❌ Added Swift

Your entry here should include a short description about the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb.

✅ - [iOS](…) - Mobile operating system for Apple phones and tablets.
✅ - [Framer](…) - Prototyping interactive UI designs.
❌ - [iOS](…) - Resources and tools for iOS development.
❌ - [Framer](…)
❌ - [Framer](…) - prototyping interactive UI designs

Your entry should be added at the bottom of the appropriate category.

The title of your entry should be title-cased and the URL to your list should end in #readme.

Example: - [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software.

The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it. Instead use #2242 for incubation visibility.
Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
The default branch should be named main, not master.
Includes a succinct description of the project/theme at the top of the readme. (Example)

✅ Mobile operating system for Apple phones and tablets.
✅ Prototyping interactive UI designs.
❌ Resources and tools for iOS development.
❌ Awesome Framer packages and tools.

It's the result of hard work and the best I could possibly produce.
If you have not put in considerable effort into your list, your pull request will be immediately closed.
The repo name of your list should be in lowercase slug format: awesome-name-of-list.

✅ awesome-swift
✅ awesome-web-typography
❌ awesome-Swift
❌ AwesomeWebTypography

The heading title of your list should be in title case format: # Awesome Name of List.

✅ # Awesome Swift
✅ # Awesome Web Typography
❌ # awesome-swift
❌ # AwesomeSwift

Non-generated Markdown file in a GitHub repo.
The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
Not a duplicate. Please search for existing submissions.
Only has awesome items. Awesome lists are curations of the best, not everything.
Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.
Must not feature Contributing or Footnotes sections.

Has an appropriate license.

We strongly recommend the CC0 license, but any Creative Commons license will work.

Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0 (replace <user> and <repo> accordingly).

A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
Place a file named license or LICENSE in the repo root with the license text.
Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.
To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.
It can optionally be linked from the readme in a dedicated section titled Contributing, positioned at the top or bottom of the main content.
The section should not appear in the Table of Contents.

All non-important but necessary content (like extra copyright notices, hyperlinks to sources, pointers to expansive content, etc) should be grouped in a Footnotes section at the bottom of the readme. The section should not be present in the Table of Contents.
Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

Doesn't use hard-wrapping.
Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.
Doesn't include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

unicorn

Thank you for the PR!

I saw you changed the License from Apache-2.0 to Creative Commons Attribution 4.0 International 👍
It's more than 30 days old
I checked the awesome-lint because I saw your CI failing. It's not due to the lint but because some of the PR failed to pass your broken link validation. I would consider fixing them tho.

@aleixmorgadas Thank you, you did a very thorough review! You are right, https://crates.io/ is reported as broken by link-checker. However, the link itself works, but it's probably a robots problem with crates.io. Probably going to remove the link, because that's just for convenience.

Thanks for your awesome list!
I actually don't see any problems but here are some things you can do to improve your list:

You can add more relevent topics to your repo.
You can include a high dpi project logo/illustration at the top of your readme.

@sindresorhus Is there something I should fix, or would this list be ready to be merged? :slightly_smiling_face:

Tweet: https://twitter.com/awesome__re/status/1594069503255552000


GOES L1 data

Hi @TomAugspurger, the noaa website (https://www.noaa.gov/nodd/datasets) makes it sound like L1 datasets are also available on Azure, however, scanning through the docs as well as some manual searches didn't yield anything. Do you know if they're available, but not documented or are the AIforEarthDataSets docs (here) the more accurate in this case? Thanks!

From the website:
GOES-16 & GOES 17  》Amazon Web Services offsite link  》Google offsite link  》Microsoft Azure offsite link
Advanced Baseline Imager Level 1b
Full Disk (ABI-L1b-RadF) | CONUS (ABI-L1b-RadC) | Mesoscale (ABI-L1b-RadM)

From the docs here:
Products available
The following GOES-R products are available on Azure, for both GOES-16 and GOES-17:
ABI-L2-CMIPC (Advanced Baseline Imager Level 2 Cloud and Moisture Imagery CONUS)
ABI-L2-CMIPF (Advanced Baseline Imager Level 2 Cloud and Moisture Imagery Full Disk)
ABI-L2-CMIPM (Advanced Baseline Imager Level 2 Cloud and Moisture Imagery Mesoscale)
ABI-L2-FDCC (Advanced Baseline Imager Level 2 Fire (Hot Spot Characterization) CONUS)
ABI-L2-FDCF (Advanced Baseline Imager Level 2 Fire (Hot Spot Characterization) Full Disk)
ABI-L2-LSTC (Advanced Baseline Imager Level 2 Land Surface Temperature CONUS)
ABI-L2-LSTF (Advanced Baseline Imager Level 2 Land Surface Temperature Full Disk)
ABI-L2-LSTM (Advanced Baseline Imager Level 2 Land Surface Temperature Mesoscale)
ABI-L2-MCMIPC (Advanced Baseline Imager Level 2 Cloud and Moisture Imagery CONUS)
ABI-L2-MCMIPF (Advanced Baseline Imager Level 2 Cloud and Moisture Imagery Full Disk)
ABI-L2-MCMIPM (Advanced Baseline Imager Level 2 Cloud and Moisture Imagery Mesoscale)
ABI-L2-RRQPEF (Advanced Baseline Imager Level 2 Rainfall Rate (Quantitative Precipitation Estimate) Full Disk)
ABI-L2-SSTF (Advanced Baseline Imager Level 2 Sea Surface (Skin) Temperature Full Disk)
GLM-L2-LCFA (Geostationary Lightning Mapper Level 2 Lightning Detection)

A tangential question: does the azure.storage.blob.ContainerClient class support any wildcard-like searches or is name_starts_with the only one implemented? Not sure where to ask for that package anyway

But note that the efficiency of this is limited by the architecture of Azure Blob Storage, which is optimized for prefix-based filtering. It's nice for exploration, but not performance-critical workloads.

Yes, I gathered as much reading around last night, but I was curious. I think the prefix-based filtering is more than enough actually --- one can just output that list and play around it like a list of strings, which is pretty efficient.

does mention that GOES-16 ABI-L1b-RadF might

Yes, but sadly GOES-17 :/ Though again, I'm coming to this from my local work on a personal computer where the difference between the files can be significant, but upon further exploration (also last night) I realized that the file size is less of an issue here and instead I can just happily pull all channels at once and take what I want from there and discard the rest (without having to save, etc.). This seems to be a decent workaround for now, so I am going to be using ABI-L2-MCMIPC which has all the channels together (for my purposes right now, L1 vs L2 doesn't make a big difference).
I have a pretty critical question about kbatch btw --- am I doing something crazy or is it simply unable to discover the GPUs? Is this expected? I tried several different containers, same result. There is no option to select a particular VM, so I am guessing it is defaulting to a non-GPU one...
tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic
library libcudart.so.10.1
2022-05-06 02:20:54.332656: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating
XLA devices, tf_xla_enable_xla_devices not set
2022-05-06 02:20:54.333103: W
tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic
library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such
file or directory
2022-05-06 02:20:54.333133: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed
call to cuInit: UNKNOWN ERROR (303)
2022-05-06 02:20:54.333160: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156]
kernel driver does not appear to be running on this host (test-nvtf-5qjxf-jpfrx):
/proc/driver/nvidia/version does not exist
[]

Btw, I assume you've got too much on your plate to bother with documenting kbatch better, but I am happy to submit a few PRs to improve the docs if you're open to it. I found quite a few inconsistencies, mostly minor, but we can fix them.

Yes, but sadly GOES-17

We (Planetary Compute & Microsoft) do have strong connections at NOAA's NODD program (formerly known as the BDP). If you have specific datasets of interest you'd like, we can forward that along (brownie points if you can share more about the research / applications you're using it for).
I'll answer the kbatch stuff in the issue you just opened.

(brownie points if you can share more about the research / applications you're using it for)

I will share more details once I get a minimal prototype working reasonably well, and I will attempt to submit another application for the Earth AI grant through Azure. Actually, I do have an actual publication coming up based on this work (prototyping on a local cluster) which will be published in July (already accepted), so it will be pretty strong evidence we are making good use of the data! I relied on GCP to get the GOES-17 data from there (ABI-L1b-RadF separate channels), and I downloaded TBs worth of data since I didn't know any better :(
I will also be happy to share a notebook or an exhibit or something like that once I have everything in place (roughly by the end of the summer)
I am going to close this and I will reopen issues more focused on specific items. I do very much want to optimize the efficiency of the container images — locally, I've seen dramatic performance improvement by relying on the NGC tensorflow image, and my main motivation with kbatch was actually getting an NGC image...  I do want to move my work to cloud-based solutions because it's been just a hassle bringing data down and being totally limited by I/O issues (but I think I've finally figured some decent optimizations)

Also, @TomAugspurger, I forgot to mention that ... I am a NOAA affiliate as well, so more reason to get the data!


Track issue with LeaderElection

https://github.com/kubernetes/kubernetes/pull/88192
Leaving this to track the issue with leader election

Circumvented this with -> #70

https://github.com/kubernetes/kubernetes/pull/88192
It's MERGED... woohoo.

This can go as we've merged this in! 🎉


Create Permissions component that allows one or more permissions to be specified

Description
Access to APIs and functions on the UI is restricted by specifying which Permissions are required in order to access the function. We therefore need a standard component that allows users to specifying one or more Permissions in an easy way.

Acceptence criteria
Should have a form component that can be reused throughout the configuration environment for the selection of one or more
Permissions.
The component should:

Allow selection of Permissions as autocomplete control

The autocomplete list should be based on the list of Permissions defined through configuration
The auto-complete list should also indicate which module the permission is defined in

Allow multiple permissions to be selected with each permission selected added as a 'Chip'

A permission component has been created and it is available on developer mode. What's outstanding is to add/replace the new component on the existing settings of all components. Any follow up items will be created separately once the full integration and testing has been done


[16024] Add ROS utilities tutorial

Signed-off-by: David Coello Pulido<EMAIL_ADDRESS>

Depends on https://github.com/eProsima/vulcanexus/pull/93
Please @Acuadros95 review before Friday 25th nov

Could we solve this TODOS with this tutorial?:
`Handling messages memory tutorial <https://micro.ros.org/docs/tutorials/advanced/handling_type_memory>`_

.. TODO(pgarrido): replace this tutorial with the one in vulcanexus when available
.. TODO(acuadros95): Add reference to future "Handling messages memory" tutorial

Or will micro-ROS memory handling tutorial address this?

@Acuadros95  yes, we can reference it

@pablogs9 After checking the tutorial, this is more like an API explanation. We should probably address that TODOs on the memory tutorial

@dcoello-eProsima could you address @Acuadros95 comments?


issue#211 Add Lotus.env

Implement Lotus.env

@nguyenngoc2505 I think string inquirer isn't necessary at all. We can have something like this:
Lotus.env?(:production)

module Lotus
  self.env?(name)
     # NOTE: Lotus::Environment doesn't have #environment? yet
     Lotus::Environment.new.environment?(name)
  end
end

@jodosha Thanks for your comment, I've updated it.

@nguyenngoc2505 This looks great, thank you :clap: :sparkles:
May I ask to extra bonus points?

Please test Lotus.env? and Lotus::Environment#environment? with strings, not just symbols.
What do you think if we let Lotus.env? and Lotus::Environment#environment? to accept multiple names? It would be handy to check multiple envs at once (see the example below).

Multiple envs check
Imagine this scenario
if Lotus.env?(:staging) || Lotus.env?(:production)
  # do something
end

We can provide a shorter version
if Lotus.env?(:staging, :production)
  # do something
end

Please note that single name should still work.

@jodosha great suggestion
@nguyenngoc2505 hint: please look into how to use the single splat parameter

@jodosha , @joneslee85 Thanks for your suggestion. And #1, Do we accept or reject the strings variable? I think we accept the strings variable is good.

@nguyenngoc2505 we would accept String

@jodosha, @joneslee85 I've fixed this PR with your suggestion.

:+1:


Assert on correct parameters

This also fixes debug build

@cimacmillan could you please have a look?

LGTM


ArrayExprSyntax initializer that takes an array of ExprSyntax

Description
Constructing an ArrayExprSyntax from a Swift array of arbitrary ExprSyntax values is a bit of a pain. Right now, we do silly dances like:
let exprs: [ExprSyntax] = ...
let exprString = exprs.lazy
  .map(\.trimmedDescription)
  .joined(separator: ", ")
return ExprSyntax("[\(raw: exprString)]").as(ArrayExprSyntax.self)

Having a convenience initializer that inserts commas and necessary trailing trivia would make this much nicer.

Tracked in Apple’s issue tracker as rdar://109483386

Is it okay for me to handle this issue?

Hi @grynspan!
Would you be able to achieve your request with the result builder initialiser of ArrayExprSyntax
Maybe something like
ArrayExprSyntax {
          for item in [1, 2, 3, 4] {
              ArrayElementSyntax(expression: ExprSyntax("\(raw: item)"))
          }
      }

Is it okay for me to handle this issue?

Sure, I assigned it to you.

Would you be able to achieve your request with the result builder initialiser of ArrayExprSyntax
Maybe something like
return ArrayExprSyntax {
    for item in [1, 2, 3, 4] {
        ArrayElementSyntax(expression: ExprSyntax("\(raw: item)"))
    }
}

To speak on @grynspan’s behalf: The motivating example here is where you already have an [ExprSyntax].


refactor(html): don't use underscore.min.js

You use underscore with var _ = require('underscore'); and haven't use _ global, so you don't need use this script tag

cool! better TTI :D


There was no release for some time

I was a bit surprised when I run create-project and it installed pretty old dependencies.
It seems that this repo is using a lot of newer version, however, they are not released to packagist.
Two solutions that could help with maintaining that:

Doc using composer create-project slim/slim-skeleton:dev-master slim to setup skeleton.
Dependabot could help you with creating automatic pull requests on dependencies update.

I am happy to send PR to doc if you think that's right.

I think that integrating dependabot on all our repos would probably be a great idea. Manually maintaining all these repos is very tedious. I wonder if we could also automate most of the release process. What do you think @adriansuter ?

Yes, I have never personally used dependabot, but it seems to be the right choice.

A quick update on this, I just added dependabot to these repos:

Slim
Slim-Console
Slim-Csrf
Slim-Http
Slim-Psr7
Slim-Skeleton
Slim-Website
Twig-View

Great for dependabot! It might give you loads of notifications, but in general, it's super easy to then update everything.
When it comes to docs, I would still recommend the dev-master. It's not production used ( I cannot think how someone would want boilerplate to be used in prod ) so it's not really a problem, where people using old dependencies might be when it later goes to production.

@maciekpaprocki in the midst of dealing with everything. I understand we have a lot of catching up to do haha.

When it comes to docs, I would still recommend the dev-master
We should definitely do that so you're always up to date when creating the skeleton

Send you PR for that.
Thanks and you are doing an amazing job.

I just did a release also! I’m closing this as resolved.


Starting a Rye workflow

Here is a start to have a Rye workflow. The installation process is here.
I added and updated the pyproject.toml, and added a GithubAction workflow to check the build of the package (that is a start before publishing).
I really think that Rye is a really good toolchain for Python :) It will help other contributors to work on the project, and to expand it.
Next steps: the use of Ruff for a proper lint/format pipeline!

@MisterBourbaki looks good, thank you! :pray:


Repo sync for protected CLA branch

The pull request is created from master637732189142826188 to master to fix git push error for protected CLA branch

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


Chapter 2 build.sh

This line in build.sh:
aws lambda create-function --function-name $lambda --role arn:aws:iam::xxxxxxxxxxx:role/service-role/lambda-basic --runtime nodejs8.10 --handler index.handler --zip-file fileb://archive.zip --publish --profile samwcoding
Has "-profile samwcoding" and I didn't see anywhere in the book's text where -profile is mentioned nor do I see that in the aws documention for create-function

@hkeziah  It's a CLI profile name.
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html


Rework env configuration

Now vcr_cable is disabled by default.
I replaced DISABLE_VCR_CABLE flag with ENABLE_VCR_CABLE.
Also I added highest priority for env config. It's handy when I want disable vcr_cable in yaml by default and add ability for enable it with env flag.

@spaghetticode check out, plz

@spaghetticode could you release new version to rubygems?

Yes of course!


reworked original 2.x version of xrange into range

Fixes #50.
added applicable test from stdlib
added convenience methods to iptest/assert_util.py to mimic unittest
added slice operator
added == != < <= > >= operators
added __contains__ method
added count and index methods of collections.abc.Sequence
changed start, stop and step to be attributes
added __hash__
added support for objects implementing __index__
Converter.TryConvertToIndex does not ignore throwOverflowError parameter
Outstanding: pickle testing - it depends on itertools which depends on missing language features
When reviewing, go for second commit otherwise rename obfuscates changes.
 Can you take a look at the merge conflicts?

@slide there was a trivial line ending mismatch, no real conflict. Rebased and ready to be applied.
The comment about missing itertools is valid and needs to be addressed as other language feature emerge.

LGTM

and rebased


Raoprashant61/adr

Added ADR Indicator
Description

Related Issue

Closes #1877
Motivation and Context

This change allows users to calculate Average Daily Range (ADR)
Requires Documentation Change

How Has This Been Tested?

As a first-time contributor, I'm seeking guidance on how to test my changes. I attempted to test them using existing tests, but some tests are failing. I would appreciate advice on how to approach testing in this context.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Refactor (non-breaking change which improves implementation)
[ ] Performance (non-breaking change which improves performance. Please add associated performance test and results)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (xml comments/documentation/etc)

Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

Hey @Martin-Molinero
I attempted to implement the Average Daily Range (ADR) indicator using the SMA indicator. While some tests have passed, I'm still encountering issues when testing against external data. Approximately 30-35 rows pass, but then it starts failing. Could you please guide me to figure out where I'm making mistakes and how I can fix them?

Hey @raoprashant61! Sorry due to limited bandwidth we can't give much support for contributions, but suggest debugging it, understand what should be and compare with what is, if you can't suggest simplify/reduce the test/assertion and try again


Code quality patch

Pull Request Test Coverage Report for Build 209951582

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 97.215%

Totals

Change from base Build 209868690:
0.0%

Covered Lines:
597

Relevant Lines:
597

💛  - Coveralls


It does not work because forge jar changed place.

In the code the directory of forge jar is "{home_dir}/.gradle/caches/minecraft/net/minecraftforge/forge/{mc_version}-{forge_version}/{csv_type}/{csv_build}/forgeSrc-{mc_version}-{forge_version}.jar"
in newer forge version it's
"modding_project\build\fg_cache\net\minecraftforge\forge\1.13.2-25.0.191_mapped_snapshot_20180921-1.13".

oman pls to fix

I was working on a fix for this here (still work in progress) https://github.com/fadookie/Devoldefy/commit/75b0d372bfa45180f5efb30218f27bacb0681a91
I was able to get it to download the forge jar from the new location, but the code in the output folder isn't being remapped. I'm giving up on this and doing my port by hand for now, but if anyone else wants to pick it up the code is there.

Actually I found a better solution: the https://github.com/qouteall/Devoldefy which updates for more recent forge/MCP layout and adds reverse mapping capabilities.
There's currently a build error on master, but I put up a fixed version at https://github.com/fadookie/Devoldefy

oops, I will fix my fork's compile error


feat: Add support for UnboundSortOrder

See java implementation as reference.

I will give this a try, started looking into it.

I will give this a try, started looking into it.

Thanks!


Interrupts_Typing

Issue Type: Bug
Suppose I am trying to give a heading like Search
I can not write 'c' in 'search' sometimes as it keeps on popping that :: (c,h has no key binding)::
I don't understand as I have not set any key binding with this two letters then why doesn't it let me complete my word?
This problem started occuring after reinstalling my VS Code, as it got deleted unexpectedly.

I haven't tried with all extensions disabled. I will let you know the
outcome after following this procedure.
On Mon, Feb 15, 2021 at 10:03 AM John Murray<EMAIL_ADDRESS>wrote:

Does the problem also happen after you run the command to reload with all
extensions disabled?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/116669#issuecomment-778922335,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AS3IMFJQEAVCSZ5BULWATCLS7CMJDANCNFSM4XT6GH3Q
.

Disabling all my extensions didn't work either!
Please tell me a solution, I love to use VS Code for my projects.
Today i realized i am having problem only while i am trying to type small
'c' only. But most often i am trying to type c. And that's when it gets
painful to use this VS Code.
On Tue, Feb 16, 2021 at 6:24 PM Hridi Tasnim<EMAIL_ADDRESS>wrote:

I haven't tried with all extensions disabled. I will let you know the
outcome after following this procedure.
On Mon, Feb 15, 2021 at 10:03 AM John Murray<EMAIL_ADDRESS>wrote:

Does the problem also happen after you run the command to reload with all
extensions disabled?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/116669#issuecomment-778922335,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AS3IMFJQEAVCSZ5BULWATCLS7CMJDANCNFSM4XT6GH3Q
.

Please follow the steps at https://github.com/microsoft/vscode/wiki/Keybinding-Issues


Test case for issue #5

A test case for issue #5, not sure main is the right place to merge, but we don't have another branch for this issue yet.

@coleb, I still think whatever code is upstream should be using .readlines() or .splitlines(keepends=True) instead. I will work on adding this functionality though.

Closed by #20.


Add support for registering global script classes (class_name) using C#

Godot version:

3.1rc1
OS/device including version:

Linux
Issue description:

Class name and icon features don't seem to be working with C#/Mono.
Steps to reproduce:
I tried adding functions GetClassName() and GetScriptClassIconPath() to a C# script but didn't work (is this how it's supposed to work?).
Minimal reproduction project:

Where do GetClassName() and GetScriptClassIconPath() come from?

Just functions I added to a script, again, I don't know if this is the right way so let me rephrase it.
Is there a way to use the class_name functionality of GDScript in C#?

No, I will add that after 3.1 (it's too late to risk introducing regressions). I still don't understand were those methods come from though. I can't find any get_class_name equivalent for GDScript.

I still don't understand were those methods come from though. I can't find any get_class_name equivalent for GDScript.

They were just trying a shot in the dark I think, to see if by chance those would have been the virtual methods used to expose this feature.
In GDScript, the syntax is:
extends Node
class_name MyNode
# or, with icon:
class_name MyNode, "res://path/to/icon.png"

It's implemented in gdscript_parser.cpp. Look for TK_PR_CLASS_NAME.
I have to dig deeper to understand how a GDScript "global class" translates to C#, where classes are global anyway due to there being only one project assembly.
The icon is probably for the editor, and I suppose having that would be nice :)

@shartte
C# classes don't appear as a node type in add node dialogue, which is the main use case of class_name keyword.

Ah that explains that then. Lots of different ways of solving this though.

It would be [GlobalClass("res://icon_path")]. The class name is redundant as you can take it from the type.

Only if you use fully qualified names. Is the class name supposed to be used only for display purposes or is that actually stored somewhere?

I think the class name is for display only. The script is actually referenced with the path, since that's how Godot does scripts.
Now that I think of it, this will cause problems if you want to use this on classes that cannot be referenced as a file. But that's more the subject of #15661.

I think the class name is for display only. The script is actually referenced with the path, since that's how Godot does scripts.

The class name is also registered as a global class. You can do node is MyNode or var node = MyNode.new().

Hm so that means you won't likely be able to use the fully qualified class name since periods in the name would break it?
I'd vote for at least allowing devs to set the desired name in the attribute then...

The class name is also registered as a global class. You can do node is MyNode or var node = MyNode.new().

I'm pretty sure the MyNode.new() syntax translates to something similar to preload(script_path).new() internally.
Also the is operator in GDScript cannot be used with C# scripts.

Since Godot already has another way to create custom node types which works with any language, and since class_name is only a GDScript feature, perhaps we should consider deprecating class_name in favor of creating custom node types through addons, or perhaps make it have different functionality. I don't really see why we need two ways to create custom node types, especially if one only works with GDScript.

I don't think those are the same. AFAIK, class_name can be used with ordinary scripts which are part of a plugin. class_name is very useful because not every custom type needs to be a plugin, so please don't deprecate it.

@neikeq

The class name is also registered as a global class. You can do node is MyNode or var node = MyNode.new().
I'm pretty sure the MyNode.new() syntax translates to something similar to preload(script_path).new() internally.

Iirc, the GDScriptLanguage class has a Vector that it uses to store a collection of global variables for the language and a string->int map (can't recall if HashMap or Map) that registers the script class names to the corresponding indexes. During its initialization, it runs through the list of types defined in the ScriptServer, loads all of the file paths, and adds them all as global variables.
So, if you had a FQN stored as the script class name in the ScriptServer, it would like just end up creating a global variable that couldn't be accessed (since no valid GDScript identifier would match the string key in the map that provides the corresponding global variable vector index). The CSharpScripts would get turned into inaccessible globals.

Also the is operator in GDScript cannot be used with C# scripts.

That sounds more like the is keyword implementation needs to be updated to support arbitrary scripted types.
@aaronfranke

Since Godot already has another way to create custom node types which works with any language, and since class_name is only a GDScript feature,
It's fine I guess.

Actually, the main difference is that script class names can be accessed at runtime while custom types can only be accessed from the editor. Furthermore, in order to define a custom type, you must register it via an EditorPlugin whereas script classes are defined directly from the script's file.
The EditorFileSystem that scans the project every time you save in the ScriptEditor will also attempt to update script class names. It iterates over all script files, figures out which ScriptLanguage instance to grab, and then calls get_global_class_name on the script using the ScriptLanguage. Its implementation then returns the name of the script file (and any potential icon) which it then caches in Dictionaries inside the project.godot file. This file is then used to initialize the ScriptServer's global ClassName->ScriptPath map which is accessible to scripting languages at runtime.
Rather than deprecating the highly specific script classes in favor of the generic custom types, the better approach would be to add support for script classes to all scripting languages and then completely deprecate the custom type system since it doesn't support as wide of a feature set. GDScript and NativeScript already have support (although NativeScript doesn't generate any global variables or anything).
@seadra
The only reason I didn't add support to CSharpScript initially was because you needed the get_base_script() method to return the proper inherited script in order for the CreateDialog to understand their inheritance hierarchies correctly (at the time, don't think that's changed either), and when I asked about why it hadn't been implemented. no one even knew what it was for. And I couldn't seem to figure out how to make sense of the CSharpScript implementation or what the MonoObject relationship was to CSharpScript, Script, etc.
I haven't added support to VisualScript cause, at the time, I would've needed to define a GUI and I was running out of time since the 3.1 release was so close. And I just haven't come back to the problem yet. All you have to do to add support is grant some way for a Script to define a class name and/or icon, and then have the ScriptLanguage implementation return that data when get_global_class_name is called with the script's path. And then, if you want, you can create some means of making other language's scripts accessible by name. The ScriptServer only has the one namespace though. reduz hasn't wanted to change that (I already asked a long time ago).

While I would love to see this done as part of https://github.com/godotengine/godot-proposals/issues/22, there's no way that this is going to be done for 3.2. I suggest bumping to the 4.0 milestone.

@aaronfranke Yeah, this won't be done till 4.0 at the earliest. In fact, I already have a partial implementation done, but I am having trouble getting the ScriptClass attribute detected by the CSharpScript. Waiting to hear back from @neikeq for assistance on figuring out why my code isn't working.

Does the milestone still checks out or this will be postponed for 4.1 or other future version?


Standard value for emulator flag and possibility to change the standard using and ENV var

Instructions
Issue To Be Solved
flow project deploy does not work anymore since the new -n flag does not have a default.
(Optional): Suggest A Solution

network should have a default value set to emulator
implement a way to change this default value using an ENV_VAR or a value in flow.json

Good catch. I've already solved this in an open PR #161 which will be released next week.

PR #161


Fix tests not exiting w/ non-0 on failure.


pip install failing

I don't think the package as fetched from pip includes the README.rst anymore?  I'm having trouble installing it:
Downloading/unpacking minimongo
Running setup.py egg_info for package minimongo
Traceback (most recent call last):
File "", line 16, in
File "/var/folders/tz/gvwfckmx06vg9107bqd3mmynbxzgjs/T/pip-build/minimongo/setup.py", line 58, in
long_description=LONG_DESCRIPTION,
NameError: name 'LONG_DESCRIPTION' is not defined
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 16, in
File "/var/folders/tz/gvwfckmx06vg9107bqd3mmynbxzgjs/T/pip-build/minimongo/setup.py", line 58, in
long_description=LONG_DESCRIPTION,

NameError: name 'LONG_DESCRIPTION' is not defined

@slacy Has this been fixed?
Seems like a simple fix but gives a very bad impression when trying to test the library for the first time

Yes, this has been fixed by PR#36 and merged into master. However, there wasn't a PyPI release since then. I think we can do a release after Python3 support (see #34).


Bug Report: Trailing "00" at the End of Fetched IDs

Description
When fetching IDs from the Supabase database, a trailing "00" appears at the end of each ID, which is not part of the original data. This behavior is inconsistent and unexpected.
Steps to Reproduce

Create a junction table.

create table
  public.junc_orgs_discord_channels (
    org_id bigint not null,
    channel_id bigint not null,
    constraint orgs_discord_channels_pkey primary key (org_id, channel_id),
    constraint orgs_discord_channels_channel_id_fkey foreign key (channel_id) references discord_channels (id),
    constraint orgs_discord_channels_org_id_fkey foreign key (org_id) references orgs (id)
  ) tablespace pg_default;

Set up a Supabase database with entries containing unique IDs.
Use the supabase-js client to fetch entries from the database.
Inspect the returned IDs.
Observe that each ID has an unexpected trailing "00".

Expected Behavior
Should return the actually id.
Screenshots
If applicable, add screenshots to help explain your problem.

System Information
OS: (Please fill in your OS, e.g., macOS, Windows)
Browser: (If applicable, e.g., Chrome, Safari)
Version of supabase-js: 6.0.2
Version of Node.js: 10.10.0
Additional Context
This issue is impacting the integrity of the data being fetched from the database, leading to potential mismatches and errors in subsequent operations.

I've managed to identify the root cause of the issue with the trailing "00" at the end of the fetched IDs. It turns out this issue is not directly related to Supabase but rather a limitation within JavaScript itself when handling large integers.
By default, JavaScript's Number type can only safely represent integers up to (2^{53} - 1) (i.e., Number.MAX_SAFE_INTEGER, which equals<PHONE_NUMBER>740991). When an integer exceeds this limit, JavaScript may not represent it accurately, which was the reason behind the trailing "00".
Solution
The solution is to use JavaScript's BigInt type for handling large integer IDs:
const bigNumber = BigInt(data[0].id);
console.log(bigNumber);
By using BigInt, we can ensure that the IDs fetched from the database are represented accurately, thus preserving data integrity.

Conclusion
If you're facing a similar issue, consider switching to BigInt for large integer values.
I'm closing this issue as it's been resolved. Feel free to reopen if you have any more questions or need further clarification.

Thanks @Slyracoon23! FYI this is being tracked on https://github.com/supabase/postgrest-js/issues/319


Add copyright headers to all c/h files

Since QDLDL is part of the OSQP source code, we should be explicit about the copyright and labelling of all these files. This will help tracking them during OSQP codegen, and if people use them separately.
The names in the files are based on the main contributors in the git history for them. I have also included the catch-all "OSQP Developers" to mean other contributors as well.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
87

Relevant Lines:
87

💛  - Coveralls


Chest-Access flag not preventing players from opening chests

When I set up a claim, only trusted players can build on it, but everyone can open chests within the claim. When I check the claim flags it says Chest-Access is False and that it is overridden by an administrator and cannot be changed.
Using GriefDefender version 1.3.5 on a Spigot Paper 1.15.2 server with LuckPerms 5.1.26.
List of Plugins:
-BetterRTP
-ChestShop
-CommandSigns
-Essentials
-EssentialsAntiBuild
-EssentialsChat
-EssentialsGeoIP
-EssentialsProtect
-EssentialsSpawn
-EssentialsXMPP
-GriefDefender
-HolographicDisplays
-Jobs
-LuckPerms
-mcMMO
-pvpstats
-Vault
-Votifier
-VotingPlugin
-WorldEdit

GitHub Issue tracker is not used for support. If you want support, ask in the discord support channel.


the troubles with running node benchmark/simple/main.js -c config.json -n fabric.json

Context
not ok 2 Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined at EventHub._checkConnection (/home/dzy/caliper/node_modules/fabric-client/lib/EventHub.js:479:39) at EventHub.registerBlockEvent (/home/dzy/caliper/node_modules/fabric-client/lib/EventHub.js:658:8) at Promise (/home/dzy/caliper/src/fabric/join-channel.js:167:8) at new Promise () at eventhubs.forEach (/home/dzy/caliper/src/fabric/join-channel.js:164:20) at Array.forEach () at Client.newDefaultKeyValueStore.then.then.then.then (/home/dzy/caliper/src/fabric/join-channel.js:163:13) at
operator: fail
at: channels.reduce.then.catch (/home/dzy/caliper/src/fabric/join-channel.js:74:15)
stack: |-
  Error: Failed to join peers, TypeError: Cannot read property 'getConnectivityState' of undefined
      at EventHub._checkConnection (/home/dzy/caliper/node_modules/fabric-client/lib/EventHub.js:479:39)
      at EventHub.registerBlockEvent (/home/dzy/caliper/node_modules/fabric-client/lib/EventHub.js:658:8)
      at Promise (/home/dzy/caliper/src/fabric/join-channel.js:167:8)
      at new Promise (<anonymous>)
      at eventhubs.forEach (/home/dzy/caliper/src/fabric/join-channel.js:164:20)
      at Array.forEach (<anonymous>)
      at Client.newDefaultKeyValueStore.then.then.then.then (/home/dzy/caliper/src/fabric/join-channel.js:163:13)
      at <anonymous>
      at Test.assert [as _assert] (/home/dzy/caliper/node_modules/tape/lib/test.js:226:54)
      at Test.bound [as _assert] (/home/dzy/caliper/node_modules/tape/lib/test.js:77:32)
      at Test.fail (/home/dzy/caliper/node_modules/tape/lib/test.js:319:10)
      at Test.bound [as fail] (/home/dzy/caliper/node_modules/tape/lib/test.js:77:32)
      at channels.reduce.then.catch (/home/dzy/caliper/src/fabric/join-channel.js:74:15)
      at <anonymous>

...
fabric.init() failed, Error: Fabric: Join channel failed
at channels.reduce.then.catch (/home/dzy/caliper/src/fabric/join-channel.js:75:27)
at
unexpected error, Error: Fabric: Join channel failed
at channels.reduce.then.catch (/home/dzy/caliper/src/fabric/join-channel.js:75:27)
at
docker-compose -f network/fabric/simplenetwork/docker-compose.yaml down;docker rm $(docker ps -aq)
/home/dzy/caliper/node_modules/fabric-client/lib/EventHub.js:308
if(self._stream) state = self.stream.call.channel.getConnectivityState();
^
TypeError: Cannot read property 'getConnectivityState' of undefined
at ClientDuplexStream. (/home/dzy/caliper/node_modules/fabric-client/lib/EventHub.js:308:56)
at emitOne (events.js:116:13)
at ClientDuplexStream.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at ClientDuplexStream.Readable.push (_stream_readable.js:208:10)
at Object.onReceiveMessage (/home/dzy/caliper/node_modules/grpc/src/client_interceptors.js:1292:19)
at InterceptingListener.recvMessageWithContext (/home/dzy/caliper/node_modules/grpc/src/client_interceptors.js:607:19)
at /home/dzy/caliper/node_modules/grpc/src/client_interceptors.js:706:14

and there is no network.json

@dzyand Based on your logs you use a reaaaallly outdated version of Caliper. The simplenetwork network has been removed a long time ago. Please clone the repository again and follow the instructions in the doc page: https://hyperledger.github.io/caliper/docs/1_Getting_Started.html

thank you very much!

@aklenik thank you very much!


Missing world-config result in crash at server startup

Two cases that end in a crash.
Details:

Forge 1.12.2-<IP_ADDRESS>68
Biome_Bundle-1.12.2-v6.1.jar
OpenTerrainGenerator-1.12.2_-_v8_r3

1. Case one:
Conditions:

mods folder contains two files: OpenTerrainGenerator-1.12.2_-_v8_r3.jar, Biome_Bundle-1.12.2-v6.1
any leftover of other versions in mods folder were deleted. Like the "1.12.2"- and/or the "OpenTerrainGenerator"-folder
folder with world name does not yet exist (so map is not yet generated)
level-name in server.properties is not Biome Bundle, e.g. Midgard

Expected:
OTG loads at startup and creates folder called Midgard in \mods\OpenTerrainGenerator\worlds
Actual Result:
Server crash at startup. See crash_case_one.txt
2. Case one:
Conditions:

mods folder contains one file: OpenTerrainGenerator-1.12.2_-_v8_r3.jar
any leftover of other versions in mods folder were deleted. Like the "1.12.2"- and/or the "OpenTerrainGenerator"-folder
folder with world name does not yet exist (so map is not yet generated)
level-name in server.properties is not Biome Bundle, e.g. Midgard

Expected:
OTG loads at startup and creates folder called Midgard in \mods\OpenTerrainGenerator\worlds
Actual Result:
Server crash at startup. See crash_case_two.txt
Conclusion:
Both cases worked on OpenTerrainGenerator-1.12.2+-+v6.jar.
Typical procedure of case one: I choose any level-name for my server and launched the server. Then I stopped it and copied the content of the "Biome Bundle" folder in \mods\OpenTerrainGenerator\worlds to my worlds folder called Midgard. So next time launching my level-name Midgard it loaded the Biome Bundle config for Midgard..
The typical procedure for case two would be the lack of a config, because you want to create one. So you can not provide any config in \mods\OpenTerrainGenerator\worlds. What to do then?

Hey @ErikSteiner , thanks for reporting this. With v6, if no OTG world directory existed for the specified world, it creates a new world directory and fills it with a worldconfig and biomeconfigs for a default world, right?
You can currently do that in Forge SP via the world creation menu (create a new preset via the presets menu. I suppose this would be nice for MP, although I don't recommend designing configs on a Forge server (SP is much easier). For Spigot I suppose this does have to work, or users won't have a way of creating a new default world (they can ofc also use Forge SP and copy the world to Spigot).

With v6, if no OTG world directory existed for the specified world, it creates a new world directory and fills it with a worldconfig and biomeconfigs for a default world, right?
Yes, in my opinion this is the best to handle the case where the user forgot to add a world directory or if he used the wrong level-name (if on MP).

Should be fixed for v8_r6, to be released on the otg-dev channel on the Discord at #openterraingen. v8 official release should be within a week or two. Actually, this should be one of the last issues :). Thanks for reporting!


Unable to use CURLOPT_* constants in RestfulService YML configuration.

Right now you cannot specify the standard curl configuration options (e.g. CURLOPT_CONNECTTIMEOUT) in the YML configuration. Instead, if you need to change the connect timeout, you'd have to provide the following configuration with the actual value of the constant itself, e.g.:
RestfulService:
  default_curl_options:
    78: 10

I'd like to be able to do the following instead:
RestfulService:
  default_curl_options:
    CURLOPT_CONNECTTIMEOUT: 10

I can submit a pull request demonstrating the code that I've written to address this.

Closing because we're dropping support for restfulservice in 4.x and it's not worth the effort to maintain it


OpenGLControl Undocking Issue

I have a Form with OpenGLControl inside (C# program).
Those are the properties:
_glcontrol.RenderContextType = RenderContextType.NativeWindow;
_glcontrol.RenderTrigger = RenderTrigger.TimerBased;
_glcontrol.OpenGLVersion = SharpGL.Version.OpenGLVersion.OpenGL4_4;
When the Window is undocked the OpenGLControl become White and I can't restore the control over the component.
Any idea in order to resolve this issue?
thank you very much
[]

(url)

I noted that OpenGLControl has different behaviors if I set RenderContextType property to DIBSection or NativeWindow.
In the first case the window doesn't disappear while in the second case disappear .
very disappointing behavior. I partially solved recreating the Handle.
I need to investigate more.


Keycloak Discord idP - Blazor Wasm

Heya, sorry I don't know any other way to contact you! 🥹
I saw your post on https://stackoverflow.com/a/76357231/6622349 regarding using Keycloak and Discord as the idP and passing the prompt parameter "none" will cause the discord iframe to load, but never appear because they disallow it.
Im wondering if you found a workaround for this issue that will still allow prompt=none so the user does not have to authorize everytime with the same scopes.
Again, sorry i've asked this question here 😅
Thanks!

@Alexr03 Hey there, the prompt=none part of it works. The described issue only affects the 10 seconds delay before getting redirected to the Discord page.
As of switching to .NET 8 recently and back to Cookie based auth, the issue is even less present. Only when the long lasting refresh token of Keycloak expires, then a redirect to Discord is required.


Migrate metadata to yjit-bench/benchmarks.yml

This is part of https://github.com/Shopify/yjit-bench/pull/142#issuecomment-1337170356:

if we agree on a way to store the info in yjit-bench going forward, I can work on PRs for yjit-bench and yjit-metrics to move the info to the right place.

I want us to start using yjit-bench/benchmarks.yml in yjit-bench to avoid maintaining the same metadata in two places. I don't care whether we use git submodules or not. I'm open to anything @noahgibbs prefers for doing so :)

Right now, yjit-metrics already keeps a checkout of yjit-bench. We can use that. I'd prefer not to use submodules, since that basically requires making a yjit-metrics commit every time yjit-bench updates.

This looks great, other than me having manually added one benchmark from the YAML to the report, so this now conflicts. I'll update this and merge it.

Merged.


Remove getFirstDataSourceJmsRealm

Doesn't actually removes the code, as this is still used by the (old) struts console.
Once the struts console is gone, these methods should follow!

Supersedes #560


Identity Scaffolding?

I can't find
Identity Scaffolding

@ourweb4 See the following doc: https://docs.microsoft.com/aspnet/core/security/authentication/scaffold-identity


⚠ Mobitopup has degraded performance

In 805eada, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 4922 ms

Resolved: Mobitopup performance has improved in 49b04d1.


Allow to go to the last edit position multiple times

Current behavior
Currently, the "Go to Last Edit Location" function can only run once(the effect of executing multiple times is the same as executing only once).
For instance, I have made two edits(position A and position B), and the "Go to Last Edit Location" action can only lead me to the position B.
Expected behavior
It would be very nice to use a stack to store the previously edited positions and pop them when the "Go to Last Edit Location" is executed.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

I found that there is a "Go Previous In Edit Positions" command which is exactly the same functionality that I want, but there is no default key bindings for this functionality, we can use "Cmd+Shift+P"(Mac) or "Ctrl+Shift+P"(windows) to invoke this command manually. Or we can add key bindings for this command.

definition of the Go Previous In Edit Positions command
So I think this feature request can be closed now.


sign up iciue

Since the PR is not updated for too long, it is temporarily closed. If you want to continue to participate in Startrek, please apply again.


io: Unable to write more than 65536 (2^16) bytes

Go version
go version go1.20.11 linux/amd64
Output of go env in your module/workspace:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/msc24x/.cache/go-build"
GOENV="/home/msc24x/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/msc24x/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/msc24x/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.20.11"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build510038043=/tmp/go-build -gno-record-gcc-switches"

What did you do?
Trying to write a byte array into a command's input stream (stdinpipe)
Following is the dummy snippet wrote for demonstration, which is running a command, reading a file with over 70,000 bytes.
It remains stuck on write_closer.Write(file_bytes) forever.
Maybe what I'm doing is not the correct way?
Sinppet
package main
import (
	"fmt"
	"os"
	"os/exec"
)

func main() {
	cmd := exec.Command("echo")
	write_closer, err := cmd.StdinPipe()
	if err != nil {
		panic(err.Error())
	}
	file_bytes, err := os.ReadFile("./70kchars.txt")
	if err != nil {
		panic(err.Error())
	}
	fmt.Println("size", len(file_bytes))
	write_closer.Write(file_bytes) # Remains stuck on this line forever
	fmt.Println("written", err)
	write_closer.Close()
}

Output
size 77324
^Csignal: interrupt

What did you see happen?
It was observed that the program remains stuck on line write_closer.Write(file_bytes)
What did you expect to see?
I expected it to write all the bytes.

Related Issues and Documentation

os.Pipe() issue: a function to read a line from STDIN and output the line to STDOUT not able to write a line of size 100MB back to STDOUT  #52777 (closed)
execution hangs when I try to open named pipe file  #58854 (closed)
io/ioutil hangs with too big output from os/exec stderr and stdout pipes  #16787 (closed)
runtime: infinite loop causing stack overflow in bufio #38481 (closed)
ioutil: deadlock when WriteFile called with a 5<<30 byte buffer on Windows #31211 (closed)
File descriptor slice bounds out of range error #30330 (closed)
ssh: writing more than 655360 bytes to remote stdin intermittently hangs on Wait() #3479 (closed)
net: goroutine stuck in waitWrite() #66543 (closed)
os/exec: Stdout/Stderr not closed after data copied #22610 (closed)
os: File.ReadFrom copy_file_range: bad file descriptor on append only file #60181 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

pipes are not unlimited buffers, and echo does not read from stdin.
Unlike many projects, the Go project does not use GitHub Issues for general discussion or asking questions. GitHub Issues are used for tracking bugs and proposals only.
For questions please refer to https://github.com/golang/go/wiki/Questions

Its probably due to the following:
From https://www.man7.org/linux/man-pages/man7/pipe.7.html
Pipe capacity
       A pipe has a limited capacity.  If the pipe is full, then a
       [write(2)](https://www.man7.org/linux/man-pages/man2/write.2.html) will block or fail, depending on whether the O_NONBLOCK
       flag is set (see below).  Different implementations have
       different limits for the pipe capacity.  Applications should not
       rely on a particular capacity: an application should be designed
       so that a reading process consumes data as soon as it is
       available, so that a writing process does not remain blocked.

       Before Linux 2.6.11, the capacity of a pipe was the same as the
       system page size (e.g., 4096 bytes on i386).  Since Linux 2.6.11,
       the pipe capacity is 16 pages (i.e., 65,536 bytes in a system
       with a page size of 4096 bytes).  Since Linux 2.6.35, the default
       pipe capacity is 16 pages, but the capacity can be queried and
       set using the [fcntl(2)](https://www.man7.org/linux/man-pages/man2/fcntl.2.html) F_GETPIPE_SZ and F_SETPIPE_SZ operations.
       See [fcntl(2)](https://www.man7.org/linux/man-pages/man2/fcntl.2.html) for more information.

       The following [ioctl(2)](https://www.man7.org/linux/man-pages/man2/ioctl.2.html) operation, which can be applied to a file
       descriptor that refers to either end of a pipe, places a count of
       the number of unread bytes in the pipe in the int buffer pointed
       to by the final argument of the call:

           ioctl(fd, FIONREAD, &nbytes);

       The FIONREAD operation is not specified in any standard, but is
       provided on many implementations.

What worked for me:
Should have directly set the input stream to a file (*os.File) to approach this situation.
cmd.Stdin = file


parallel-single-nowait causes post-processing error

This source:
#include <omp.h>
#include <stdio.h>
int main(void)
{
    int num[20] = {0}, k=0;
    #pragma omp parallel
    #pragma omp single nowait
    for (k=0; k<20; k++)
    {
        num[k] = omp_get_thread_num();
    }

    return 0;
}

Causes this post-processing error:
generating chunks from event stream...
yielding chunks:
graph chunks created:
  single_executor           1
  parallel                  1
  initial_task              1
combining chunks
nodes created            10
contracting by parallel sequence ID
nodes updated            10 ->      8 (    -2)
contracting by single-begin/end event
nodes updated             8 ->      6 (    -2)
contracting by master-begin/end event
nodes updated             6 ->      6 (     0)
deleting redundant edges due to master regions: 0
contracting by task ID & endpoint
nodes updated             6 ->      6 (     0)
contracting by task ID where there are no nested nodes
nodes updated             6 ->      6 (     0)
contracting redundant sync-enter/leave node pairs
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/adam/git/otter/src/python/otter/__main__.py", line 296, in <module>
    main()
  File "/home/adam/git/otter/src/python/otter/__main__.py", line 174, in main
    g.vs['cluster'] = label_clusters(g.vs, lambda v: v['sync_cluster_id'] is not None, 'sync_cluster_id')
  File "/home/adam/git/otter/src/python/otter/helpers.py", line 97, in label_clusters
    cluster_counter = count(start=sum(not condition(v) for v in vs))
  File "/home/adam/git/otter/src/python/otter/helpers.py", line 97, in <genexpr>
    cluster_counter = count(start=sum(not condition(v) for v in vs))
  File "/home/adam/git/otter/src/python/otter/__main__.py", line 174, in <lambda>
    g.vs['cluster'] = label_clusters(g.vs, lambda v: v['sync_cluster_id'] is not None, 'sync_cluster_id')
KeyError: 'Attribute does not exist'

Only present with OMP_NUM_THREADS=1
Offending code deals with collapsing synchronisation region enter/leave nodes
Appears to be caused by the nowait clause on the single
Noticed that with 1 thread and the nowait clause there are no implicit barriers encountered, so the attribute sync_cluster_id is never defined.


Allow container images to be stored in B2DROP, OneData etc

Check:

[x] Singularity .sif image
[x] Singularity container from Docker tarball
[x] udocker from Docker tarball

Implemented in https://github.com/prominence-eosc/prominence/commit/cafe90550e47c5fdb43794a87b806b22e555c159 https://github.com/prominence-eosc/prominence/commit/75501023a63c494016d0d72450ad2341098194ef https://github.com/prominence-eosc/prominence/commit/d0398a1455fd3d4a1fd4769c9e7e5442a9d87a31


update to use gherkin3

This was a pain to update. I really need to add unit tests.

Closing as need to update to gherkin 4 now


Quota Fallback

Tell us about your request
Ice cache should include quota out errors.
Attachments
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Implemented in https://github.com/aws/karpenter/pull/1715


Property checking

...with dependent types for quantor logic.
Props.forAll(...).exisitsUnique(...).suchThat(...)
Update: Create a 'Property' DSL for first-order logic
Some symbols:

A, ∀, forAll
E, ∃, exists
E!, ∃!, existsUnique
:, suchThat
=>, →, implies
<=>, ↔, ifAndOnlyIf
&, ∧, ^, and
|, ∨, v, or
~, ¬, not
T, true
⊥ ,false

Doc on QuickCheck by John Hughes

An object-functional approach with ScalaCheck (also inspired by Haskell's QuickCheck)

Property Check vs. First-Order Logic
Let size be a natural number > 0.
Exists Quantor (∃)
We know the Sentence of Pythagoras: (∀a,b ∈ ℝ+ ∃c ∈ ℝ+ : a²+b²=c²)
To prove such a sentence mathematically, we take arbitrary a and b and provide a c such that the given property is satisfied. Then the existence of such a c is proved. Because we take arbitrary a and b, the property cannot be falsified and the sentence is (tautologically) true.
It would be overkill to provide an exists API, e.g.
final Arbitrary<Double> real = Gen.choose(0, (double) )
Property.forAll(real, real).exists(real).suchThat((a, b, c) -> a*a + b*b == c*c);

because the Property Check framework would have to search a c until the property is satisfied. This might take infinitely long, depending on the underlying random number generator.
But we know something about c, it is all there already. Instead of (∀a,b ∈ ℝ+ ∃c ∈ ℝ+ : a²+b²=c²), we write (∀a,b ∈ ℝ+ : a²+b² ∈ ℝ+). Then we may formulate this property like this:
final Arbitrary<Double> real = Gen.choose(0, (double) size).filter(d -> d > .0d);
Property.forAll(real, real).suchThat((a, b, c) -> a*a + b*b > .0d);

Implication (→)
We all know implications, i.e. given a precondition that holds for a specific configuration of random variables, we are allowed to imply that a (depending) property is true.
(∀a,b ∈ ℝ+ : a < b → a² < b²)
We would formulate this as follows:
final Arbitrary<Double> real = Gen.choose(0, (double) size).filter(d -> d > .0d);
Property.forAll(real, real).suchThat((a, b) -> a < b).implies((a, b) -> a*a < b*b);

Note: Internally (the generated) Property.java could have been implemented more elegant in a functional way, i.e. leveraging function composition instead of statement-wise. But this doesn't really matter - what counts is the end-user API of the property check framework.

Next steps:
Let p and q be properties.

p.implies(q) -- this may exhaust the maximum tries if p cannot be satisfied (ex falso quodlibet)
p.and(q) -- result is p.check(), if p is falsified and q.check(), if q is falsified, otherwise CheckResult.satisfied(tries)
p.or(q) -- result is q.check() if p could not be satisfied, otherwise p.check()


v1.12.alpha.2 linux-amd build appears to be for another architecture (darwin-amd?)

This might be a duplicate of #153, but it seems that the apiserver-boot binary (and probably others) in v1.12.2-linux-amd64 are not ELF images and fail with the error "apiserver-boot: cannot execute binary file: Exec format error".

sry for the negligence, it was a misconfiguration in our CI environment. binaries updated.
/close


feat: document go proxy envs in man page

Document HTTP_PROXY, HTTPS_PROXY, NO_PROXY env vars in man page.
More details:

https://pkg.go.dev/net/http#ProxyFromEnvironment
https://pkg.go.dev/golang.org/x/net/http/httpproxy

WDYT?

Makes sense. I adapted the description - could you have another look? @pvoborni :smile:


Filtering large topics is extremely slow

Issue submitter TODO list

[X] I've searched for an already existing issues here
[X] I'm running a supported version of the application which is listed here and the feature is not present there

Is your proposal related to a problem?
Filtering large topics is extremely slow
Describe the feature you're interested in
I have a topic with lots of messages (tens of millions, don't ask... LOL )
I have noticed that filtering is extremely slow when compared against Offset Explorer.
Maybe it's because OE allows to specify how many messages you want to fetch (e.g. newest/oldest 1k).
For some kind of analysis (e.g. duplicate search) you don't need a thorough search that yields ALL the messages, it could be enough to have a search performed on the last X messages.
So I guess that what I'm asking is, could we have a way to limit the scope of a search to the oldest (or newest) n (user-defined) messages of a topic?
Thanks
Describe alternatives you've considered
No response
Version you're running
56fa824 v0.7.1
Additional context
No response

Screenshot from OE:

@andreaippo can you take a look at the master-tagged image? Does it improve there?

@andreaippo can you take a look at the master-tagged image? Does it improve there?

Hi! Yes, thanks, it's considerably better!
For reference it took 48secs to Offset Explorer to do that search, with a limit on the newest 10k messages per partition (with 9 partitions on my topic that means 90k messages read, I suppose).
On kafka-ui it took also 48-49secs to complete the search, but it returned MORE results when compared to OE.
I think that OE forcing you to choose the amount of messages per partition beforehand will actually limit the scope of the search, which also means not seeing matching results. I like kafka-ui's approach better, since as far as I understand it will scan the full contents of all partitions for the selected topic.
Could you please confirm if that is the case? Since I don't see any option to specify the amount of messages to fetch (see previous screenshot from OE asking for Max Messages (per partition).
That would clearly make kafka-ui the superior choice :)
Meanwhile thanks for your reply :)

Yes, we do not have a straight-obvious limit like in other tools, rather we have a pagination (which is currently broken, to be solved within #3504). We've considered getting rid of pagination in favor of a fetch limit, which actually does make sense, it's not like you'd need to scroll through 500+ messages within one search, but that's another story.
Regarding the modes, no, it's not just ordering, it affects the search as well, oldest meaning we're gonna scan the topic from the oldest offsets to newest and vice versa for "newest first".
These modes on the right side are actually tied to the modes on the left, in v2 it's gonna look like this:

Yes, we do not have a straight-obvious limit like in other tools, rather we have a pagination (which is currently broken, to be solved within #3504). We've considered getting rid of pagination in favor of a fetch limit, which actually does make sense, it's not like you'd need to scroll through 500+ messages within one search, but that's another story.
Regarding the modes, no, it's not just ordering, it affects the search as well, oldest meaning we're gonna scan the topic from the oldest offsets to newest and vice versa for "newest first". These modes on the right side are actually tied to the modes on the left, in v2 it's gonna look like this:

Ok thanks a lot, it's clear!


UnusedIO - MatchError: throw (e)

This is an interesting one :)
I (accidentally) ran UnusedIO against a code base that does not use IO at all.
I cannot share the code but it would appear that throw e can cause issues.
[error] Caused by: scala.MatchError: throw (e) (of class scala.meta.Term$Throw$TermThrowImpl)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$self$lzycompute$1$1.$anonfun$applyOrElse$2(UnusedIO.scala:68)
[error] 	at scala.collection.immutable.List.map(List.scala:250)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$self$lzycompute$1$1.applyOrElse(UnusedIO.scala:68)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$self$lzycompute$1$1.applyOrElse(UnusedIO.scala:49)
[error] 	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:338)
[error] 	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:334)
[error] 	at org.typelevel.fix.UnusedIO.org$typelevel$fix$UnusedIO$$checkInner$1(UnusedIO.scala:76)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$self$lzycompute$1$1.$anonfun$applyOrElse$1(UnusedIO.scala:65)
[error] 	at scala.collection.immutable.List.map(List.scala:250)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$self$lzycompute$1$1.applyOrElse(UnusedIO.scala:63)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$self$lzycompute$1$1.applyOrElse(UnusedIO.scala:49)
[error] 	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:338)
[error] 	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:334)
[error] 	at org.typelevel.fix.UnusedIO.org$typelevel$fix$UnusedIO$$checkInner$1(UnusedIO.scala:76)
[error] 	at org.typelevel.fix.UnusedIO.checkDiscardedStat(UnusedIO.scala:79)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$checkTree$1.$anonfun$applyOrElse$3(UnusedIO.scala:90)
[error] 	at scala.collection.immutable.List.map(List.scala:250)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$checkTree$1.applyOrElse(UnusedIO.scala:90)
[error] 	at org.typelevel.fix.UnusedIO$$anonfun$checkTree$1.applyOrElse(UnusedIO.scala:84)
[error] 	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:338)
[error] 	at scala.PartialFunction$Lifted.apply(PartialFunction.scala:334)
[error] 	at scala.meta.transversers.Api$XtensionCollectionLikeUI$traverser$3$.apply(Api.scala:32)

I've hit the same error but for Term.Assign.
ATM the implementation is using map with a partial function to test if the recursive call to checkInner if able to match the next node.
stats.map {
    case stat if self.isDefinedAt(stat) =>
        checkInner(stat)
}.asPatch

If checkInner doesn't have a case for that node type it will fail. Simple fix would be to change map to collect, but I'm not sure that what we want as it would stop processing that branch.
Another option is to add the missing cases into checkInner

I'm trying to get my head back into this one to understand what we need to do...
So the way this lint is currently structured, we look for opportunities for IOs to be discarded in checkTree. That means we look for things like imperative control structures (for, while, try), class bodies, constructors and most importantly blocks.
A block can contain multiple statements and it's only the final statement that is safe from being discarded.
Note that we don't look for val or def or other Decls and Defns because they can be referred to in the final expression. We don't currently attempt to do any control flow analysis or anything like that to determine whether any IOs in vals or defs are discarded.
I believe that the ZIO equivalent of this plugin does do that, but it seems overkill to me because those can be picked up by other lints (-Wunused).
Once we have identified an opportunity for a value to be discarded, we try to figure out what the type of the expression being discarded is in checkDiscardedStat by applying checkSignature to the consituents of the expression that is discarded.
We know that we don't care about the other subtypes of Stat (Decl, Defn) so we can focus on Term. Unfortunately this is still a huge data type as the Scala AST is very complicated.
So it looks like at the very least we should add cases to check the body and catch expressions of Try and TryWithHandler, the ascribed expression of Ascribe, the annottee of Annotate and the args of Tuple, the op of ApplyUnary, and perhaps the fun of ApplyUsing which I guess is a Scala 3.x thing?
It also makes sense to me to use collect as @custommonkey suggests to ignore the cases that we don't understand or don't care about (such as Assign and Throw), on the basis that it's better to miss a warning than to break someone's build spuriously.

Took a crack at this on @custommonkey's PR #42

Should be fixed in 0.1.5 @NeQuissimus, let us know how it goes! 😁


Cleaned up WiFi views

Added signal noise ratio for issue #653 and localized data

That's a quick response! 😊


create resource package, extract BatchCreateGenericResources

I want to try to eventually move all resource related code into this package.

Codecov Report

Merging #75 (8f6b04b) into main (50daa7f) will decrease coverage by 0.17%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #75      +/-   ##
==========================================
- Coverage   86.45%   86.28%   -0.18%
==========================================
  Files           7        8       +1
  Lines         864      853      -11
==========================================
- Hits          747      736      -11
  Misses         84       84
  Partials       33       33

Impacted Files
Coverage Δ

pkg/resource/manager.go
100.00% <100.00%> (ø)

pkg/resource/uri.go
100.00% <100.00%> (ø)

server/server.go
86.13% <100.00%> (-1.25%)
:arrow_down:

Continue to review full report at Codecov.

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


Force Sync doesn't start app

When you reply y to Force sync, the app never start and nodemon just hangs

It works on my computer over here - I'd be interested to see your database after that...

Seems to be Mac specific as well - some sort of race condition.


AccountPolicy/SecurityOption: Extend PowerShell v7 Compatibility for AccountPolicy/SecurityOption SecurityPolicyDsc DSC Resources

Pull Request (PR) description
AccountPolicy/SecurityOption: Extend PowerShell v7 Compatibility for AccountPolicy/SecurityOption SecurityPolicyDsc DSC Resources

This Pull Request (PR) fixes the following issues #162

Task list

[x] Added an entry to the change log under the Unreleased section of the file CHANGELOG.md.
Entry should say what was changed and how that affects users (if applicable), and
reference the issue being resolved (if applicable).
[ ] Resource documentation added/updated in README.md.
[ ] Resource parameter descriptions added/updated in README.md, schema.mof and comment-based
help.
[ ] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[x] Unit tests added/updated. See DSC Community Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Community Testing Guidelines.
[x] New/changed code adheres to DSC Community Style Guidelines.

This change is

Please test 3.0.0-preview0006 and open an issue if any.
When we're confident that works, we can do a full release.


Multiple issues with Angular 6.0.3

Package.json relevant portion:
 "@angular/animations": "^6.0.3",     "@angular/cdk": "^6.1.0",     "@angular/common": "^6.0.3",     "@angular/compiler": "^6.0.3",     "@angular/core": "^6.0.3",     "@angular/flex-layout": "^5.0.0-beta.14",     "@angular/forms": "^6.0.3",     "@angular/http": "^6.0.3",     "@angular/material": "^6.1.0",     "@angular/platform-browser": "^6.0.3",     "@angular/platform-browser-dynamic": "^6.0.3",     "@angular/platform-server": "^6.0.3",     "@angular/router": "^6.0.3",     "@ng-bootstrap/ng-bootstrap": "^2.0.0",     "@nguniversal/module-map-ngfactory-loader": "^6.0.0",     "angularfire2": "^5.0.0-rc.10",     "bufferutil": "^3.0.5",     "core-js": "^2.5.7",     "firebase": "^4.10.1",     "growl": "^1.10.3",     "jasmine": "^3.1.0",     "ng4-twitter-timeline": "^1.0.8",     "rxjs": "^6.2.0",     "rxjs-compat": "^6.2.0",     "utf-8-validate": "^4.0.2",     "ws": "^5.2.0",     "xmlhttprequest": "^1.8.0",     "zone.js": "^0.8.26"
Error1 from Terminal:
ERROR in node_modules/angularfire2/firebase.app.module.d.ts(22,5): error TS2416: Property 'messaging' in type 'FirebaseApp' is not assignable to the same property in base type 'App'.
Type '() => Messaging' is not assignable to type 'MessagingFactory'.
Property 'isSupported' is missing in type '() => Messaging'.
src/app/core/services/auth.service.ts(79,22): error TS2350: Only a void function can be called with the 'new' keyword.
Error 2 from Visual Studio:
[ts] Property 'auth' does not exist on type 'typeof "/node_modules/firebase/app/index"'.
Please don't try and tell me to go backwards either - with a nebulous use 4.X.
This is a standard auth file.  It was working just fine on Angular Version 5.
i.e.:
` twitterLogin() {
const provider = new firebase.auth.TwitterAuthProvider();
return this.oAuthLogin(provider);
}
resetPassword(email: string) {
const fbAuth = firebase.auth();
return fbAuth.sendPasswordResetEmail(email)
  .then(() => this.notify.update('Password update email sent', 'info'))
  .catch((error) => this.handleError(error));

}
`

We (the maintainers) are not going to tell you to downgrade. The problem here is your Firebase JS SDK version, RC.10 requires ^5.0.3. Upgrade and you'll be all set.
With 5, you can import { auth } from 'firebase/auth' then use auth rather than firebase.auth.


Versioning does not appear to work correctly

When editing an existing block on a published page, upon save the (Stage=live) page instantly updates to the new content, which is technically draft content.
Reproduction:
composer create-project silverstripe/installer test 4.0.x-dev
composer require dnadesign/silverstripe-elemental 2.x-dev
Add the appropriate config directive (note docs name ElementPageExtension when this should be ElementalPageExtension [note the al])
Update Simple theme's template to reference $ElementalArea
Create a new ContentElement block for the Home page.
Save some content.
Publish the page.
Alter the content block's content.
Save the content block.
Do not publish the page.
Log out of the CMS.
Live site displays the updated (draft) content of the ContentElement.

Reproduced, however the draft content is not shown when viewing incognito.
I did notice however that after publishing a content block and the page it's on then updating the content and saving (not publishing) doesn't cause the page to be in a modified state.

Here we are. In the invisible container.
https://github.com/dnadesign/silverstripe-elemental/blob/master/src/Models/ElementalArea.php#L203

So at a quick look through the history of this module, it looks like the getOwnerPage method is a sort of catch all getter across versioned stages for different types of objects. The OwnerClassName has been added during the refactoring for SS4, and my suspicion is that it could be replaced with a polymorphic has_one relationship instead, which may also remove the need for ElementalAreasExtension::getElementalRelations, leaving us to use the SS ORM's default relationship methods instead.
Anyway, the line highlighted above exists from SS3 through to now, but isn't actually being fired. The page returned is from the line above:
                if ($page && $page->exists()) {
                    return $page->first();
                }

At this point in the logic the Versioned stage is "Stage", where it should probably be "Live" since I'm not logged into the CMS.

Bit more digging: Versioned::choose_site_stage in VersionedHTTPMiddleware sets the stage to Stage rather than Live because the readingMode persists in the session after logging out:
    public static function choose_site_stage(HTTPRequest $request)
    {
        // Check any pre-existing session mode
        $preexistingMode = $request->getSession()->get('readingMode') ?: static::DEFAULT_MODE;
        $mode = $preexistingMode;

This behaviour is semi-replicable in core, only I get forced to log in rather than directly shown the draft content

It seems to me that a session (or at least anything to do with being logged in) should be nuked on log-out. It's a little concerning that this isn't the case, if I'm honest.

Raised over at https://github.com/silverstripe/silverstripe-versioned/issues/62

Fixed by https://github.com/silverstripe/silverstripe-versioned/pull/63, will close since it'll be resolved in core


message as an object

would be helpful to define errors with message objects. (that can carry more static info regarding the error like  severity)
I would like a make a PR changing the current type of message to union of string and object
please let me know your opinion

Hey @gandhiamarnadh, could give you us more details with a code sample for example?

this is my usecase, the ui can handle errors gracefully based on severity
export const WrongCredentialsError = createError('WrongCredentialsError', {   message: {   content: 'The provided credentials are invalid.',   severity: 9,   supportSeverity: 0   }, });

The consensus in the GraphQL and Apollo community is to try and stick to the spec as much as possible.
What you are proposing is too much of change regarding what the spec says about message:

Every error must contain an entry with the key message with a string description of the error intended for the developer as a guide to understand and correct the error.

Take a look at it here http://facebook.github.io/graphql/draft/#sec-Errors.
You can add static informations to your errors using createError:
export const WrongCredentialsError = createError('FooError', {
  message: 'A foo error has occurred',
  data: {
     severity: 9,
     supportSeverity: 0
  }
});

Note: The data field will be renamed extensions in V2

thanks @theGlenn i didn't know that data field is extensible


Fix Weekly-Visits X Axis on Chart

Hide X-Axis

Labels are hidden if there is not enough room within the chart. Closing as this fixes why we wanted to hide the X-axis.


Updated docker-compose to latest release

Please push v0.3.4 release to docker hub before accepting this.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Coverage increased (+0.03%) to 66.43% when pulling 47439a46df9329bddcb08b0c8d8d5702672d80cf on h7kanna:master into e3afa220dd67f59a6ffacc40fb5ea79547cce3ac on uber:master.


Windows Server VPN client

Is it possible to install a VPN client, with support for Azure AD authentication, on Windows Server 2016?
The Azure VPN Client (Preview) seems to be only for Windows 10. Is support for Windows Server VPN clients planned?

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

ID: e9ef898a-0b72-e018-8a3d-6f14f62e1119
Version Independent ID: b62b5b8f-bc88-0868-a2f6-1020a5097460
Content: VPN Gateway: VPN client for OpenVPN protocol P2S connections: Azure AD authentication
Content Source: articles/vpn-gateway/openvpn-azure-ad-client.md
Service: vpn-gateway
GitHub Login: @anzaman
Microsoft Alias: alzam

@Marqis Thanks for the feedback! We are currently investigating and will update you shortly.


OAuthClientHttpRequestFactory doesn't get its additionalOAuthParameters from the ProtectedResourceDetails

While trying to set an empty oauth_token on a BaseProtectedResourceDetails object via         resource.setAdditionalParameters(singletonMap("oauth_token", "")), I noticed OAuthClientHttpRequestFactory simply doesn't copy the resource's additionalParameters map into its additionalOAuthParameters collection.
I created PR #1280 which fixes this issue.

Could you not use OAuthClientHttpRequestFactory.setAdditionalOAuthParameters?

@jgrandja I could, and I did at first. But,
@Bean
public ProtectedResourceDetails fooResource() {
	BaseProtectedResourceDetails resource = new BaseProtectedResourceDetails();
	resource.setConsumerKey("myKey");
	resource.setSignatureMethod("RSA-SHA1");
	resource.setAdditionalParameters(Collections.singletonMap("oauth_token", ""));
	resource.setSharedSecret(new RSAKeySecret("secret", null));
	return resource;
}

@Bean
public RestTemplate foo(ProtectedResourceDetails fooResource, ClientHttpRequestFactory httpFactory) {
	OAuthClientHttpRequestFactory oAuthHttpFactory = new OAuthClientHttpRequestFactory(httpFactory, fooResource, new CoreOAuthConsumerSupport());
	oAuthHttpFactory.setAdditionalOAuthParameters(fooResource.getAdditionalParameters());
	OAuthRestTemplate template = new OAuthRestTemplate(oAuthHttpFactory, fooResource);
	template.setInterceptors(Arrays.asList(new MyHeaderInterceptor());
	return template;
}

ProtectedResourceDetails has to be passed to both OAuthRestTemplate and OAuthClientHttpRequestFactory and I need to call a set method on the factory and pass the additional parameters I just put into the protected resource it's wrapping. Moreover, OAuthRestTemplate creates an instance of OAuthClientHttpRequestFactory when its setRequestFactory method is invoked, but I can't get my hands on that object because the getRequestFactory() wraps it inside an InterceptingClientHttpRequestFactory because of the header interceptor. This makes it very irritatingly complicated way of passing that information as opposed to this snippet:
@Bean
public RestTemplate foo(ProtectedResourceDetails fooResource, ClientHttpRequestFactory httpFactory) {
	return new RestTemplateBuilder()
		.interceptors(new MyHeaderInterceptor())
		.requestFactory(httpFactory)
		.configure(new OAuthRestTemplate(fooResource));
}

It's a simple one-line fix that gets rid of a lot of boilerplate code.

@kutsal I see and agree the extra code/configuration complicates things. I'll get this merged for you but please add a test first. Thanks.

@jgrandja added test as requested.


fixed invalid document reference error

Using the setDoc() function throws "Invalid document reference" error as document ID is not specified.
Edit: Just noticed PR #280 that resolves this

Looks like we forgot that PR for a while. Thanks @DharmarajX24 !


Error on v0.4 release

I can't build the v0.4 release:
error: the lock file /build/pw-volume/src/pw-volume-0.4.0/Cargo.lock needs to be updated but --locked was passed to prevent this
If you want to try to generate the lock file without accessing the network, remove the --locked flag and use --offline instead.

Including f4eff8c13cbe62744064d636eb4045a347695e15 works, this is good enough for now. I'll remove the hack on the next release.


Start versioning this module

This would let the snake-case stuff stay in a pre-1.0 version (or something else though 1.0 would follow semantic versioning)

Sounds reasonable, I'll put a version in if I push any changes today.

I'm going to arbtrarily 0.1.0 in now and it can go in straight away, and I'll version the deprecations coming out at say 0.3.0,  not keen on 1.0.0 right now as it is probably less than a fifth done if a good end-state is supporting most of the widget types :)


Ads shows up ONLY in debug mode, and Only TEST Ads - Real Ads do not show on Release Mode.

This Library only shows Test Ads, When I set the App to Release mode no real ads show up, both on Android and IOS.
When I use a different library, the ads do show on release mode.  I like the simplicity of the of this library that's why I want to use it.

Are you passing through your ad unit ids when creating the ads?
If you do not, by default the test ad unit ids will be used.
And are you testing on a device which is setup as a test device in admob - this would also cause test ads to be displayed.