Support for Postgresql LISTEN command?

Hi Postgresql has the non standard LISTEN command which allows to essentially have like a callback or event listener style interface to the database. https://www.postgresql.org/docs/current/sql-listen.html
Is there any chance that this might be supported in the future? Or is it already possible in some way I am not aware of? :)

It should be possible to use it directly, shouldn't it? I.e. wouldn't just issuing the corresponding SQL work?
But SOCI doesn't provide any special support for it as I don't know if any other RDBMS provide anything similar. If they do, we could try to find some useful API that could be implemented for all of them, but as long as it's just available in Postgres, it doesn't seem really useful to do anything special for it in SOCI, what would be the added value of doing this?

It should be possible to use it directly, shouldn't it? I.e. wouldn't just issuing the corresponding SQL work?

I am not sure tbh as this is async. LISTEN registers a callback channel from how I understand it :)
From the docs:

With the libpq library, the application issues LISTEN as an ordinary SQL command, and then must periodically call the function PQnotifies to find out whether any notification events have been received. Other interfaces such as libpgtcl provide higher-level methods for handling notify events; indeed, with libpgtcl the application programmer should not even issue LISTEN or UNLISTEN directly.

So at least they have some sort of interface for this. So I am not sure if SOCI can do that in any way. The registration of it using the SQL command is only one half of this command from what I understand.
So unless I am mistaken, at least a polling or so is needed in the pg driver to use it.
I am not sure if any of the other supported Database backends provide anything like this.
Sqlite most certainly does not.
Mysql doesn't seem to have this either. At least, a quick google didn't yield results.
For oracle I am not sure as I only am able to find java results and my java isnt good enough to differentiate it from a java or a db listener thing.
Firebird sql seems to have something similar https://firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf
DB2 only has update events it seems https://www.ibm.com/docs/en/db2/11.5?topic=events-rowupdated no generic/user defined ones
ODBC seems to not support this or I wasnt able to find it.

I'm not sure whether or not it makes sense to add some wrapper for this into SOCI, but in case anyone needs it, is it possible to do it "alongside" SOCI by leveraging the libpq backend.

Call LISTEN on each channel, and keep track of what you want to receive each channel
Get a pointer to the soci::postgresql_session_backend, for example:

// dynamic_cast fails with "undefined reference to `typeinfo for soci::postgresql_session_backend'"
// I'm not clear on why, but the documentation also uses static_cast.
// Seems to be something about visibility and shared libraries.
// Not sure if it's the same thing, but in https://github.com/SOCI/soci/pull/975
// they changed away from dynamic_cast to fix some other issue.
auto *backend = static_cast<  // NOLINT(cppcoreguidelines-pro-type-static-cast-downcast)
		soci::postgresql_session_backend *>(
		sql_->get_backend());

Optionally get the file descriptor by calling PQsocket(backend->conn_); you can use this to listen asynchronously for changes however you like (e.g. select, poll, QSocketNotifier)
When the socket is notified for read, or periodically, check for updates; something like this, but the exact details depend on your implementation:

/*
 * "A better way to check for NOTIFY messages when you have no useful
 *  commands to execute is to call PQconsumeInput , then check PQnotifies.
 *  You can use select() to wait for data to arrive from the server,
 *  thereby using no CPU power unless there is something to do.
 *  (See PQsocket to obtain the file descriptor number to use with
 *  select().)"
 */
PQconsumeInput(impl_->postgresql_session_backend_->conn_);
/*
 * "The function PQnotifies returns the next notification from a list of
 *  unhandled notification messages received from the server. It returns a
 *  null pointer if there are no pending notifications. Once a notification
 *  is returned from PQnotifies, it is considered handled and will be
 *  removed from the list of notifications."
 */
// We have to call PQfreemem after PQnotifies returns non-null;
// use unique_ptr with deleter to try to be exception-safe.
std::unique_ptr<PGnotify, decltype(&PQfreemem)> notifyPointer(nullptr, PQfreemem);
while (auto *notify = PQnotifies(impl_->postgresql_session_backend_->conn_)) {
	notifyPointer.reset(notify);
	if (auto it = impl_->receivers.find(notify->relname); it != impl_->receivers.end()) {
		(*(it->second))(notify->extra, notify->be_pid);
	}
}

Make sure you re-send the LISTEN SQL if SOCI reconnects

References:

https://www.postgresql.org/docs/current/libpq-notify.html
https://www.postgresql.org/docs/current/libpq-example.html#LIBPQ-EXAMPLE-2


Fix GeometryInstance extra_cull_margin step

Fixes #22369.

Now that Godot 3.1 has been released, we don't plan to cherry-pick new features and enhancements to the 3.0 branch, unless there is very strong support in favor of it. Removing cherrypick label for 3.0.

Cherry-picked for 3.0.7.


[Bug]: Question template seems to be broken

What happened?
I wanted to ask a question about an issue of mine, but the question template does not show up in the selection list here -> https://github.com/babelfish-for-postgresql/babelfish_extensions/issues/new/choose
There seems to be an issue with the file question.yaml, but I don't know enough about Github templates to propose a fix tbh.
https://github.com/babelfish-for-postgresql/babelfish_extensions/blob/BABEL_2_X_DEV/.github/ISSUE_TEMPLATE/question.yaml
Version
BABEL_1_X_DEV (Default)
Extension
No response
Which flavor of Linux are you using when you see the bug?
No response
Relevant log output
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct.

Looks from https://github.com/babelfish-for-postgresql/babelfish_extensions/commit/3648f605d08c713a217331a2e458d0f87e6bc6db like these lines from question.yaml got duplicated in enhancement.yaml, causing a duplicate error on the name field.
[.github/ISSUE_TEMPLATE/enhancement.yaml](https://github.com/babelfish-for-postgresql/babelfish_extensions/commit/3648f605d08c713a217331a2e458d0f87e6bc6db#diff-ec1b2c1f0880842c377c61dbeda87ce9f39112ba90338af329c64c6463584dad)
@@ -1,62 +1,41 @@
name: Babelfish for PostgreSQL Extensions Feature Request Form
description: Propose an enhancement for Babelfish for PostgreSQL Extensions
title: "[Enhancement]: "
labels: ["enhancement", "untriaged"]
assignees:
  - amazon-auto
name: Babelfish for PostgreSQL Question
description: Ask a question of the Babelfish maintainers
title: "[Question]: "
labels: ["question", "untriaged"]


Add additional object types to the Schema Browser

Dupe of #139

Reopening for further consideration since this may not be a duplicate of #139, which only pertains to LFs.
For parity with ACS, the following could be added to the Schema Browser:

Column Masks
Constraints
Journals
Journal Receivers
Row Permissions
Sequences
SQL Packages


processing: 3.3.7 -> 3.4

Motivation for this change
update and fix build because hash of http://download.processing.org/reference.zip has been changed
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg eval

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: processing
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: processing
Partial log (click to expand)
Cannot nix-instantiate `processing' because:
GC Warning: Failed to expand heap by<PHONE_NUMBER>0 bytes
Can't start up: not enough memory

@GrahamcOfBorg build processing

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: processing
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.

No attempt on x86_64-linux (full log)
The following builds were skipped because they don't evaluate on x86_64-linux: processing
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnfree = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnfree = true; }
to ~/.config/nixpkgs/config.nix.

unfree package, build tested locally.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: processing
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.


Add public training landing page (Nov London, with George)

See if you can do this yourself, or book some pairing time with @aslakhellesoy for this. Use the same process as you do for a blog post PR, but create a new 'event' page in https://github.com/cucumber/website/tree/master/apps/dynamic/views/events - you can plagiarise the frontmatter from the cukeup-australia-2015.slim page, but use an .md extension instead and write the content like a blog post.


(Fix) - App crashes on Safe Load

What it solves
Fixes #2419
How this PR fixes it
By removing an invalid entry in the useEffect hook dependency array
How to test it
Follow steps in the associated issue.

I've tested this branch, all good, it's not crashing on safe load anymore ✅


Add missing Homebrew dependencies

Description
This PR fixes some missing Homebrew dependencies
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@dave-gray101 Whoops! My mistake. There was a second brew install command on that page that should have had those packages added. Updated the PR.


Simplify all objects on creation

Instead of just simplifying if constant.
See also #986

Further simplifications for matrix multiplications:

associative: A @ (B @ y) = (A @ B) @ y), often A @ B is constant but y is not (e.g. discretized gradient or divergence) and so the whole expression is simplified
distributive A @ (B + C) = (A @ B + A @ C), in many cases A @ B is constant and then A @ C can be further simplified (e.g. A @ (b + C @ y) + e = (A @ b + e) + (A @ C) @ y, A @ b + e is constant and A @ C is constant


Change "copy" to a heroicon

Currently, it displays "copy." It would be better to use an icon. For example use heroicon-o-document-duplicate or heroicon-o-clipboard made by heroicon.

Additionally, it would be great if this could also be configurable.


Auto-select entire input field on focus

Fixes #736.
This ensures selection of entire text field on focus. This makes it work for symbol-postfixed inputs when tabbing to them.
But more than that, it actually also selects the entire text field when mouse clicking into a text field. I think this is actually good behaviour.
If desired, we can loosen this effect to only occur on keyboard focus changes and not mouse focus changes.
Demo – first focusing by mouse, then by pressing (shift +) tab:

@barklund From testing:
It currently doesn't seem to work for opacity fields which go together with <Color>:

It currently doesn't seem to work for opacity fields which go together with <Color>:

Ah yes, that's a different component that Numeric. Will re-implement here.

It currently doesn't seem to work for opacity fields which go together with <Color>:

Ah yes, that's a different component that Numeric. Will re-implement here.

Done. @miina, PTAL.

@googlebot I consent

Added to alpha branch


Fixed tests

Replaced hardcoded IP of etcd and skydns with localhost, which is a more reasonable default.
Made test more configurable so it doesn't require skydns to be configured a certain way.

Minor comments inline, other than that :+1:

Changed to isNullOrEmpty in all places


RHOAIENG-3764: Updating page title

Description
https://issues.redhat.com/browse/RHOAIENG-3764
The Model Serving tab in the left menu of the dashboard now displays a page titled Deployed Models. Previously, this was the Model Serving page. This PR includes updates that reflect this change.
How Has This Been Tested?
local build
Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

LGTM


label tracking with webhook

when maintainer forget to add label before merging, and then adds, it's not being tracked.
add label of type string in pullRequest model
modify webhook/github.js to handle label updates, also save labels while merging it.
case 1: when merged - save label and update points
case 2: merged -> label added -> save label and update points
in case 2, there can be updation of labels also, so handle the event accordingly.

Can you assign this issue to me? would love to contribute.

go ahead!


create_table does not append "/spectrum" at the end of the s3 path used for the location of the external table

Spectrify version:2.0.0
Python version:2.7.11 ; 3.5.7 ; 3.6.7
Operating System: OS X Mojave 10.14.6

Description
When creating the external table with the create_table cli command, /spectrum is not appended at the end of the s3 path used for the location of the external table. Therefore, when we then try to query the table, it fails because spectrum ends up looking in the /csv folder instead of the /spectrum one and find files with an unexpected format: csv instead of parquet.
I have noticed that the transform command does not have this issue : it correctly append /spectrum to the s3 path as it should.
I investigated a bit and this very likely comes from the fact that, for create_table, the s3_config is instantiated directly from SimpleS3Config() here whereas for transform, the s3_config is created through SimpleS3Config.from_base_path here which takes care of appending /spectrum to the spectrum_dir field.

Let me know if all that makes sense and if I'm on the right track. I can work on it when I'll get your green light.
Cheers!

Hi @acharp!  Sorry for the delay here.  You are indeed on the right track -- thanks for the report, if you're still game to work on this by all means go ahead!

Hello @c-nichols, no worries about the delay. I know how hectic it can get :)
And yes I should have some time to work on this in the coming days, stay tuned for the PR.

It was such a short one I ended up doing it now : https://github.com/hellonarrativ/spectrify/pull/59

This issue should be resolved with the release of v3.0.0 Big thanks to @acharp!


Intel UHD: heavily distorted and flickering textures on world surfaces

I have that kind of flickering on various maps, at extremely precise point.
I know it can be the map itself, but it could be just another case of this too, which might help finding out the problem.
ATCSZ alpha:

I'll try to think about updating this when I find new spots, I have feeling this happens more often than in the past. Maybe I'm wrong.

I can reproduce this on Intel UHD 620 graphics on linux on a number of maps. I believe one of the ATCS variants had this bug, but it wasn't atcs zone alpha.

I am seeing this with a 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07) (CPU is an i5-8350U)

✅: no bug
❌: bug
❔: not tested

Chip
Windows
Linux
Tester
Details

UHD 630 (CFL GT2),CoffeeLake S
❔
❌
bmorel
Linux, driver 20.3.5

UHD 620 rev 07,i5-8350U, 8th gen,Kaby Lake R
❔
❌
cu-kai
Linux

I reproduced the bug on map rush-station on my UHD 630 on Windows.

On Windows 11 23H2 (build 22631.2428), Intel UHD 620, driver <IP_ADDRESS>2 I can reproduce the rush-station bug easily and see the same sort of distortion.

Do you also reproduce it with stock thunder map on -964 -250 70 15 23 position like in:

https://github.com/Unvanquished/Unvanquished/issues/2500#issuecomment-1591861058

If yes it would be easier to give instructions to driver developers to reproduce the issues.
On my end I do this to open the map and set the viewpos in one go:
daemon +devmap thunder +delay 200f setviewpos -964 -250 70 15 23

I had to look a little to the left of those coordinates, but I can reproduce this one too.

Thanks.
Can you give exact coordinates that reproduce the issue on your end, with a screenshot for those exact coordinates?
I'll use them in a report as references.

Here is the screenshot, viewpos is echoed in the top left.
-964 -250 70 35 22

Thanks a lot!

I reproduced it with an HD 520, which looks like to be from the UHD generation but without a U in the name.

But on Mesa side:

https://gitlab.freedesktop.org/mesa/mesa/-/issues/10224

It is weird, as, I insist, the number of those increased greatly in the current release. I noticed this (long) before updating debian, and I don't remember kernel update (I need to do some things manually in my setup after those so I tend to notice them).
So, maybe there is a bug in drivers, but I'd be surprised if it's only driver related.


Gem blocking rake assets:precompile

I'm having a very similar issue to https://github.com/mirego/microscope/issues/38  but it occurs when I run
RAILS_ENV=production rake assets:precompile in my dockerfile.
I belive the fix in #38 doesn't work because it throws a ActiveRecord::ConnectionNotEstablished error, not a ActiveRecord::NoDatabaseError.
Making that rescue a bit more expansive would be delightful. Thanks.

Hi Jeff,
Good catch. I’ll look into that!

Making that rescue a bit more expansive would be delightful. Thanks.

Looks like ActiveRecord::ActiveRecordError is what we’re looking for.
I’m on it.

@jdwyah microscope-1.1.1 has been released! 🎉

Just want to let you know that this does indeed fix it for me. Thanks!


Update conferences page UI

Change card structure and improve readability. Refer to ai deadlines for help with UI.

removed conferences


resolving #42

removes the _data subfolder per discussion under #22

Did you test this version of the theme with the jekyll-starter-legumeinfo site? I get the following error when I try building the site with Docker Compose:
Liquid Exception: Liquid syntax error (line 39): Unknown tag 'file_exists' in taxa/arachis/index.html

No, I tested it against my dev site. I do not have file_exists in that file or anywhere under _data. I think that is probably very old _data on the starter site. I can refresh it with the current _data.

No, I tested it against my dev site. I do not have file_exists in that file or anywhere under _data. I think that is probably very old _data on the starter site. I can refresh it with the current _data.

Yes, please do! This should require updating the version of the theme submodule as well.

I should note that I haven't pushed the updated _data to starter yet, that's a separate PR (which I haven't actually made)

Yup, I'm getting that same error on the starter site with @adf-ncgr 's new data
  Liquid Exception: Liquid syntax error (line 39): Unknown tag 'file_exists' in taxa/arachis/index.html

which I presume is generated by
_themes/jekyll-theme-legumeinfo/_layouts/taxon.html:{% capture species_photo %}{% file_exists assets/img/species_images/{{ item["abbrev"] }}.jpg %}{% endcapture %}

since that's the only place on the starter site that file_exists is present.
My jekyll-legumeinfo instance runs fine because it includes file_exists in the Gemfile:
Gemfile:  gem 'jekyll_file_exists', :git => 'https://github.com/asperduti/jekyll_file_exists.git'
Gemfile.lock:  remote: https://github.com/asperduti/jekyll_file_exists.git
Gemfile.lock:    jekyll_file_exists (0.1.0)
Gemfile.lock:  jekyll_file_exists!

This is NOT present in the starter site's Gemfile.

I don't recall introducing this, although it is ringing a very dim bell; but it sounds like adding it to the starter site's Gemfile may be a fine way to go unless you want me to try to dust off my memory banks further (which I can do later)

I don't recall introducing this, although it is ringing a very dim bell; but it sounds like adding it to the starter site's Gemfile may be a fine way to go unless you want me to try to dust off my memory banks further (which I can do later)

It sounds like the missing Gem is the issue, which makes sense since you're update was to get the theme in line with what legumeinfo is doing.

Edit: To clarify, it sounds like the Gem should be installed in the theme.

Ahhh, right. Let me do that in a new theme branch and sally forward.

I bounced it to you @alancleary in #44 as it doesn't seem to get picked up in the site when it's in the theme the straightforward way I did it. I wonder if the site needs to load gems specified under the theme with some sort of include? Anyway, you'll figure it out.


Inconsistent seeding

Hi,
I just wanted to point out that the code produces inconsistent results on multiple runs due to seeding issues. I have found two reasons for that, upon fixing which I am able to get consistent results for a fixed seed value.

The Python random package is used in ReplayMemory. However, the seed for it is not set in main.py
You would need set the seed for the action_space for the environment explicitly using env.action_space.seed(args.seed) as the env.seed(seed) function does not do that. This gives different action samples in the initial exploration phase of the algorithm. I am using Gym version 0.17.2

Hope this helps!

Thank you! :raised_hands:
I wasn't aware of the 2nd point. I'll fix the issue within this week.

I think I have fixed the problem.
Do let me know if there is something wrong here. Fix inconsistent seeding & clean up code

Fix inconsistent seeding & clean up


Question: How to show Time to execute for next Task in TaskScheduler

Hallo, i have a question and hope someone can help me with. I can add new Task in TaskScheduler. Works good. I want to know, if there some possibility to show time to next myTask which are being executed in reverse. Example Tasktime was set to 23:00 and i open my mainform at 16:00 to show remain time to taskrun, which are 7 hours.

myTask = // Some task you've created or opened
var nrt = myTask.NextRunTime;
var durToNextRun = nrt - DateTime.Now;


Use audio input from remote source (via socket for example)

Hello, I would like to know if it is possible to use audio inputs other than the browser? I would need my model to process audio that came from an external device, via socket for example. Was something like this possible?

Not for the moment sorry!

Closing but making a note about your request for the audio upload. Thanks!


InternVL2-Llama3-76B-AWQ evaluation results?

Curious about the performance differences between 76B-AWQ and 76B.

Hi, there will be a slight performance drop in AWQ, but we don't have full test results yet.


Spaceline update does not fit to tapbar.

Problems summary
After i update my fork with the latest version i saw that tabline is showing the empty tab with a number of 1 There should not be any tab before opening a file.
Environment Information

OS: MacOS 10.13.2

neovim :version output:
:version
NVIM v0.4.0-1021-gdd21cd2a4
Build type: Release
LuaJIT 2.0.5

:checkhealth or :CheckHealth result(neovim only):
Everything is ok.

How to reproduce the problem from neovim startup (Required!)
Just try to open your thinkvim clone you will see the empty tab with a number of 1 before you opening a file.
Screenshot (if possible)

you should copy the buftabline.vim to your plugin folder

It is already there. Also is there a way to disable the spaceline.vim? I am not using onedark so it is not compatible with it yet. If there could be a way to deactivate it over local_settings, that would be awesome.

the buftabline color is same as your background color..

no update closed


Update adding-model.md

Remove extra wording "these services" in MVC tutorial.

Thanks @chpong ... I updated the other spots. These markdown files often have multiple copies of the content, one for each of our covered versions. @Rick-Anderson will be along in a bit to signoff and merge this. Thanks again, @chpong! 🚀

Thanks @chpong ... I updated the other spots. These markdown files often have multiple copies of the content, one for each of our covered versions. @Rick-Anderson will be along in a bit to signoff and merge this. Thanks again, @chpong! 🚀

Thanks @guardrex. I updated the Razor Pages version earlier in #23346. Were there other spots that I can check in the future?


Detect Jupyter IDE and set editor to Jupyter

I'm am a data scientist and 80% of my coding time is spent in Jupyter IDE which runs in a browser. It is also the only websites I have whitelisted. Is there any way to prevent WakaTime from considering this browsing?

@arose13 have you considered coding using VSCODE instead of Chrome? In addition we've been planning to create a plugin for Jupyter IDE.

@gandarez I think the current WakaTime Chrome extension is doing a great job, assuming one is launching the Jupyter (lab) server from a local git repository. Here is what I was about to post in a separate issue.

To my surprise, the WakaTime Chrome extension should track down the git-repo from which the Jupyter server is launched! How nice! I did not set special Custom rules for tracking a new GitHub repo, yet, the 5 minutes of time spent in a Jupyter Lab notebook was counted towards this new project. I think this is reproducible with a bare-minimal setup. Here is mine:

To better account for the browser time, I use a dedicated Chrome "profile" that only has two extensions installed, one is Ghost text and the other is WakaTime. Per my logged time, the Jupyter Lab session is actually hosted on another local machine, and I used port-forwarding to access it. I do have WakaTime CLI installed on the host machine.

I assume the WakaTime Chrome extension fetches something deep in the Jupyter lab page, as it has been granted Read and change all your data on the websites you visit privileges in Chrome. I am pretty sure it was the Chrome extension that was sending the heartbeats, as 0 "browser time" was logged before I installed the Chrome extension.

You can change category to "Coding" by matching category "Browsing" using custom rules.

Part of #47.


Add missing Microsoft.Internal.TestPlatform.ObjectModel

This is part of #301 which could be accepted according to review.
Since I still want to be able build project on my computer, I probably try to find way build project on my computer if needed and find way which will work both on your CI and on my PC.

Thank you!


Clarify licensing terms of "com.sophos.tocjs" plugin

There is a license in the plugin "plugins\com.sophos.tocjs\license.txt" stating something like:
        "If, at the time of use, the Project Management Committee has designated another
        version of this license or another license as being applicable to the
        DITA Open Toolkit, user may select to have its subsequent use of the
        DITA Open Toolkit governed by such other designated license.  "

which our legal is not quite comfortable with. Maybe it can be removed as the entire DITA OT has a license anyway. Or maybe the entire "com.sophos.tocjs" could be removed as a plugin...

Please raise this issue at https://github.com/dita-ot/com.sophos.tocjs

I think that was copied as-is from an old DITA-OT license.txt, which was cleaned up a couple releases ago. Same update should be made here. But yes, technically request should be made in the other repository.

Opened a pull request: https://github.com/dita-ot/com.sophos.tocjs/pull/1

Thanks @robander.


docs(Storybook): :wrench: Change Storybook information structure

resolves #743

Using design system components in docs component Information.
Using our own componets for correct font size. line height etc.
Could not change the code element as it would break the bigger code previews used under "Bruk". Need to find some solution for this. Suggest a separate issue if it becomes a problem.
Changed status on component overview from beta/stabil to altinn/felles to better reflect changes and work we are doing.
Sidebar better reflects major state of components.
Cleaned up and simplified sidebar structure.

Header on Alert looks a bit weird.

@mimarz Header on Alert looks a bit weird. Could the header be set to size xsmall? Also, I think the spacing between header and paragraph is to large, maybe that will be corrected as well when header is set to xsmall?

I'll try a smaller heading size. Yeah, storybook is applying a lot of its own styles ontop of our components :/

Adjusted Information now, have another look @mrosvik :)

Looks great! 🙌 The new component structure is also much more clear.


Raise HTTPException 429 instead of 403

For frequent requests, it raises 403. But for too many requests, 429 status is more better. How to globally limit for all endpoints?

There's a parameter for this in the constructor right?

There's a parameter for this in the constructor right?


chore(scene): detect dynamic scenes missing their root entity

Overview
When a dynamic scene has it's root entity deleted the scene no longer functions because it doesn't have a parent entity to attach other entities to.  The scene composer should detect this and provide an error message alerting the users instead of letting them attempt changes and then giving an error.
Verifying Changes
Create a Dynamic Scene
Manually Delete the Sceen Root Entity
Open the scene in Storybook and observe the error message

Scene Composer
For scene-composer package changes specifically, you can preview the component in the published storybook artifact. To do this, wait for the Publish Storybook action to complete below.

Click on the workflow details
Select the Summary item on the left
Download the zip file

To run the storybook build locally, you need a local static web server:
npm install -g httpserver
cd <Extracted Zip Directory>
httpserver

Then open the website http://localhost:8080 to run the doc site.
Legal
This project is available under the Apache 2.0 License.

I assume we want the "Learn more" button link to link to our docs? How is that set up?

I assume we want the "Learn more" button link to link to our docs? How is that set up?

I checked and that's set in https://github.com/awslabs/iot-app-kit/blob/main/packages/scene-composer/src/components/modals/MessageModal.tsx#L88 without currently an input variable to let it link to different things.  I think that's maybe a worthwhile upgrade, but out of scope for this feature.


Removing extra com

@dcoraboeuf: Thank you for submitting a pull request! Before we can merge it, you'll need to sign the Apollo Contributor License Agreement here: https://contribute.apollographql.com/


Keep definition with term?

So here is our output vs. stable output:
427c427
< Description & $H_{f}$ is the amount of thermal energy required to completely melt a unit mass of a substance.\newline$Q$ is the latent heat energy\newline$m$ is the mass

Description & $H_{f}$ is the FIXME: MISSING TERM - FOR MORE INFORMATION SEE Drasil.SWHS.DataDefs\newline$Q$ is the latent heat energy\newline$m$ is the mass

Do we want to use that definition with the term or get rid of it or I'm not too sure...

We should have the "correct" definition in place, i.e. "amount of thermal energy required to completely melt a unit mass of a substance.".


[feature suggestion] auto-hide

Hi,
Thanks for this great plugin. I very much agree with your "Inspiration" section and keeping this one simple, this is exactly why I choose this plugin over the others 😉
I have just 1 suggestion for a new feature. Feel free to close this if it is against your idea of what this plugin should be. Cannot really open a PR for this as I don't know lua unfortunately.
The new feature would be "auto-hide" functionality that is present in for example barbar.nvim. It would hide the tabline when there is only 1 buffer open, and show it whenever there is more. Seems like the only thing that is missing for me right now.

Thanks for the feedback! It would be a nice feature to save screen space, and since the plugin already supports toggling the tabline, it should be pretty simple. I'll take a look at how barbar implemented it and work on it this weekend.

I had a little time today and put this together. barbar's implementation wasn't going to work, since this plugin doesn't do anything after setting the tabline (and Neovim doesn't run the tabline function when the tabline is hidden), so I used autocommands.
It definitely works when opening / closing individual files, and I think it should work for batch :edit commands from file picker plugins, but let me know.

thanks! works great, haven't noticed any bugs yet :+1:


Fix port-forward

Newer version of the consul cli tool need access to the cluster via the HTTP interface. So this port needs to be forwarded as well.
Without this fix, you get the following error message:
consul members
Error retrieving members: Get http://<IP_ADDRESS>:8500/v1/agent/members?segment=_all: dial tcp <IP_ADDRESS>:8500: getsockopt: connection refused

Fixed on master.


[Feature request] @vuepress/plugin-git supports a custom file list to calculate the contributor list

Feature request
Description
We are using the functionality of importing code block heavily in our project (e.g. @[code](../foo.js)). So we hope @vuepress/plugin-git calculate the contributor list based on not only the currently .md file, but also files from an optional custom file paths list, given by frontmatter
Proposed Solution

@vuepress/plugin-git takes an optional argument gitContributionInclude (or other name you suggest) from frontmatter, which is a list of relative path to files
update the argument here to a list of string, and pass it to the execution of git shortlog (calculating from multiple files is already supported by git)

Please let me know your opinion, we can try to implement and contribute if you think it's acceptable.

Sound reasonable. Users may want to include/exclude some files such as homepage or something.
Besides contributors, this should also work with createdTime and updatedTime. We could consider adding a universal option or individual options for them.
Contributions welcome!

Oops, I realize that I misunderstood your feature request.... I just thought you want an extra option to include / exlucde some files via plugin options. Sorry for not reading the description carefully.
What you want exactly is to display contributors of multiple files in a single page.
I could get your point, but I think it might not be a common usage. In fact, you can try to calculate the contributor list yourself in the extendsPageData hook.

@meteorlxy 😅Sorry if I didn't express myself clearly.

extra option to include / exlucde some files via plugin options.

We can already control it by the per page frontmatter options. A global option to the plugin can be more or less overlapping with the frontmatter options of default theme (although plugin is independent of default theme)

it might not be a common usage

There are some other scenarios:

One provided an image to the project and the image is imported to the md file, but the contributor of the image is not credited properly.
One contributed a Vue component which is used in a md file, but the owner of the Vue component isn't credited properly.

you can try to calculate the contributor list yourself in the extendsPageData hook.

That's exactly what the git plugin is doing. If we do it by our own, we are almost coping everything of this plugin and making some minor change to the calculation logic.
Could you please reconsider the request based on the scenarios mentioned above, thanks.

The both scenarios you mentioned should work under the basic logic.

If someone is adding some images to a doc, he would change the markdown files to add it in the same pr (or commit), so should the component

Only the below won't:

someone is changing a existing image
someone only commited images and components and later the owner added it

Besides if the component is used in multiple places, or the contributor is actually providing dozens of photos, I think declaring it in homepage footer or a copyright page manually should be better.

@Mister-Hope Thank you for replying.
yes of course in all the scenarios (image, Vue component, code block), the contributor of the external files can be attributed by modifying the md file at the same time. But that's not the point, the point is later on any contributions to these external resources  (image, Vue component, code block) are not included (we can't ask all the contributors of the external files always leave a comment in md to track their contributions, can we?). I mean when someone wants to include the external resources in calculating git attributes, why don't we provide users an convinient option.

declaring it in homepage footer or a copyright page manually should be better.

Yes, there are many situations where the contributor list can be long, even in current logic. But the option should be users', they decide when to show the contributors per page or when provide an overall contributors map. How they decide doesn't contradict this request to provide this option in case they want.

I agree with the pr you opened. That option would be nice.


MAINT: Update vendored pypocketfft version

Reference issue
Closes gh-11322
What does this implement/fix?
This updates the pypocketfft version to include pypocketfft!31 which fixes the thread name collisions on AIX and hopefully all future collisions by removing uses of
using namespace std;

from Martin's code.
Additional information
I believe this update also includes a reduction of the FFT twiddle factor array size from O(N) to O(sqrt(N)) which should reduce the transform cache's memory footprint.

Looks good except the Travis error, which appears legitimate
scipy/fft/_pocketfft/pocketfft_hdronly.h:3202:45: error: non-const reference cannot bind to vector element
7670                in[it.iofs(j,ii)].SplitConj(tdatav[i][j], tdatav[i+1][j]);
7671                                            ^~~~~~~~~~~~

https://travis-ci.org/scipy/scipy/jobs/634260582#L7669

I believe this update also includes a reduction of the FFT twiddle factor array size from O(N) to O(sqrt(N)) which should reduce the transform cache's memory footprint.

Unfortunately no. The change only affects the plan building stage itself, not the final plan size. Reducing the plan object itself to O(sqrt(n)) size would reduce performance noticeably, so I was reluctant to do that.

Ah okay, I missed that distinction.


Remove performance test, fixes rake default

Story: https://www.pivotaltracker.com/story/show/96896112
rake default runs all tests, including features and benchmarks. The single benchmark test we have requires benchmark_helper, which due to the ordering of requires ends up loading config/environment whilst in the benchmark Rails env. This means that gems such as factory_girl don't get loaded, causing the error.
The performance tests don't seem to run in CI anyway, and if they don't we don't seem to track the metrics or raise an alarm if they slow down beyond a certain point.
As of Rails 4, performance testing in this sense isn't part of the main stack and has been extracted into a separate gem. If we don't care about these tests, we should remove them.

good sleuthing. As you say we are not currently tracking/monitoring the performance using this mechanism (whether we should be or not is another conversation).
So :+1: from me for merging this.

:+1:

This is excellent news :+1:

Might want to get rid of environment/benchmark.rb


Create 0000-01-02-ovimaya.md

Description of the pull request

pull request solved

pull request solved


Fix a few build errors of docker images

This PR fixes the following errors in building docker images.

In samtool-cloud/Dockerfile, update the Google Cloud SDK version to its current latest, and install it using apt instead of building from the source code.
The GATK GitHub repository stores ~15GB data via LFS, which are fetched while cloning the repository for building the sv-base docker file. Downloading ~15GB data is a slow process on the GitHub Action runners, leading to out-of-disk issues. The LFS-hosted content for GATK does not seem to be needed, so this PR disables downloading/cloning them.
Add missing dependencies to sv-pipeline-virtual-env and dockerfiles/sv-utils-env/Dockerfile.

The following error can be fixed by removing --freeze-installed from this line, though not sure if that defeats the purpose of using --freeze-installed.

package matplotlib-3.5.1-py310hff52083_0 requires pyqt, but none of the providers can be installed

@mwalker174 Thanks for the prompt review and approval. I can reproduce the failing test locally, so I suppose it is unrelated to the runner's environment. Any thoughts on how that could be fixed? I can successfully build the image locally when I remove --freeze-installed from this line, though I am not sure if I should remove that flag. I also tried adding the missing dependency, but that led to a decent number of missing chains of dependencies. So, I am guessing there should be a different reason why this image fails the build. Any thoughts?


Metalink: optimize size calculation

Overview
This PR is an update of PR #581.
Changes:

Using _openurl with requests stream to get content-length. Faster than head request.
The size of a metafile can be set from outside to avoid calculation. Size might already be know and/or it takes long too calculate it when the metalink document has many files (>100).

Related Issue / Discussion
#581
Additional Information
Contribution Agreement
(as per https://github.com/geopython/pywps/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

[ ] I'd like to contribute [feature X|bugfix Y|docs|something else] to PyWPS. I confirm that my contributions to PyWPS will be compatible with the PyWPS license guidelines at the time of contribution.
[x ] I have already previously agreed to the PyWPS Contributions and Licensing Guidelines

Coverage remained the same at 0.0% when pulling b96668b268ee811f959a9f0c31448a88d88378d8 on cehbrecht:metalink-optimize-size-calc into 10be4ae351adac5433813deeee8dd42553806352 on geopython:pywps-4.4.

ping @huard @Zeitsperre


fix: added check for empty strings in response

This fix removes unnecessary console errors created by parsing the response string. It filters the split string to remove any empty strings from being included in the loop to process the response data.
Note: this is a PR into Main as I branched from main, which seems to have more commits/content. Be sure to change to Dev for testing/if necessary.

@Bukashk0zzz - I know this isn't a fix that resolves any real issues, but my client is insistent that the error is gone before I can implement it. Do you think this is something that can be added sometime soon? Whether it's this or another fix makes no difference to me! Thanks a bunch!

Hi @MeganJBlevins
Thanks for the request.
Sorry for the delay in reviewing it.
We will discuss this internally today and provide you with feedback.
The issue is that this change requires releasing a new version of drag.js on our CDN.

We will merge this request until end of this week and provide new release of Data Tag.
Thanks for pointing on this issue.

@Bukashk0zzz Thank you!

Hi @MeganJBlevins, the changes have already been published to our CDN and will be available through the same URL https://cdn.stape.io/dtag/v7.js, so there's no need to update your existing setup. Thank you!


Queues

Submission Title
Queues
Submission Type
DS
Submission Description
A queue is an abstract data structure that contains a collection of elements. Queue implements the FIFO mechanism
Contributors

[ ]  C++ -
[ ]  C -
[ ]  Python -
[ ] Java -
[ ] JavaScript -
[ ] TypeScript -
[ ] Golang -
[ ] Ruby -
[ ] Scala -

@ahampriyanshu I would like to work on this issue in C++ language.

Hi @ahampriyanshu , this is my first time contributing to Hactoberfest and open source as well. I made a pull request for the issue in C++ language. Please review my PR and do tell me if I need to do some corrections.
Thank You

Hey, I would like to take this project and implement in Python

I would like to implement this in Python.

thanks @ankitgoel25, @chiragjagad and @ssarkar786 :v:


feat(LazyInjectService): Added an ID to monitor behaviour in the SwiftUI context

Tested behaviour on SwiftUI Mail app is OK

I need to investigate is implementing an isEqual and checking the metatype of the resolved object can be more correct in the context of SwiftUI as checked with @PhilippeWeidmann

I need to investigate is implementing an isEqual and checking the metatype of the resolved object can be more correct in the context of SwiftUI as checked with @PhilippeWeidmann

I need to do a XCPerformanceTest of:
Recreating an InjectService and solving a type 10k times.
versus
Comparing an InjectService to a new one wrapping the same time 10k times.


Build Failing

Can we get builds passing again so we can see if our PRs are building?
https://travis-ci.org/developerforce/Force.com-Toolkit-for-NET/pull_requests

It's working now. Moving forward I'll do better.


Will NLog have a plan to support JSON formatting configuration file

Type (choose one):

Feature request

NLog version:

N/A

Platform:

.NET Core

Current NLog config (xml or C#, if relevant)

N/A

I have recently encountered this situation, I hope that NLog can read JSON format configuration files. Is there any plan to support that?

Duplicate of #1588 ?

"Easy" workaround is to convert the Json into a Xml-document, and then load the NLog-configuration from the Xml-document (Ex JSON.NET):
// To convert JSON text contained in string json into an XML node
XmlDocument doc = JsonConvert.DeserializeXmlNode(json);

Thanks, so it has been discussed already. Can this feature be released with 5.0?

The discussion has been started but AFAIK there are some open topics.
We haven't started with the implementation, I really like this feature but we're working on other stuff first.
This could be added any time to NLog, no need to wait NLog 5. Also we need probably a json schema if we create this feature.
If someone like to start on the implementation, feel free :)
(note: the following weeks I have very limited time, so reviews and feedback could be delayed)

So, le's finish a formal JSON configuration formatting proposal first. I will file a formal proposal so we can discuss details.

:+1:

It's Easy To define a wrapper in the configuration file  with xml formatting,but not with Json formatting,Is there a better way to define a warpper with Json formatting?

@304NotModified
Does NLog config file supperted this form
<targets>
  <target name="n" xsi:type="AsyncWrapper">
    <target xsi:type="RetryingWrapper">
      <target xsi:type="File" fileName="${file}.txt" />
    </target>
    <target xsi:type="SomeWrapper">
        <target xsi:type="db" .... />
    </target>
  </target>
</targets>

Partly, the asyncwrapper only supports one wrapper target, but the fallbackwrapper supports wrapping multiple targets.

I think the Database target can define like this:
{
    "targets":{
        "db": {
            "type": "Database",
            "commandText": "INSERT INTO [LogEntries](TimeStamp, Message, Level, Logger) VALUES(getutcdate(), @msg, @level, @logger)",
            "parameters": [
                "@msg": {
                    "layout": "${message}"
                },
                "@level": {
                    "layout": "${level}",
                    "size": 0
                },
                "@logger": {
                    "layout": "${logger}"
                }
            ],
            "dbProvider": "System.Data.SqlClient",
            "connectionString": "....."
        }
    }
}

The default wrapper definition is:
{
    "targets":{
        "defaultWrapper": {
            "type": "BufferingWrapper",
            "bufferSize": 100
        },
        "f1": {
            type: "File",
            fileName: "f1.txt"
        },
        "f2": {
            type: "File",
            fileName: "f2.txt"
        }
    },
    "targets": {
        "defaultWrapper": {
            type: "AsyncWrapper",
            wrap: {
                "type": "RetryingWrapper"
            }
        },
        "n1": {
            "type": "Network",
            "address": "tcp://localhost:4001"
        },
        "n2": {
            "type": "Network",
            "address": "tcp://localhost:4002"
        },
        "n3": {
            "type": "Network",
            "address": "tcp://localhost:4003"
        }
    }

The default target parameters definition is:
{
    "targets": {
        "defaultTargetParameters": [
            {
                "type": "File",
                "parameters": {
                    "p1": "k1",
                    "p2": "k2"
                }
            },
            {
                "type": "Database",
                "parameters": {
                    "p1": "k1",
                    "p2": "k2"
                }
            }
        ],
        "f1": {
            "type": "File",
            "fileName": "f1.txt"
        },
        "db": {
            "type": "Database",
            ...
        }
    }
}

What do you think? @304NotModified

To avoid confusing, I will close this one in favor of https://github.com/NLog/NLog/issues/1588

Created https://github.com/NLog/NLog.Extensions.Logging/pull/263 for people who would like to test NLog-config from appsettings.json. Depends on NLog 4.6-rc1


[Writable Warm] Design and implement Composite Directory and integrate with FileCache

Is your feature request related to a problem? Please describe
Currently we don’t have support for any directory implementation which can interact with both local and remote repositories. We are proposing creating a new directory implementation where data is backed in a remote store and not all data needs to be stored locally. This directory will behave as a local directory when complete files are present in disk, but can fall back to the on-demand fetch(can be extended to block level or non block level fetch) from the remote store when data is is not present locally.
Describe the solution you'd like

How will the user be able to create a Composite Directory for an index ?
We will add a new type to the index.store.type setting - compositefs to indicate that this index will use a composite directory.

What will the Composite Directory look like ?
Here’s what the Class Diagram for Composite Directory will look like:

Our Composite Directory will have a FSDirectory instance(localDirectory), a FileCache instance and a RemoteStoreFileTracker implementation. Most of the file tracking abstractions such as adding files to tracker, checking whether they are present in local or remote etc are handled in the implementation of RemoteStoreFileTracker object - CompositeDirectoryRemoteStoreFileTracker. Abstractions such as fetching files from remote which are not available locally will be handled in the fetchBlob function where we will simply fetch the required files(in block or non-block format). This fetchBlob function will be called in the implementation of fetchBlock function of OnDemandCompositeBlockIndexInput (all abstractions related to block level fetch are handled in this class only)
More details on when the states of a file are changed, how reads and writes are handled given below.

When will the states of a file change ?
Any file in Composite directory goes through the following changes:

Whenever a file is created (createOutput method of directory), we will add it to our FileTracker in DISK state indicating that the file is currently present locally only.
As soon as the file is uploaded to remote store, we add the file to our FileCache and change the state to CACHE indicating that file is present in cache
If the file is evicted from FileCache we change the state of the file to REMOTE_ONLY indicating the file is not present locally and needs to be fetched from the remote store for use.

How will reads be handled in Composite Directory ?
Whenever a file read is requested(openInput) we will first check the state of the file from our FileTracker. If the file state is:

DISK → we read it from the local directory
CACHE → we read it from the fileCache
REMOTE_ONLY → we fetch the file from remote store(block or non-block), store it in the fileCache and change the state of the file to CACHE so that it can be read from the fileCache

How will writes be handled in Composite Directory ?
Whenever a file write is requested(createOutput) we will fallback to the localDirectory to write the file. Since our IndexShard object already has a remote store object containing a remote directory, writes to the remote directory are handled via that only. Our CompositeDirectory will have a function - afterSyncToRemote (called in RemoteStoreRefreshListener after the segments are uploaded) which will take care of writing the files to cache once the file is uploaded to remote store.

Looking forward for review comments and discussions on this.
Related component
Storage:Remote
Describe alternatives you've considered
No response
Additional context
No response

Thanks @rayshrey for putting this proposal out. I like the overall idea of having this abstraction behind the Directory interface.
Few questions:

This directory will behave as a local directory when complete files are present in disk, but can fall back to the on-demand fetch(can be extended to block level or non block level fetch) from the remote store when data is is not present locally.

Calls over the network may have higher latency costs, and hence high thread wait time. Can this cause the write/search threads to be blocked more than we would like and will it make sense/be feasible to offload this to either async I/O or a different pool?

As soon as the file is uploaded to remote store, we add the file to our FileCache and change the state to CACHE indicating that file is present in cache

Does this signify that file can be removed from the local store if needed?

Our CompositeDirectory will have a function - afterSyncToRemote (called in RemoteStoreRefreshListener after the segments are uploaded) which will take care of writing the files to cache once the file is uploaded to remote store.

How would this cache look like? I assume this is an on disk cache. Could you elaborate on how will this look like on disk?

CACHE → we read it from the fileCache

Will this not require the knowledge of block being requested? Or does it ensure that files are always present on cache completely?

Thanks @mgodwan for the insightful comments.

Calls over the network may have higher latency costs, and hence high thread wait time. Can this cause the write/search threads to be blocked more than we would like and will it make sense/be feasible to offload this to either async I/O or a different pool?

Good point. I think writes will be async as uploads to the remote store will be taken care of by the remote directory itself. Will check the feasibility for reads as well.

Does this signify that file can be removed from the local store if needed?

Yes, once uploaded to the remote store, local files can be deleted.

How would this cache look like? I assume this is an on disk cache. Could you elaborate on how will this look like on disk?

There is already an existing FileCache in OpenSearch which is currently be used for SearchableSnapshots.We will be reusing the same. Currently it does not support for tiering the data at different levels and ttl logic as well. Will open a separate issue for FileCache changes that are needed. This issue mainly focuses on how the Composite directory will be structured and how the FileCache will fit into this structure.

Will this not require the knowledge of block being requested? Or does it ensure that files are always present on cache completely?

The approach I was thinking of was that both BLOCK and NON-BLOCK file types will be present in the Cache. For NON-BLOCK files, we simply return from the Cache whereas for BLOCK files we do what we did for the REMOTE FileState - return an instance OnDemandBlockIndexInput which handles all the abstractions for block level fetch(including caching the BLOCK files in FileCache as and when required)
The other approach we can take is to keep only BLOCK level files in the Cache and always return an instance of OnDemandBlockIndexInput.
The first approach sounds more reasonable to me as it gives us the flexibility of choosing between what we want to fetch according to our requirements - BLOCK or NON-BLOCK files. Your thoughts on this - @ankitkala @mgodwan ?

@andrross @sohami @neetikasinghal
Can you please review this

[Triage - attendees 1 2 3 4 5 6]
@rayshrey Thanks for filing. Looking forward to seeing progress.

@rayshrey Thanks for creating this issue. Couple of questions:

What is difference between FileState DISK and CACHE ?  Both the file types will be stored in local disk only, so do we really need to have these 2 separate states or can we combine them into single state such as DISK. In the read path, depending on the index type i.e. hot/warm, the data files will be either served from FileCache or from local directory which directory should be able to decide in the base case.
I think the tricky part is for non-dedicated search node setup when index is moving to warm, some data could be still in local (outside FileCache) and some in the FileCache. For that probably, directory again needs to first look into local directory and if not found then fallback to FileCache to provide that file (either may already be in FileCache or download it using block level semantics). Note: FileCache can still have both block vs full file, as for recent indices migrating to warm, we may want to keep their whole file in cache for sometime. Thoughts on these ?

Thanks @sohami and @mch2 for your insights.
Please find answers to your questions below.

Just to clarify this composite directory is currently going to be used only to represent warm indices or it will also represent a remote backed hot indices

Yes composite directory will be used for remote backed hot indices as well. Will add support for that incrementally in another PR once the base implementation is finalized in this one.

For hot indices the file state will be DISK only or it can be DISK and CACHE ? I think we still need to decide on sharing the FileCache for hot/warm data, so assuming it will be used for warm indices for now only, my understanding is for hot indices all the file state will be DISK

For hot data, we won't be caching it into FileCache, so all the data will be present locally for hot indices.

Based on file state changes, wondering for warm data, when new file gets created, why cannot we move it directly to FileCache vs doing it only after upload to remote store ? I am trying to see if we can keep separation between state of hot vs warm data files.

For data present locally we are not putting it in FileCache, we are simply fetching it directly from the localDirectory to keep things simple (as adding local files in FileCache and then fetching it from there wouldn't have any added benefits). For separation of hot/warm data files we will need to have some sort migration logic in the Directory itself once we start adding support for remote backed hot indices in composite Directory

What is difference between FileState DISK and CACHE ? Both the file types will be stored in local disk only, so do we really need to have these 2 separate states or can we combine them into single state such as DISK. In the read path, depending on the index type i.e. hot/warm, the data files will be either served from FileCache or from local directory which directory should be able to decide in the base case.

Have modified the logic to check from the local and remote directories whether they are present locally or in remote.
Will add the updated the class diagrams and flows in some time. Till then this PR would help in understanding the updated design - https://github.com/opensearch-project/OpenSearch/pull/12782

I think the tricky part is for non-dedicated search node setup when index is moving to warm, some data could be still in local (outside FileCache) and some in the FileCache. For that probably, directory again needs to first look into local directory and if not found then fallback to FileCache to provide that file (either may already be in FileCache or download it using block level semantics). Note: FileCache can still have both block vs full file, as for recent indices migrating to warm, we may want to keep their whole file in cache for sometime. Any thoughts on these ?

As of now we are not putting the entire file in Cache, so FileCache will only have block files.
For hot to warm migrations, we will delete all the local files once uploaded to Remote.
For warm to hot, we will download all the files present in remote to local and clear all the files in FileCache.
Will raise a separate issue for handling the migration where we can discuss this in more details.

Also it seems to me FileTracker then becomes important only to handle the case described above in 2. Other than that, if all files of hot will be served from local and warm using FileCache, then we don't really need file tracker right ?

Yes it doesn't really seem necessary. As stated earlier, have updated the design and it can be checked in this PR

How would a user configure the store type on the local directory used inside of the composite dir? I would think even with warm we don't want to restrict the type for local writes?

Yes this was a con in the previous approach and hence we have decided to move away from that to a new setting which would indicate whether full data is cached locally (hot index) or partial data is cached locally (warm index). This will allow users to have their own store type as local directory.

The RemoteStoreFileTrackerAdapter deviates a bit from the RFC where the composite dir only contains local & remote directory implementations. Can we not inject a remote directory here directly? I am also thinking we do not need the extra file tracking as @sohami called out because TransferManager can already handle if file should be fetched from local dir, cache or remote.

Have updated the design to remove the FileTracker and RemoteStoreFileTrackerAdapter overheads and am just injecting a remote directory now. Can refer the PR until I add the updated design in the description.

To that last thought we could subclass RemoteSegmentStoreDirectory with a block based impl and inject that into CompositeDirectory instead of the adapter? This would build a component similar to RemoteSnapshotDirectory where we return OnDemandBlockIndexInput directly. I think with a little refactoring to the FileInfo metadata passed in we could even reuse OnDemandBlockSnapshotIndexInput as these flows are very similar to your initial OnDemandCompositeBlockIndexInput.

The problem with having an implementation similar to RemoteSnapshotDirectory is that the TransferManager uses BlobContainer for fetching the file. To get the BlobContainer of RemoteDirectory we need to expose a method in RemoteSegmentStoreDirectory to get the BlobContainer of its remoteDataDirectory which does not seem right as it will leak the abstractions of RemoteSegmentStoreDirectory. Hence we have exposed a new method in RemoteSegmentStoreDirectory which fetches the required file from remote to local which is called in the fetchBlock method of OnDemandCompositeBlockIndexInput.

@rayshrey thanks for posting this. Some thoughts/questions on the migration flows:

Just to clarify, would moving an index from hot to warm mean to move the files from localDirectory to localCacheDirectory? Also, the file state would be updated in the tracker from DISK to cache in this case. How would we ensure that the movement of files across directories and updating the file state is atomic? Else, there can be scenario where the file movement is completed but the file state still points to DISK, leading to read issues. How do we plan to deal with this?
What are the different reasons of failure in CompositeDirectory when moving the files  from localDirectory to localCacheDirectory?

Most of the design discussions on this shifted to the POC implementation (which later turned to a concrete PR after the reviews). Listing down the current design which was implemented along with some other basic design decisions which were taken.

WARM Index Setting
Introduced a new index setting index.store.data_locality which can be either:

full indicates that the entire data (100%) would be cached locally on disk (this will be synonymous with hot)
partial indicates that not all data needs to be present locally on disk (this will be synonymous with warm)

Example
PUT my-index-warm
{
  "settings": {
    "index": {
      "number_of_shards": 1,
      "number_of_replicas": 0,
      "store" : {
          "data_locality" : "partial"
      }
    }
  }
}

Class Diagram

Composite Directory Read and Write Flows
Write (createOutput)

Redirect to localDirectory and store the IndexOuput returned from localDirectory
Wrap the stored IndexOutput into a CloseableFilterIndexOutput and return it
Whenever close for CloseableFilterIndexOutput is called, we read the file from localDirectory and wrap it into a FullFileCachedIndexInput
We then cache the file in FileCache using the path of the file as key and a CachedFullFileindexInput (wrapping the above FullFileCachedIndexInput) as value
We also increase the ref count on that entry by one so that it is not evicted from the FileCache until it is uploaded to Remote

File Uploaded to Remote(afterSyncToRemote)
Whenever a file is uploaded to remote, we will already have a full file entry for it in the file cache (from the above write flow)
So we will decrease the ref count ont that entry by one so that it can be now evicted from the FileCache (since we already have it in Remote, it is safe to be removed from local considering it is not being actively referenced elsewhere)
Read (openInput)

Check if full file entry for the file is present in FileCache. If yes clone and return the FileCache entry
If not, then extract necessary metadata about the file from remoteDirectory and use that to initialize OnDemandBlockSnapshotIndexInput to fetch files in block as and when needed from Remote.

Changes in FileCache Initialization
FileCache was initially introduced only for Searchable Snapshot use case and was initialized only on nodes which were configured for the Search role. Since we will be using FileCache as well for Writable Warm, we will be initializing FileCache based on our Feature Flag currently and reserve 80% of the node capacity for FileCache.
TODO - Explore if we can have different node roles based on which we will be initializing the FileCache, such as WARM role (similar to the SEARCH role used earlier for Searchable Snapshots)
RemoteDirectory Changes
Currently RemoteDirectory only supports reading a full file via the openInput method.
Our use-case is such that we need to read a certain part/block of the file only.
So we overload the IOContext parameter passed in the openInput function to add details of the part to read(such as offset position and length etc) and in the openInput function we check the IOContext to know whether it is a block read request or a full file read request.
class BlockIOContext extends IOContext {
    long blockStart;
    long blockSize;

    BlockIOContext(IOContext ctx, long blockStart, long blockSize) {
        super(ctx);
        this.blockStart = blockStart;
        this.blockSize = blockSize;
    }
}

public IndexInput openInput(String name, IOContext context) {
    if (context instance of BlockIOContext) {
        // extract offset and length from BlockIOContext
        // and fetch only that specific part from remote
    } else {
        // fetching full file from remote
    }
}

Changes in TransferManager
Currently TransferManager is configured to be able to read only from a BlobContainer considering in it’s original use case(Searchable Snapshot) the BlobContainer was already exposed. But for Composite Directory, BlobContainer is abstracted out and we will need to be able to read directly from Remote Directory as well.
Hence we need to change the BlobContainer to a more generic StreamReader below.
@FunctionalInterface
public interface StreamReader {
    InputStream read(String name, long position, long length) throws IOException;
}

This is how we will initialize TransferManager for Searchable Snapshot and for Composite Directory
// Searchable Snapshot
TransferManager transferManager = new TransferManager(blobContainer::readBlob, fileCache);

// Composite Directory
transferManager =
new TransferManager(
    (name, position, length) -> new InputStreamIndexInput(
        remoteDirectory.openInput(name, new BlockIOContext(IOContext.DEFAULT, position, length)),
        length
   ),
    fileCache
);


add config xref

@christiankuhtz : Thanks for your contribution! The author, @KumudD, has been notified to review your proposed change.


Add command-line option for custom config file (#11)

Changes
Add a separate CLI option called --pyproject-file, based on the way flake8-black handles the same issue, ie config file type not being supported by flake8 in the first place.
Open questions/issues

Is the config option aptly named? Should it be named something else?
The config option completely ignores other config files, no thoughts on having it work together with a tox.ini or a in-directory pyproject.toml has been considered.

Testing

Added unit tests to see that it works as expected
Running locally in a monorepo to see that VSCode does in fact get the config from a subdirectory

Sorry, took a while to merge and release.
I renamed the option to --toml-config in the end, somehow liked that a little better. The override behavior is fine, we can just ignore other config files in this case, the way I see it.
Thanks again, @justcallmelarry .


Following instructions (step-by-step) results in launch screen without image on iOS

After following these instructions (exactly), I am shown a launch screen that does not contain my image.

Actual result:
A blank screen whose background color is set properly, but no image displayed.
Before you jump to the conclusion that I am just messing up constraints on the image (thus it is not rendered in the expected place), let me say that I have created a few of these launch screens- but after not having luck (initially) using this document, I have been forced to use this video for direction instead:
Xamarin iOS splash screen
I'm not sure why this alternate method works and why this document's method does not work is beyond me. The main difference appears to be that in the video above, we add a PNG into the Resources directory (for use in the storyboard), as opposed to using an image from an Asset Catalog. Shouldn't both ways work?
Anyways, please create a new Xamarin.Forms app using the latest version of VS2017 and try to use this documentation to create a custom launch screen (complete with custom image and background color). You'll find that something is missing...
Thank you,
-Derek

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

ID: 5eaa7bed-8577-a8d2-06e9-3909ac8a4520
Version Independent ID: e31b68bb-76de-6c63-883b-b1fd386cf001
Content: Launch Screens for Xamarin.iOS Apps - Xamarin
Content Source: docs/ios/app-fundamentals/images-icons/launch-screens.md
Product: xamarin
GitHub Login: @bradumbaugh
Microsoft Alias: brumbaug

Hi @dfoulk. I gave this a shot and was able to create a launch screen storyboard with an image for a Xamarin.Forms app from Visual Studio 2017. At first I did see the issue you mentioned, where the image didn't show up; however, manually deleting the app and then rebooting the simulator resolved the issue.
Searching around a bit seems to indicate that Xcode issues sometimes face this issue as well, which suggests to me that this isn't Xamarin-specific. That said, please report this on Developer Community for support.

@bradumbaugh Thank you for your reply. I did notice that creating a new app and simply running it on iOS (before editing anything) also shows a blank screen (no image). It should show the Icon60.png image. Oh well, thanks man!

This is still the case with VS 2019.
Though does @bradumbaugh coment resolve.


added kadane algorithm function

What is the problem with the file that I have added?Please help

The file does not need to be in a specific folder for this algorithm.
It can be in the others folder, or in its appropriate folder. 🙂

Is that why the tests are failing?
On Wed, 16 Sep, 2020, 12:55 AM David Leal<EMAIL_ADDRESS>wrote:

The file does not need to be in a specific folder for this algorithm.
It can be in the others folder, or in its appropriate folder. 🙂
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/TheAlgorithms/C-Plus-Plus/pull/1079#issuecomment-692927959,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALYLVZAG6BZSYZY5T35ZKQTSF65TZANCNFSM4RNRAABQ
.

I have made the changes.Please check.

Thanx. I did the changes which you suggested.

Any more changes required?

Yes, please add documentation like in #962.

Is this a repeat of #606 ?

It seems it is, sorry, my bad!
What if in this PR we improve the current algorithm by adding
documentation and make it more a C++ program?

The issue was to create kadane's algorithm.I did that on my own.I haven't copied anyone's code.

@Panquesito7 -I have already added documentation which is missing in #606.

The issue was to create kadane's algorithm.I did that on my own.I haven't copied anyone's code.

@ayush523 Good to hear that the algorithm and code is your own.
Ensure that:

the contributed code and/or the algorithm are different implementations for the same problem
the filename should be changed to dynamic_programming/kadane2.cpp. make sure no new folders are added.
appropriate documentation to explain the new algorithm

Thank you

The issue was to create kadane's algorithm.I did that on my own.I haven't copied anyone's code.

@kvedala -Sir I have done the required changes.Please check.

@kvedala -Sir I have done the required changes.Please check.

@Panquesito7 is the reviewer and he will continue the reviews.

It seems it is, sorry for not noticing!
What if in this PR we improve the current algorithm by adding
documentation and make it more a C++ program?

Its ok, it is easy to miss the history :)

@Panquesito7 -I don't understand why the code is not working after the commits suggested.Please help.

Thank you @Panquesito7

@Panquesito7 do you confirm the algorithm is a different implementation than the existing one? thank you

Yes, implementation looks different. 🙂
I like this one rather than the current one:

Has very good documentation
Uses C++ standard-libraries/functions
Well-structured and as per the repository standards

Can be merged. 👍


Unicode error

I have a task generated by bugwarrior from a github issue. The githubbody UDA contains this line:
  UDA githubbody:   blah blah blah blhín blah blah blah

Also, another github issue, that contains this: 👏🏽, is being transformed into:
Annotation:        2020-07-24 14:00:31 -- @pontusj - Well done! That was not at all obvious! ꃭ辱ꃭ붿

While using the taskwiki plugin in vim, I got an error:
Error detected while processing function provider#python3#Call:
line   18:
Error invoking 'python_execute_file' on channel 3 (python3-script-host):
Traceback (most recent call last):
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/main.py", line 666, in <module>
    WholeBuffer.update_from_tw()
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/errors.py", line 26, in wrapped_function
    original_function(*args, **kwargs)
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/decorators.py", line 10, in wrapped_function
    original_function(*args, **kwargs)
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/main.py", line 44, in update_from_tw
    c.evaluate_viewports()
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/cache.py", line 249, in evaluate_viewports
    port.sync_with_taskwarrior()
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/viewport.py", line 343, in sync_with_taskwarrior
    to_add, to_del = self.get_tasks_to_add_and_del()
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/viewport.py", line 317, in get_tasks_to_add_and_del
    matching_tasks = self.matching_tasks
  File "/home/nikos/.local/share/nvim/plugged/taskwiki/taskwiki/viewport.py", line 294, in matching_tasks
    return set(
  File "/usr/lib/python3.8/site-packages/tasklib/task.py", line 476, in __iter__
    self._result_cache = self._execute()
  File "/usr/lib/python3.8/site-packages/tasklib/task.py", line 508, in _execute
    return self.backend.filter_tasks(self.filter_obj)
  File "/usr/lib/python3.8/site-packages/tasklib/backends.py", line 334, in filter_tasks
    for line in self.execute_command(args):
  File "/usr/lib/python3.8/site-packages/tasklib/backends.py", line 290, in execute_command
    stdout, stderr = [x.decode('utf-8') for x in p.communicate()]
  File "/usr/lib/python3.8/site-packages/tasklib/backends.py", line 290, in <listcomp>
    stdout, stderr = [x.decode('utf-8') for x in p.communicate()]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 78938: invalid continuation byte

Using task edit I managed to pinpoint the problem to these particular taskwarrior tasks. I used vim with task edit and searched for \%xed. The character í was highlighted. That's how I assumed the first task was to blame. Removing the strange character did not solve the issue. To find the second task, I manually loaded each task in taskwiki. Removing the strange characters at the end, solved the issue. So perhaps that was the issue all along.
Perhaps, it is the responsibility of bugwarrior to filter such characters, but given the broad range of sources that can go into taskwarrior, perhaps it would be simpler to fix such an issue in tasklib.

I'm having the exactly same problem. As a workaround, I had to disable two on-modify hooks that use tasklib. A real bummer because they are very important hooks.


NotImplementedError in ConversationSummaryBufferMemory.save_context with get_num_tokens_from_messages

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
When attempting to use the ConversationSummaryBufferMemory.save_context method in the LangChain library, I encountered a NotImplementedError. This error occurs specifically when calling get_num_tokens_from_messages() for the model gpt-35-turbo-16k. I am trying to integrate the AzureChatOpenAI model with a custom memory buffer to manage conversation states but faced this issue during implementation.
To reproduce the error
from langchain.chat_models.azure_openai import AzureChatOpenAI
from langchain.memory import ConversationSummaryBufferMemory

llm = AzureChatOpenAI(
    openai_api_version=constant.OPENAI_API_VERSION,
    azure_endpoint=constant.OPENAI_API_BASE,
    api_key=constant.OPENAI_API_KEY,
    model=constant.OPENAI_GPT_MODEL_NAME,
    azure_deployment=constant.OPENAI_GPT_DEPLOYMENT_NAME,
    temperature=0,
)

memory = ConversationSummaryBufferMemory(llm=llm, max_token_limit=10)
memory.save_context({"input": "hi"}, {"output": "whats up"})

Error Message and Stack Trace (if applicable)
NotImplementedError: get_num_tokens_from_messages() is not presently implemented for model gpt-35-turbo-16k.
See https://github.com/openai/openai-python/blob/main/chatml.md for information on how messages are converted to tokens.
Description
Initialize AzureChatOpenAI with the model gpt-35-turbo-16k.
Create an instance of ConversationSummaryBufferMemory with a small max_token_limit (e.g., 10 tokens).
Attempt to save a context using memory.save_context({"input": "hi"}, {"output": "whats up"}).
System Info

langchain==0.1.11
Python version: 3.11
Operating System: Windows

Yeap this is expected, since this is not yet implemented in langchain. Please see this

@keenborder786 The get_num_tokens_from_messages is called by ConversationSummaryBufferMemory with the passed llm, actually an option can be added to it to customize the way to calculate the number of tokens.
In  OpenAIEmbedding, the implementation would also try to calculate the tokens before sending request, tiktoken_enabled and model can be configured to use even huggingface tokenizer to do that.

Hi @AymaneHan1
Did you try to find solution for that error ?
Thanks in advance


Tests for CLI

For now they only check if it ran without errors, still need to write more checks for the results!

Codecov Report

Merging #11 into master will increase coverage by 51.04%.
The diff coverage is 100%.

@@             Coverage Diff             @@
##           master      #11       +/-   ##
===========================================
+ Coverage    3.99%   55.03%   +51.04%
===========================================
  Files           6        6
  Lines        1152     1152
  Branches      386      386
===========================================
+ Hits           46      634      +588
+ Misses       1085      365      -720
- Partials       21      153      +132

Impacted Files
Coverage Δ

KEGGDecoder/KEGG_decoder.py
65.91% <100%> (+60.81%)
:arrow_up:

KEGGDecoder/Plotly_viz.py
83.33% <100%> (+83.33%)
:arrow_up:

KEGGDecoder/KEGG_clustering.py
83.87% <0%> (+83.87%)
:arrow_up:

Continue to review full report at Codecov.

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

Ready for review @bjtully


Apple Silicon macOS Native client

Hi, any hope for an Apple Silicon macOS Native client? I would love a server and client of course but a client alone would be amazing. Not a huge fan of running Intel code on my Apple Silicon M1 arm processor. Thanks!

Oops, I thought I had that already, but it looks like I'm only building for Darwin amd64. I'll add it.
What installation method are you using?

A .dmg would be awesome. Thank you.

I've modified the Homebrew formulas to build for Apple Silicon and added Apple Silicon as a build target for new versions in on the releases page.
To install with brew:
brew update
brew install jhalter/mobius-hotline-client/mobius-hotline-client
brew install jhalter/mobius-hotline-server/mobius-hotline-server

As you may be aware, distributing compiled binaries on modern macOS a pain as it requires going through Apple's notarization process, otherwise scary warnings block execution.  For this reason I recommend using the brew distribution on macOS, which avoids this by compiling the binaries on your system.
But if you are anti-brew or just want the binaries for some reason, the latest Apple Silicon binaries are here:
https://github.com/jhalter/mobius/releases/download/v0.10.24/mobius_client_darwin_arm64.tar.gz
https://github.com/jhalter/mobius/releases/download/v0.10.24/mobius_server_darwin_arm64.tar.gz
I'm open to revisiting the dmg install method in the future, but not a layer of hell I want to revisit to at this time.

Hi @jhalter first off THANK YOU for doing this and also thanks for the amazingly quick reply.

As you may be aware, distributing compiled binaries on modern macOS a pain as it requires going through Apple's notarization process, otherwise scary warnings block execution.

Yeah it is annoying but it is easy to get around. Personally I despise Brew after having a bad experience with the people who run their Github page. I reported an issue with their neofetch repo and I got nothing but snark in reply. Personally I use pkgsrc.
Thank you for the .dmg files! I will save these and install both server and client! You're awesome!

Just a note to anyone who wants to install/run the client software above... unzip it (if Safari hasn't already unzipped it for you) open Terminal.app go to /Downloads/dist/mobius_client_darwin_arm64 and run sudo ./mobius-hotline-client -config ./mobius-client-config.yaml

Thanks for the feedback.  I haven't heard of pkgsrc before.  If it's easy to contribute packages, I might be open to it.  Or is someone else wants to create and maintain a package even better. 😄

Great to see Mobius getting updates 👍🏼


Invalid of corrupt jar file Overture-fmu.p2.jar

In the INTO-CPS App latest release, the Overture FMU Import / Exporter - Overture FMI Support (0.1.6) download is invalid or corrupted.

I cannot replicate this. It works fine here.
@lausdahl can you try?

I can also not reproduce this using release bundle 0.0.12

@avh-agrointelli can you try again?

@CThuleHansen I still get the same error using bundle 0.0.12, as well as bundle 0.0.11

@ldcouto  can you give this a go?

Not at work. The download manager doesn't work behind a proxy.
I can check when I get home. Is there any chance this is a platform issue?

I can download for both versions of the bundle.
I tested on a Mac. @CThuleHansen you tested windows?

I use Windows 10 and I can download the file. I just can't install it, because the file is invalid or corrupted. Sorry if I was not clear enough

@ldcouto  can you open it?

@avh-agrointelli can you state the steps you perform to detect this invalidity/corruption?
What do you do with the file after downloading it?

@CThuleHansen After I download the file using the INTO-CPS App Download Manager, which works fine, I go to the <into-cps-projects\install-downloads> folder, and try to run the downloaded .jar file. Then is when I get the message shown above.
I have also tried opening it with Overture, but I also get the same message.

This worked for ne,

@CThuleHansen Thanks, that worked.

Excellent, closing this issue.


Improve net typings in lib/node.js

According to node docs

Oh boy, any chance we can split this into smaller PRs? This is very hard to check all at once.

Much of this is already fixed, and PR is very outdated. Closing this for now.


Incorrect lighting

Tips:
My project may be a bit hard to follow for those unfamiliar, so here's some tips:
Uncomment this if you have SDL2 installed, allows for real-time render previews:
https://github.com/VKoskiv/c-ray/blob/master/src/includes.h#L12
The render parameters are set starting on this line here, tweak them to adjust the render result:
https://github.com/VKoskiv/c-ray/blob/master/src/scene.c#L218
Key points in code:
https://github.com/VKoskiv/c-ray/blob/master/src/renderer.c#L312
The render thread, run on each CPU in parallel. This sets up the ray, and calls this next one:
https://github.com/VKoskiv/c-ray/blob/master/src/raytrace.c#L483
The actual raytrace function that takes the scene and light ray, and returns a colour value.
Problem:
Lighting is calculated incorrectly. Shadows are shown where there is no object between the point observed, and a given light.

More recent detail of the bug (The red lamp highlights the issue):

Another angle of the problem, to show it's not dependent on the camera position:

All the lamps are supposed to cast light uniformly in all directions, but these images show otherwise.
The source of the problem is here:
https://github.com/VKoskiv/c-ray/blob/master/src/raytrace.c#L611
The inShadow parameter is incorrectly set to true
If we change that line to inShadow = false;, thus disabling all the shadows for the OBJ 3D models, the problem does go away. This isn't a solution though.
This is what it looks like with that change:

Note, how the spheres still have shadows, as that is calculated separately.

Update:
Moving the lamp and camera outside the room (On the roof) Yields this result:

This is just with the Y coordinates adjusted up.

Further testing reveals an interesting clue:
https://imgur.com/a/LybkU

Update: This issue only affects the old, do-while loop algorithm named rayTrace().
Possibly closing this issue once the new tracer is completed.


Unable to build project in Visual Studio 2019

Hello
I am getting below error while building this application

This is resolved


Update massive-scale-azure-architecture-content.md

No changes needed. Added last update date
Before clicking the "Create pull request" button:
Enter a meaningful title. We suggest using the keywords "New" or "Update" indicating the nature of changes.
Summary, scope, and intent of this PR
[REPLACE-THIS-TEXT]
Links to any related work item(s) or supporting detail

[DELETE-OR-REPLACE-THIS-TEXT]
[DELETE-OR-REPLACE-THIS-TEXT]

AFTER YOUR PR HAS BEEN CREATED, expand this section for tips and additional instructions.
These are common guidelines for contributions across the repos managed by the Azure patterns & practices (PnP) content team. Some repositories may have additional specific requirements that are not listed here.
Guidance for all contributors

Topic
Guidance

Draft PR
If your PR will be a work-in-progress for more than a day or two, select the Convert to draft link in the upper right of the page (under Reviewers) to change it to a draft. For future reference, you can also do this using the Create pull request button drop-down during PR creation.

ms.date metadata
Don't update an article's "ms.date" metadata property unless you've done a full freshness review of the content. A full freshness review includes changes required to correct or improve the full technical accuracy of the article.Don't update "ms.date" if you're doing targeted changes to improve non-technical aspects of the article, such as editorial quality, art improvements, article template alignment, etc.If you've changed any "ms.date" properties for work that wasn't part of full review for freshness, please reset them to their previous value.

Placement and linking
If you're creating a new article or articles, include updates to the related TOC.yml file to propose where the article(s) should be placed. Also consider other places within the document set where it would be beneficial to cross-reference and link to your new article(s).

PR build
After you open your PR, and for each successive commit that you push to your branch, the publishing platform will run validation on the files in your pull request. A summary of the build results for each file will be inserted inline into your pull request, which includes any build suggestions/warnings/errors. PRs cannot be merged until all build errors and most warnings are resolved.

Publishing
Following a successful merge, most repos publish to the live site about once per (business) day.

Additional resources
learn.microsoft.com contributor guide

Additional guidance for private repos and internal contributors

Topic
Guidance

PR size
If your PR is more than ~5 lines of changes, or you'd like for the changes to go through editorial or larger review, open a contribution request at https://aka.ms/contribution and include a link to the PR in response #8. Once it's processed, you'll be notified of the next steps.

PR title prefix
Select the Edit button to the right of the PR title if you need to revise it. The following prefixes are reserved for specific contribution types:[Quality Check] - maintenance work related to content quality (edit passes, art improvements, template alignment)[LinkFix] - recurring/adhoc PRs to correct link URLs[Pipeline] - new/updated contributor success pipeline content[WIP] - a work-in-progress draft requiring several days/weeks

PR preview
Following successful build of your PR, publishable files will also include Preview URL links to staged previews of your new/updated articles. Be sure to review these for verification of your intended contributions, or to send to other internal contributors for review.

PR sign-off (public repo)
If an article you own is updated in a public repo PR, you are responsible for sign-off. You will be automatically notified via email. The PR will not be merged until you've had a chance to review and sign-off.

PR sign-off (private repo)
After you've completed your proposed changes, addressed build warnings, and completed all review work, you can begin the sign-off process for review and merge:If your PR is in draft mode, remove "[WIP]" from the title and select Ready for review button at the bottom of the PR.Enter "#sign-off" in a new comment. This comment indicates that you're confident the work meets or exceeds Microsoft's standards for publication, and will trigger the review process.Your PR may be selected for initial review by the PnP content team. Following PnP review, you may receive questions or requests for additional changes. You should have initial feedback from PnP review within a few business days. If you have an urgent request or need to contact the team, please mention @MicrosoftDocs/patterns-and-practices-team-pr-reviewers in your PR and someone will get back to you. After the Azure patterns & practices content review is complete, a PnP #sign-off will be added.Final review/merge is done by the PR review team. The PR team may also respond with feedback, categorized as "Blocking" (requires action from you), or "Non-blocking" (to be addressed in a future PR).

Additional resources
learn.microsoft.com internal contributor guideAuthoring templates: architecture-center-pr, well-architected-prTo contact the Azure patterns & practices team use e-mail, or @mention our GitHub team in your PR comments using: @MicrosoftDocs/patterns-and-practices-team-pr-reviewers

@ckittel - This is the message John sent by email: "i have gone through and reread this doc. It is still completely relevant with no changes i can think to make. No features released last year effect it that i am aware of. Ill make a pull request and update the date." Let me know if you want me to open a PR in the private repo to update the ms.date.
@JohnPoetzinger - If Chad requests changes, they will need to be made in the private repo (architecture-center-pr).

@agansu  Can you review the proposed changes?
fyi: @ckittel @MicrosoftDocs/patterns-and-practices-team-pr-reviewers
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#please-close
You'll want to open your change in architecture-center-pr anyway, John.


added Builder.with_materializers()

Following #877
Added the ability to add materializer nodes to the FunctionGraph at Driver build time.
Use cases:

Easier to view materializers as part of .display_all_functions()
Allows to call materializers by name with .execute(). Would allow some users to completely ignore .materialize()
Possible to combine "static" materializers at build time and "dynamic" materializers at execution time
Catch invalid dataflows earlier than dr.materialize()

Changes

Builder now accepts .with_materializers(*materializers)
Builder.build() adds materializer nodes after creating the Driver and returns the updated Driver. The logic is derived from Driver.materialize()
Builder.copy() copies the materializers

How I tested this

Added tests to check materializer nodes (savers and loaders) are properly added
test that "static" and "dynamic" materializers can be used together

Notes

each time materializers are added post_graph_construct hooks are triggered
Should be include materializers in the version hashing of the dataflow? should we treat "static" and "dynamic" differently. IMO, we might want two create two versions: one for "the dataflow transform, ignoring materializers" and one for "all nodes" since they answer different equality / diffing questions
there's duplicate logic between Builder.build() and Driver.materialize(). A better approach could be to have Driver.add_materializers() and Driver.execute_materializers(). Both Builder.build() and Driver.materialize() could call Driver.add_materializers()
Related to #713,  users need to be aware that materializers need a valid target or dependencies (type and name) to connect to.

OK, I like the API. I think the implementation is overly built towards the current way it works. From what I understand:

This builds the standard driver
This then appends the materializers
This is due to the idea of keeping the graph version consistent (right?)
It ends up calling post_graph_construct twice (once in the construction of the driver, once otherwise)
Has a final graph version with materializers

IMO this should:

Build the standard driver with the materializers
Only call it once
Have only one version

So, how would this work?
Idea:

Take the code out of the driver constructor
Put it in a static function
Make all driver parameters optional (E.G. have an internal one -- _graph)
Have there be two paths -- one if you want to construct the graph outside, and the other if you want to do it inside

Alternatively (and this is cleaner, but we have to be careful with some of the SDK stuff, or just say only use the builder/adapter API):

Create a superclass (DriverBase, that takes in graph/other info)
Move just the constructor (currently compatible) into a subclass Driver(user-facing for backwards compatibility with the non-builder API)
Have the Builder build it using the DriverBase API

Then we can put more logic in the builder. Perhaps the simplest solution might be:

Pass in materializers to the driver, default to empty (See the _ parameters
Build it in the driver constructor

I think this is the easiest, and will save on complexity.
Regarding multiple versions that is, IMO, too complex now. We should add it later?

I'm in favor of seeing if we can make it part of the constructor with this approach. That way post graph construct is only called once.


Fix Turbopack benchmark for next@canary

Description

Testing Instructions

#8421  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @timneutkens and the rest of your teammates on  Graphite


Contribution by swayam

Solved #6  at https://github.com/pheonix-official/basic-code/commit/1ef3dde33bd277b2026702f15d0f9859ca62a363