Data on emptyDir that has RAM-backed filesystem is not counted to container's memory after the container comes up from a restart

According to documentation at https://kubernetes.io/docs/concepts/storage/volumes/#emptydir:

Depending on your environment, emptyDir volumes are stored on whatever medium that backs the node such as disk or SSD, or network storage. However, if you set the emptyDir.medium field to "Memory", Kubernetes mounts a tmpfs (RAM-backed filesystem) for you instead. While tmpfs is very fast, be aware that unlike disks, tmpfs is cleared on node reboot and any files you write count against your container's memory limit.

With above statement, I understand that every data that is written to emptyDir should be counted to memory of container even after the container comes up from a restart if the data still remains in the emptyDir volume.
However, it does not happen that way on my environment.  The below info is extracted from pod describe printout:
Containers:
  fluentbit:
    Limits:
      cpu:     100m
      memory:  100Mi
    Requests:
      cpu:     50m
      memory:  50Mi
    Mounts:
      /logs from empty_dir_volume (rw)

Volumes:
  empty_dir_volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  200Gi

And the following is the info about the data stored on the container:
bash-4.4$ cat /sys/fs/cgroup/memory/memory.limit_in_bytes
104857600
bash-4.4$
bash-4.4$
bash-4.4$
bash-4.4$ ls -lh testme.log
-rw-r--r-- 1<PHONE_NUMBER>0 147M Aug 31 09:58 testme.log
bash-4.4$
bash-4.4$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           2.3G  148M  2.2G   7% /logs
bash-4.4$

I see that when the data stored into the emptyDir reaches the container limit, the container gets restarted due to OOM. But when the container comes up from the restart, and those files are still there in the emtyDir volume, the size of those are not added into the container memory.
As those files still remain in the emptyDir, I wonder who will own those files. It would be nice if you add more information regarding this matter to emptyDir volume section.

/language en

any files you write count against your container's memory limit

I thought that was true, but maybe it's wrong. I wonder if the tmpfs is now charged against the Pod rather than a specific container?

I might have done something wrong in my test. When monitoring memory of container using this watcher:
watch -n1 "kubectl top pod --container | grep fluentbit"

and on another terminal, repeatedly add a file with '5Mi' of logs into the emptyDir, I can observe the container memory is increased 5Mi after each adding; and when the memory is over the limit, I can see container restart due to OOMKilled.
That behavior seems to be aligned with the documentation.
However, one point I need to highlight here is that the memory of the container is back to normal which does not count the size of the previous files to its memory even those files are available at the emptyDir (data on emptyDir is swiped out just in case pod gets restarted)

When a container exits and leaves data in a memory emptyDir, the Pod becomes the “owner” of that data.

Perhaps you'd like to edit the issue title and description @winhvu to frame this as a request to improve that page?

When a container exits and leaves data in a memory emptyDir, the Pod becomes the “owner” of that data.

@sftim The allocated resources, request and limit of memory/CPU, to Pod are determined at container level. So, I do not quite understand which memory will be affected (increased) by those files on the emptyDir when 'the Pod becomes the owner'.

Thanks @sftim. I have updated the title as well as the ticket description. Please let me know if it is good to go or more changes is required.

/retitle Unclear / misleading docs on attribution of memory that containers write to emptyDir volumes

Hope that's useful to other folk.
/triage accepted

/sig node

/priority backlog

/remove-lifecycle stale

/remove-lifecycle stale


NotFound, message: "No such file or directory"

Launching it this way
WITNESS_CPP=[absolute path to my circom circuit] cargo build --release
build.rs has this
fn main() {
    witness::generate::build_witness()
}

However, I get
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }

Any hint why this may be happenning? Am I using the correct system variable?

Should follow build.rs in this repo


[BUG]-EssentialsRoomEmergencyContactClosure constructor null ref

Was this bug identified in a specific build version?
Essentials 1.12.8
Describe the bug
Essentials room throws a null reference exception when instantiating EssentialsRoomEmergencyContactClosure.
Stacktrace
[08:51:40.503]App 1:[room1] Error Initializing Room: System.NullReferenceException: Object reference not set to an instance of an object.
  at PepperDash.Essentials.Room.EssentialsRoomEmergencyContactClosure..ctor (System.String key, PepperDash.Essentials.Room.Config.EssentialsRoomEmergencyConfig config, PepperDash.Essentials.Core.IEssentialsRoom room) [0x0001f] in <8bcd68ebc41445c69aaeaa414a87a67d>:0
  at PepperDash.Essentials.Room.Config.EssentialsRoomConfigHelper.GetEmergency (PepperDash.Essentials.Room.Config.EssentialsRoomPropertiesConfig props, PepperDash.Essentials.Core.IEssentialsRoom room) [0x00020] in <8bcd68ebc41445c69aaeaa414a87a67d>:0
  at PepperDash.Essentials.EssentialsHuddleVtc1Room.InitializeRoom () [0x00141] in <8bcd68ebc41445c69aaeaa414a87a67d>:0

To Reproduce
Steps to reproduce the behavior:

Load standalone Essentials config with emergency object defined
Load Essentials 1.12.8
Null reference exception is thrown on startup

Additional context
Found when testing a system with a Portal-generated config using tool v1.4.0.  Looking further into Essentials, it appears the room.Emergency object is null when passed into the EssentialsRoomEmergencyContactClosure constructor.

Closing issue.  Further testing exposed issues with the Portal config tool not unmerging data correctly.  Update applied to Portal config tool, and retested using Essentials 1.12.8.


snet: make PathMetadata a struct

Make snet.PathMetadata a struct instead of an interface. Analogous to how this was done for snet.PathInterface (#3879).
The indirection with an interface is simply unnecessary.
Making this a struct, will allow to extend the PathMetadata struct quite easily: in a next PR, we'll add the latency, bandwidth, geo coordinates etc. from the "static info" beaconing extension (currently, these fields are defined in a shadow copy of PathMetadata in combinator/staticinfo_accumulator.go).
Move Interfaces to snet.PathMetadata. The Interfaces list is available exactly if the other metadata items are available, so it makes sense to bundle these.
This requires/brings some changes to pathpol.PathSet -- now the pathpol is fed directly with the snet.PathMetadata struct. This seems quite natural, as it's conceivable that the path policy would access all the various metadata items in the future.
This change also requires some minor adjustments at the call sites for the path policies.

This change is

/rebase


Better determination of FSST output buffer size

Currently, the FSST output buffer is initialized to 8 * compressed_length.  This should be safe (no FSST symbol is more than 8 bytes I think) but it is slow and excessive.  We can store the original length of the string as part of the encoded page and use that to size the output buffer exactly.

One idea is to store the original string size inside some header(maybe inside symbol table) and allocate the exact size before decompression

in our fsst implementation, symbol table and decompress output is decoupled, the user is responsible to associate which symbol table with which decompressed output, maybe we can have some code in both symbol table and decompressed output for matching,

This should be safe (no FSST symbol is more than 8 bytes I think) but it is slow and excessive.

yes, the FSST symbol is of size [1, 8]

One idea is to store the original string size inside some header(maybe inside symbol table) and allocate the exact size before decompression

That could work, I think that's fine for the FSST crate.  We always have encodings.proto too.  I don't see any big pros/cons to either approach so feel free to pick one.

ha @westonpace , I am starting to code store the original size and found a problem:
we are decoding it in decode batch size, not the original compression size, so the original size is a far overshot than `8 * compressed_length"
I checked the original implementation, they just allocate a big chunk of memory for decompression
#define FSST_MEMBUF (1ULL<<22)

---

   dstMem[0] = srcBuf[1] + (FSST_MEMBUF*(1ULL+decompress));
   dstMem[1] = dstMem[0] + (FSST_MEMBUF*(2ULL-decompress));

---

    dstLen[swap] = fsst_decompress(&decoder, srcLen[swap] - hdr, srcBuf[swap] + hdr, FSST_MEMBUF, dstBuf[swap] = dstMem[swap]);

original implementation
let me check out duckdb...

in duckdb, the decompressed values are emitted one by one and they reuse the same [decompress_buffer] (https://github.com/duckdb/duckdb/blob/18254ec5d9162db2e4aeec8159691a3b17217494/src/storage/compression/fsst.cpp#L511) of size = StringUncompressed::GetStringBlockLimit(segment.GetBlockManager().GetBlockSize());
struct StringUncompressed {
public:
	static CompressionFunction GetFunction(PhysicalType data_type);
	static idx_t GetStringBlockLimit(const idx_t block_size) {
		return MinValue(AlignValueFloor(block_size / 4), DEFAULT_STRING_BLOCK_LIMIT);
	}

public:
	//! The default maximum string size for sufficiently big block sizes
	static constexpr idx_t DEFAULT_STRING_BLOCK_LIMIT = 4096;
};

duckdb

we are decoding it in decode batch size, not the original compression size

Oh, good point.

I checked the original implementation, they just allocate a big chunk of memory for decompression

in duckdb, the decompressed values are emitted one by one and they reuse the same [decompress_buffer]

These seem like good approaches.  When the scheduler is created we can allocate one largish (64MiB?) decompression buffer.  Or maybe, during decompression we can check the size (with unlikely / cold on the "not large enough" branch) and increase as needed.
Then, after decompression, we just copy out the decompressed data into a newly allocated exact-size buffer.

I am still trying to figure out how to reuse one PageScheduler.decompression_buffer in PageDecoder, PageDecoder.decode is multi-threaded

@broccoliSpicy can you use some kind of thread local?

ha, I actually didn't know about thread_local, thank you so much @westonpace
I think our decode thread run once and gone, right? we actually want each of them have their own output buffer so they can run concurrently.
after PR#2626, the decompression performance is on a par with parquet, we can add cascading later and the file size will be less than parquet while decompression slower


chore(deps): bump

Applied mkpr on undefined
/tmp/mkpr.sh

:tada: This PR is included in version 1.10.37 :tada:
The release is available on:

v1.10.37
GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Responsive table cells not wrapping when have a colspan

Using a responsive table ( .table, .w-auto ) found that one of the TDs didn't wrap when hitting the small break point.
This forced the table to have a horizontal scroll bar and the information to be offscreen to the right.
Added the following to the td to fix it : style="white-space: normal !important; word-wrap: break-word;"

i think I am bootstrap version 4.0.0 - it was downloaded recently.

Bug reports must include a live demo of the issue. Per our contributing guidelines, please create a reduced test case via CodePen or JS Bin and report back with your link, Bootstrap version, and specific browser and operating system details.

This is a saved reply.

Closing due to lack of response. You can comment here and we can re-open the issue.
This is an automated reply


Added OS notes

Added Operating System notes

Keep up the good work @anshulnsit !

Thanks @Byte7 . Will find more resources!


FirebaseSerializer

Hello, guys.
Add please information about FirebaseSerializer to readme.

Hi Kirill,
We can definitely add some info to the docs. Was there anything in particular you're looking for?
The FirebaseSerializer works similarly to the JSONSerializer except in the way it extracts embedded records.


Added embed::mock::serial

Closing due to this https://github.com/SJSU-Dev2/libembeddedhal/issues/206#issuecomment-1120338424


🏢 Duplicate objects

Duplicate objects resulted from the Dayz mapping not removing overlaying objects.

Area 51 towers.

Mapping removed temporarily.


Added more aliases from Bukkit's Essentials

I added a few more command aliases from Bukkit's Essentials, to make the commands more familiar for users of Bukkit's Essentials.

Thanks but... Why are you using {} on alias?
I've never used it, does it work at expected?
If it doesnt, please change it and I merge.

The WorldEdit plugin uses {} on aliases. It does works as expected. Without them, only the first alias for a command works.

I will merge then, thanks for the explanation and the changes.


Add create-meta subcommand

This adds a command to complete the whole pipeline from the command line.
I have added an INI parser to set the specs. An INI file is not ideal, because it has not nesting. However, it is easier to work with than JSON/YAML files, for which you can easily create parsing errors.
fixes #143

Looks good! Let's merge. In the documentation, we might want to include an example config file. Actually, we can now create CLI documentation yeah?

I have merged it! There actually already is some CLI documentation, but I'm working on documenting this PR as we speak :)


svg stream not closed in REPL

This problem only occurs when writing svg file from the running REPL. If the session is closed the svg file is closed correctly.
I'm not sure it I'm supposed to deal with the opened file by Cairo myself?
 Afaics when closing the REPL the destroy operation for the surface is called via finalize. It's not documented, but it looks like flush+finish are called within that also.

Thanks, that solved my problem.


Cannot generate a safe runtime search path for target opencv_sfm

CMake Warning at /home/ren/Compile/OpenCV/opencv-3.1/opencv-master/cmake/OpenCVUtils.cmake:767
(add_library):
Cannot generate a safe runtime search path for target opencv_sfm because
there is a cycle in the constraint graph:
 dir 0 is [/usr/local/cuda-7.0/lib64]
 dir 1 is [/home/ren/Compile/OpenCV/opencv-3.1/opencv-master/build/lib]
   dir 2 must precede it due to runtime library [libtbb.so]
 dir 2 is [/usr/local/lib]
   dir 1 must precede it due to runtime library [libtbb.so]

Some of these libraries may not be found correctly.
Call Stack (most recent call first):
/home/ren/Compile/OpenCV/opencv-3.1/opencv-master/cmake/OpenCVModule.cmake:783
(ocv_add_library)
/home/ren/Compile/OpenCV/opencv-3.1/opencv-master/cmake/OpenCVModule.cmake:730
(_ocv_create_module)
/home/ren/Compile/OpenCV/opencv-3.1/opencv_contrib-master/modules/sfm/CMakeLists.txt:108
(ocv_create_module)

CMake options? version?
Or disable BUILD_SHARED_LIBS.


Can't continue deduplication with the deduper

Currently, if the deduplication breaks you can load it up again from disk. However, you can't no longer continue to write to the existing mask saved on disk as it only appends to it.
A potential solution is to move the "output_dir" (potentially call it save dir) to the deduper.init instead of the .dedupe method. You can still keep the output dir in the dedupe method for writing deduped files.

Fixed in https://github.com/centre-for-humanities-computing/danish-foundation-models/pull/83.


Raise exceptions instead of using sys.exit om setup.py

This is not really a bug but using sys.exit in setup.py breaks some automated tools that inspect the package and/or build packages from it.
Would you be open to a PR that changes them to exceptions instead?

Would you be open to a PR that changes them to exceptions instead?

Sure, I have no issues it the behavior is the same.


[WIP] Move gce.sh & related scripts to tools.

Fixes #1286
I've already moved gce.sh to the build-tools repo such that scope no longer needs to checkout weave to run the integration test.  This PR removed the scripts from weave and has it use the shared ones in tools, and hopefully is the last PR in the set.

Wrong branch again.  Need to update my remotes!


allow using non-dimension coordinates in polyfit

polyfit currently only allows to fit along a dimension and not along a non-dimension coordinate (or a virtual coordinate)
Example:
da = xr.DataArray(
    [1, 3, 2], dims=["x"], coords=dict(x=["a", "b", "c"], y=("x", [0, 1, 2]))
)

print(da)

da.polyfit("y", 1)

Output:
<xarray.DataArray (x: 3)>
array([1, 3, 2])
Coordinates:
  * x        (x) <U1 'a' 'b' 'c'
    y        (x) int64 0 1 2
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-80-9bb2dacf50f7> in <module>
      5 print(da)
      6
----> 7 da.polyfit("y", 1)

~/.conda/envs/ipcc_ar6/lib/python3.7/site-packages/xarray/core/dataarray.py in polyfit(self, dim, deg, skipna, rcond, w, full, cov)
   3507         """
   3508         return self._to_temp_dataset().polyfit(
-> 3509             dim, deg, skipna=skipna, rcond=rcond, w=w, full=full, cov=cov
   3510         )
   3511

~/.conda/envs/ipcc_ar6/lib/python3.7/site-packages/xarray/core/dataset.py in polyfit(self, dim, deg, skipna, rcond, w, full, cov)
   6005         skipna_da = skipna
   6006
-> 6007         x = get_clean_interp_index(self, dim, strict=False)
   6008         xname = "{}_".format(self[dim].name)
   6009         order = int(deg) + 1

~/.conda/envs/ipcc_ar6/lib/python3.7/site-packages/xarray/core/missing.py in get_clean_interp_index(arr, dim, use_coordinate, strict)
    246
    247     if use_coordinate is True:
--> 248         index = arr.get_index(dim)
    249
    250     else:  # string

~/.conda/envs/ipcc_ar6/lib/python3.7/site-packages/xarray/core/common.py in get_index(self, key)
    378         """
    379         if key not in self.dims:
--> 380             raise KeyError(key)
    381
    382         try:

KeyError: 'y'

Describe the solution you'd like
Would be nice if that worked.
Describe alternatives you've considered
One could just set the non-dimension coordinate as index, e.g.: da = da.set_index(x="y")
Additional context
Allowing this may be as easy as replacing
https://github.com/pydata/xarray/blob/9c85dd5f792805bea319f01f08ee51b83bde0f3b/xarray/core/missing.py#L248
by
index = arr[dim]

but I might be missing something. Or probably a use_coordinate must be threaded through to get_clean_interp_index (although I am a bit confused by this argument).

I did encounter this when writing up polyfit! I decided to discard that for the time being, but I believe changing get_clean_interp_index would the best way to fix this.
One would also need to modify polyfit sligthly, though. Here:
https://github.com/pydata/xarray/blob/9c85dd5f792805bea319f01f08ee51b83bde0f3b/xarray/core/dataset.py#L6064-L6075
When the non-fitted dimensions are stacked together, dim should be renamed to the real dimension of the variable.
I will not have time to make a PR, but it should be quite simple, if anyone has time!


Vector missmatch sqlite (when trying to use TTS)

Describe the bug
error when trying to use text to speech
To Reproduce
talk in discord voice channel asking for a response
Expected behavior
soundfile to be generated and played as  a reply
Screenshots

Additional context
It was working yesterday and i dont believe i've changed anything related

deleted my db now it works


sinkv2(ticdc): add more metrics

What problem does this PR solve?

Issue Number: ref https://github.com/pingcap/tiflow/issues/5928
What is changed and how it works?

Add table sink metrics
Add Kafka producer metrics

Please check out https://github.com/pingcap/tiflow/pull/7015#issuecomment-1240318783.
Check List
Tests

No code

Questions
Will it cause performance regression or break compatibility?
No
Do you need to update user documentation, design documentation or monitoring documentation?
No
Release note
None

Codecov Report

Merging #7015 (6c69d37) into master (9398176) will decrease coverage by 0.0473%.
The diff coverage is 59.3533%.

Additional details and impacted files

Flag
Coverage Δ

cdc
67.1072% <59.5843%> (-0.0888%)
:arrow_down:

dm
51.8719% <25.0000%> (-0.0760%)
:arrow_down:

engine
62.3241% <60.4316%> (+0.0619%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #7015        +/-   ##
================================================
- Coverage   59.8253%   59.7780%   -0.0473%
================================================
  Files           791        790         -1
  Lines         90221      90550       +329
================================================
+ Hits          53975      54129       +154
- Misses        31498      31647       +149
- Partials       4748       4774        +26

/merge


Not such a great idea after all?

Hello! Can you comment on why you decided you don't like this approach anymore (as mentioned in your README)? I need to do the same thing.

Someone more privy to the inner-workings of webpack suggested that doing things in this way would cause weird confusing problems with caching and how webpack determines files have changed at some point.

Ahh.. sounds like it could lead to weird and wonderful behaviour later on. Thanks for the heads up.


messages lost

I see a ton of
zmq 866 messages lost +133ms
zmq 227 messages lost +1s
zmq 534 messages lost +152ms
zmq 205 messages lost +128ms
zmq 523 messages lost +7ms
zmq 976 messages lost +136ms
zmq 996 messages lost +329ms
zmq 425 messages lost +495ms
zmq 721 messages lost +4ms
zmq 1015 messages lost +147ms
zmq 486 messages lost +146ms
zmq 157 messages lost +294ms
zmq 1072 messages lost +478ms
zmq 624 messages lost +4ms
zmq 1178 messages lost +141ms
zmq 818 messages lost +145ms
zmq 824 messages lost +340ms
zmq 301 messages lost +166ms
zmq 231 messages lost +139ms
zmq 739 messages lost +3ms
zmq 856 messages lost +126ms
When its sycning up, I assume this is handled and is just for debug purposes or are the indexes incomplete if this appears?

@MatthewKingDev it is intentional,  and is only for triggerring the resync process.
It does not impact on the completeness of the indexes in any way.

Perfect thanks!


Update setup.cfg to 6.1.0

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

Project coverage is 97.36%. Comparing base (c39fcc5) to head (aeb5af9).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #499   +/-   ##
=======================================
  Coverage   97.36%   97.36%
=======================================
  Files           9        9
  Lines         947      947
=======================================
  Hits          922      922
  Misses         25       25

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


⚠ Bofrost.at has degraded performance

In bd0cff0, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1043 ms

Resolved: Bofrost.at performance has improved in 3302fa1.


[WIP] Implement hoverxref for floating tooltips (definitions)

Work in progress. Not for review.

[X] Partially closes #2284; related comment
[ ] I am familiar with the contributing guidelines
[ ] ~Tests added~
[ ] Updates entries in docs/sphinx/source/reference for API changes.
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[ ] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[ ] Pull request is nearly complete and ready for detailed review.
[ ] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

@RDaxini I suggest adding that sphinx plugin as a new doc dependency here: https://github.com/pvlib/pvlib-python/blob/main/pyproject.toml#L57-L69

You can see me struggling to find out where to add it 😂
I was trying to find to find where doc list of dependencies is but failed... then got a bit muddled up with other random attemps. I should have just asked sooner... 😂
Thanks!

I like it!  As we eventually make wider use of :term: throughout the docs, I think this will be a really nice feature.
I suppose we should consider enabling it for more than just :term:.  For example, it should also work for :func: and friends.  I think I'd lean towards enabling it just for :term: for now, but I wonder what other people think.

I suppose we should consider enabling it for more than just :term:.  For example, it should also work for :func: and friends.  I think I'd lean towards enabling it just for :term: for now, but I wonder what other people think.

What drawbacks would there be to enabling it foe everything immediately? I think I'm leaning that way

I guess the downside I see is that function docstrings are much larger and thus more "intrusive" as a pop-up.  I guess there's no harm in trying it out in this PR just to see what it's like!

We don't have any instances of :func: :class: or :meth: , right? Are these always :py: ... ?
Quick scan of the results of `git grep -n -F ":func:" (and for :meth:, and :class:) suggests so
Not sure if there is a way to generate tooltips for our citations since we don't use bibtex with the :cite: role.

Looks like :term: and :ref: are working, but no luck with :py:func: yet. e.g. see the warning in irradiance.perez. Any ideas?

This improvement is super :D

Are these always :py: ... ?

Yes. That prefix is for the domain https://www.sphinx-doc.org/en/master/usage/domains/index.html
Just in case someone want to rewrite pvlib in Julia or Rust, I guess we can keep using it even thou it's on by default.
My eyes hurt after seeing this:

Issue reported at https://github.com/readthedocs/sphinx-hoverxref/issues/231
Maybe you can do something along https://github.com/pybamm-team/PyBaMM/pull/3083
Personal taste of adding the style in a separate CSS file. At first glance, it should work as they also use pydata-sphinx-theme, and the main problem is that sphinx-hoverxref can't deduce the exact names of the colours used by each style.
Mitigation for my fellas at https://darkreader.org/

To do:

[ ] dark theme compatibility
[ ] (potential) tooltip sizing limits

Let me know if there's anything else or if you have any thoughts on the items above

[ ]  dark theme compatibility

do I need to create a new .css file to contain something along these lines: https://github.com/pybamm-team/PyBaMM/pull/3083/files#diff-faffc787a692ac8c3c013159ca171e14a027d0417bdec68d8b3624dbb4aee0f0R153-R169
I see we have a couple of .css files in sphinx\source\_static but not sure how to interpret them. Can someone point me in the direction of an online source to help me understand this aspect of pvlib?

@RDaxini you are right in all your points.
Specifically, all CSS files get sent to the browser and it applies the rules/styles in them. It would be certainly equivalent to add the same styles in an existing file, but I think it's more maintainable if you add that to another file.
Documentation in conf.py
Sphinx docs: https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_static_path
Just in case, although you probably won't need to learn much about CSS, this is my go-to sources of web documentation

https://www.w3schools.com/css/default.asp
https://developer.mozilla.org/en-US/docs/Web/CSS

And if you want to play a bit, you can start by modifying the webpage live through your browser inspector (usually opens from Ctrl+Shift+C, at least in chrome and firefox).

A general comment: CSS tweaks target parts of these packages which are not really part of the "public API" and often stop working when we update to newer versions.  There is a place for CSS tweaks in our docs, but it's best to keep them minimal.  It would be much better if it could be fixed upstream instead of here (nudge @echedey-ls :P).

dark theme compatibility

What do you guys think about merging this PR the way it is now, and looking into fixes for the dark mode thing in a follow-up?  If the dark mode problem can be fixed easily then great, but I think it is acceptable (even if suboptimal) the way it is now too.

(potential) tooltip sizing limits

What is this one about?

What do you guys think about merging this PR the way it is now
I agree. @RDaxini if you want I could have a try at it if you haven't started yet, thou if you wanna learn a bit about web development it's definitely a manageable task.

often stop working when we update to newer versions
Yes, I overlooked that. 'sphinx-hoverxref' in pyproject.toml should get pinned to whatever version you are using in your environment @RDaxini .

It would be much better if it could be fixed upstream instead of here (nudge @echedey-ls :P).
Haha, just another side-contribution to the lengthy list xD

What do you guys think about merging this PR the way it is now, and looking into fixes for the dark mode thing in a follow-up? If the dark mode problem can be fixed easily then great, but I think it is acceptable (even if suboptimal) the way it is now too.

+1

(potential) tooltip sizing limits

What is this one about?

I think it is possible to limit the size of tooltips, for example if we thought that the tooltip for a page cross-reference was too large, we can implement a size restriction. I think the current sizing is fine, but it's an option if anyone feels strongly otherwise.
Might be easier to decide on these details after an initial implementation and increased used across the docs. Goes back to your first point about merging this first and then considering further developments.

@echedey-ls thanks, yeah I am quite interested, but I guess it would take me longer and I might need some extra help 😅  If you guys want to get this fixed sooner, probably best someone else takes over and I can at least try to follow the PR, but otherwise I would definitely like to give it a go 😅


fix the error by adding colors to the report side

is there a better way to co-author a pr?  Maybe only if there is a branch in the main repo and not forks

I'm not sure if there's a better way or not.


Use rubocop-ast SimpleForwardable

Introduced in https://github.com/rubocop/rubocop-ast/pull/312
Also see https://github.com/rubocop/rubocop/pull/13175
I performance tested this change and found no significant difference, which makes sense since it's basically the same thing.
This is pretty much a revert of the previous PR, changing Forwardable to SimpleForwardable (except for one class, which just didn't use it so I left that out)
cc @marcandre

Looks good. Thanks!

Nice, thank you ❤


Improve support for self-hosted clusters

PR created by @ThisIsQasim

IP forward enablement is working

@ThisIsQasim here is an example of enabling ip_forward:
apiVersion: vpn.example.com/v1alpha1
kind: Wireguard
metadata:
  name: test-new
spec:
  enableIpForwardOnPodInit: true
  mtu: "1380"


How can I add Error message when exceeding the product quantity in Mini cart?

I want to display an error message when the customer exceeds the limit of the product quantity in the mini cart.

I wonder if we can update the returned object to include the variant's current quantity. I know {{ cart_item.variant.inventory_quantity}} exists.


VS Stopped Responding issue

Telemetry reports two instances of VS gold bar of death (VS has stopped responding. Consider disabling extension Model Builder.... )
Per David (thank you David!) here is additional info on our failures...
#1 https://prism.vsdata.io/failure/?query=c=Microsoft.ML.ModelBuilder&eventType=uidelay&failureType=dualdirection&failureHash=57b6e535-7540-e8ba-668b-126199635a13

On mouse up you are blocking on a async task that is taking a long time to return. This has a 75th percentile time of 1.6 seconds.

#2 https://prism.vsdata.io/failure/?query=c=Microsoft.ML.ModelBuilder&eventType=uidelay&failureType=dualdirection&failureHash=a6f10a79-d19a-b580-750f-036b760bc54c

Here you have async context but you’ve switched to the UI thread to call IVsPackageInstaller. While there’s no an async version of this API, this API can be called off UI thread. This has a 75th percentile of 16 seconds.

Issue #1 was fixed by Jake about 10 months ago. See this PR.
GetComputeSpecifications doesn't exist anymore. There is only an async method.

Fixed via this PR - https://github.com/dotnet/machinelearning-tools/pull/1414


Explain why a FK needs indices on both sides of the relationship

See discussion here:
https://forum.cockroachlabs.com/t/v2-0-alpha-20180129-foreign-key-column-requires-index/1326/2

Closing as out of date


SubjectAlternateName protobuf message omits IP address names

Title:
SubjectAlternateName protobuf message omits IP address names
Description:
The SubjectAlternateName protobuf introduced in #4566 omits the IP address alternate names. These should be included for completeness and consistency.

not stale. Will work in coming weeks

@dio Thanks for adding help wanted. I meant to do it - but busy with other stuff :-)


Updates to README and gitignore

Add notes about NAS and GMAO Desktops for module use.
The .gitignore should ignore build and install dirs of any name (mainly the Debug ones from parallel_build.csh

Added some changes to parallel_build.csh as well. The Debug switch was broken


observer 2.2.6 weather stations send garbage at the end of the query string

GET /data/?MAC=11:22:33:44:55:66&stationtype=OBSERVERIP2_V2.2.6&dateutc=2023-12-07+01%3A07%3A10&tempf=35.96&humidity=81&windspeedmph=3.58&windgustmph=10.74&maxdailygust=14.76&winddir=30&winddir_avg10m=16&uv=0&solarradiation=0.00&hourlyrainin=0.000&eventrainin=0.000&dailyrainin=0.000&weeklyrainin=0.378&monthlyrainin=0.677&yearlyrainin=9.638&totalrainin=9.638&battout=1&battrain=1&tempinf=69.08&humidityin=29&baromrelin=29.808&baromabsin=29.247&battin=1&temp2f=35.96&humidity2=81&batt2=1&lightning_day=9&lightning_time=1701904871&lightning_distance=14&batt_lightning=0&pm25=38.0&pm25_24h=29.1&aqi_pm25=107&aqi_pm25_24h=87&batt_25=1 HTTP/1.1
Host:
Connection:close
User-Agent:OBSERVERIP2
The information in bold is tacked on to the observer response and therefore confuses your addon.
"HTTP/1.1 Host: connection:close User-Agent:OBSERVERIP2" is all garbage data added to the end of the response to the observer 2.
Please modify your addon to ignore everything after batt_25=1.

I got this hack but it only works once then closes.

Please report this issue to Ambient Weather, they are sending an invalid GET request.
I tested this locally and what happens is the add-on gets a value of 1 HTTP/1.1 Host: Connection:close User-Agent:OBSERVERIP2 for the batt_25 value, which it then tries to convert to a number.
I'll have to do some thinking to see if there's a way to handle their mistake on my end.

A fix for this is now released.

In the debug area can you add the actual data received by your plug in?  It still isn't logging, and I feel like there still might be an extra space or misc symbol still present.

If you set VERBOSE=true either via an environment variable or through the HA add-on UI it already logs the entire received request when it gets one. If that isn't showing anything then something is failing before my code even gets a chance to see it.

I think your right about failing before your code gets a chance to see it.  I filed a support request with ambient weather to see what they say.

I pushed a new release that adds some increased logging. You can now enable "http" level logging in the configuration for the add-on and that should show in the log the full GET request received by the underlying webserver before I get to process it.

The data doesn't even reach your program.  I enabled http logging and nothing get logged.

You would have to capture the data from a raw connection without a web server in the way.


React-Codegen.modulemap not found after upgrading to v0.75.2

Environment
react-native -v: v0.75.2
node -v: v20.12.1
npm -v: 10.5.0
yarn --version: Not in use
xcodebuild -version: Xcode 15.4 Build version 15F31d

Steps to reproduce the bug

Clone the affected repo from here
Install the dependencies and start the project with nom start
Open the MacOS Xcode project in the macos folder
Try building the project in Xcode. You should get an error.

Expected Behavior
No response
Actual Behavior
In Xcode I get this error:
module map file '/path/to/chronos-app/macos/Pods/Headers/Public/React_Codegen/React-Codegen.modulemap' not found

I guess there is some kind of package from RN missing?
Reproducible Demo
No response
Additional context
To get the app working again after upgrading, I had to do some adjustments to the Podfiles. I also updated the Gemfile. I did that by creating a new RN macOS project and copying the respective files from the newly generated project to mine. I did have to remove a line from the macOS Podfile that disabled flipper (:flipper_configuration => flipper_config), so this may have something to do with it.
The changes that I did to upgrade can be seen in this commit.

I found the issue!
The React Codegen modulemap folder used to be under this path:
"${PODS_ROOT}/Headers/Public/React_Codegen/React-Codegen.modulemap\"

But has been renamed from React_Codegen/React-Codegen.modulemap to ReactCodegen/ReactCodegen.modulemap, so this path is now correct:
"${PODS_ROOT}/Headers/Public/ReactCodegen/ReactCodegen.modulemap\"

So  I had to adjust my Swift flags.
The changes that I did can be found here, although only macos/Chronos.xcodeproj/project.pbxproj is where the party is at.

Sorry, I totally missed this. Glad you found a fix!

Sorry, I totally missed this. Glad you found a fix!

No worries! I should have just checked the path before creating this issue 😅


switch to 'cross-fetch' instead of 'request'

Replaces request with cross-fetch, and isomorphic fetch library

The RequestOptions type is a mix of the browser and node-fetch options, so that server-side code can set things like the agent for keepalive, but it should have no effect in browser code
The lodash dependency was removed from the thrift-server-core library, because all it was used for was doing "deep merges" on the client, which weren't needed. Instead, a new function to merge together request options was added, with special logic for the Headers values (which can't utilize object spread).
The response.arrayBuffer() function is used to get an ArrayBuffer and convert the binary response into a Node Buffer, which is what the generated code expects to use when sending requests through the connection. We'll need to polyfill that with Webpack, but it should be just fine.

Removed all uses of the url.parse and url.format deprecated functions and replaced them with the WHATWG URL API
Fixed a number of tests and cleaned them up with the right response types

Looks good! just some minor questions.

Thanks for reviewing!

Sorry for the slow review. Thanks for making these changes! It looks like there's a lot of good common-sense changes.

Thanks for reviewing!

I'm not familiar with cross-fetch but I looked at it for a few minutes. Is it fair to say that it's a pretty small library, and it just proxies through to either a node implementation or a browser implementation depending on where it's running?

Yep, it just packages a browser implementation that uses the fetch library and then calls node-fetch when it's running on the server. See https://github.com/lquixada/cross-fetch#how-does-cross-fetch-work

I'm going to merge so that I'm not blocked on the webpack 5 front anymore, but if anyone has any more comments or suggestions, I can address those in a separate PR. Thanks!


Bump Sprig to 2.16

https://github.com/Masterminds/sprig/releases/tag/v2.16.0
Just a placeholder ticket as a reminder :)

@technosophos :D

Just opened #4652


Manual Installation

CocoaPods and Carthage are awesome tools and make our life really easier, but there are some devs who still don't know how to use them.
It would be cool to add the Manual installation guide in your README.md. You can take a look at my iOS Readme Template to see how you can do it.

Yeah, of course not everybody is Cocoapods/Carthage user, but as there is a Source folder in the repo, so I thought that would be enough.
Anyway, I like the idea of having a Manual installation section. I'm gonna do it now

@poolqf I'm glad you changed your idea. I remember when I was new into iOS programming and those readmes without a Manual Installation always got me lost.
I still see nowadays many libs with people opening issues saying that they don't know how to use CocoaPods or Carthage and they needed help to install it
Thanks! 😄


add support for varying width null terminator for (get/put)ZeroTerminatedByteArray()

related to https://github.com/jnr/jnr-ffi/issues/30

Quick comment: Please do PRs using your own branches, rather than using your copies of existing branches. I guess the idea is that existing branches, and especially master, should never have unapproved commits to avoid confusion across forks.
https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request

Marking for 2.0 as I think that will be the logical leap forward with the native binary. We will build in fallbacks to old behavior when the binary has not been updated, and build for as many platforms as possible whenever it changes, but we need to be able to move the native bits forward.

anything to be done from my side ?

I was pinged today by @demon36 and would like to revisit this.
The problem then, as it is now, is making this change when we do not have access to all native platforms to easily rebuild the jffi stub. If we can do this in an incremental way, falling back on old logic when the binary for a given platform has not been rebuilt, it would mean we can start supporting this feature on at least some platforms.
The alternative is to fix the build/platform support problem and get automated builds of as many platforms as possible with other platforms awaiting assistance from the community.


Editor: Cannot save a Siddhi App which doesn't include @App:name() annotation

Description:
$subject. This does not produce any errors. However, this the Save to Workspace dialog does not close either.
NB: when the /@App:name('')/ is added inside a comment, the Siddhi app is saved with the first line changed to  @App:name('') /*   */
Suggested Labels:
Editor, Bug
Suggested Assignees:
@erangatl
Affected Product Version:
OS, DB, other environment details and versions:
SP 4.1.0
Steps to reproduce:

Go to http://localhost:9390/editor
Open a new file
Add a siddhi app without @app:name()
Try to save

Related Issues:

This is fixed in new 4.2.0 beta version. Hence closing the issue.


Still getting Error: StageName cannot be updated

Although Issue #168 is the only issue referencing this error and says it is closed, I am still getting this today.  It seems to be somewhat intermittent and I do NOT see the other stages called "Stage" referenced in some of the comments.
I have a pretty simple CFN with SAM API functions.  The API Gateway, Deployment, and Stage, however, were all pure CFN because I needed advanced functionality related to the gateway.  Some changes allow me to update, but the recent change which wants to update all of the functions is now continually giving an error updating the API Gateway Deployment with "StageName cannot be updated".  No changes were made to the Gateway or anything related other than the functions themselves

@pkordes I'm sorry you're experiencing this issue. Can you provide a sample template and detailed steps to reproduce this issue so we can investigate further?

Closing due to no response

I am getting the same error. Here is part of the template:
Deployment:
Type: AWS::ApiGateway::Deployment
Properties:
RestApiId: !Ref ApiGateWayRestApi
The template is already deployed, and a stage already exists. I made some changes to AWS::ApiGateway::RestApi and I am just trying to run the template using SAM, and it fails with the error - "StageName cannot be updated"

@suraj-kc-idexx SAM makes deploying and updating API resources easier if you use a AWS::Serverless::Api resource.
Here's a working example: https://github.com/awslabs/serverless-application-model/blob/develop/examples/2016-10-31/api_resource_policy/template.yaml
If you use the AWS::Serverless::Api resource, SAM will generate AWS::ApiGateway::RestApi, AWS::ApiGateway::Stage, and AWS::ApiGateway::Deployment resources for you.

Please note that the issue is the error that occurs when updating with no
explanation and no recourse.  I ended up giving up and working around the
issue by removing SAM altogether and just using pure Cfn.  There is
absolutely a bug here that SAM is behaving differently on update per the
original ticket and Suraj's experience as well.  Unfortunately, I could not
afford to wait for a response and had long since torn down the
infrastructure having the issue.  I urge you to work with Suraj if the
infrastructure is still available to see this error in action.
On Fri, Sep 27, 2019 at 1:46 PM Keeton Hodgson<EMAIL_ADDRESS>wrote:

@suraj-kc-idexx https://github.com/suraj-kc-idexx SAM makes deploying
and updating API resources easier if you use a AWS::Serverless::Api
resource.
Here's a working example:
https://github.com/awslabs/serverless-application-model/blob/develop/examples/2016-10-31/api_resource_policy/template.yaml
If you use the AWS::Serverless::Api resource, SAM will generate
AWS::ApiGateway::RestApi, AWS::ApiGateway::Stage, and
AWS::ApiGateway::Deployment resources for you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/serverless-application-model/issues/997?email_source=notifications&email_token=ABORAQLHGRN74MA5242BZKLQLZBGRA5CNFSM4H3ALDAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7ZT7GY#issuecomment-536035227,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABORAQOM7JIRX5OTS5SNFGDQLZBGRANCNFSM4H3ALDAA
.

I am sorry you are facing this error and you have to move away from SAM. It really helps us understand better if you could post the full template here. From the template snippet posted in https://github.com/awslabs/serverless-application-model/issues/997#issuecomment-534614788 it seems like they were not using Serverless resources, so SAM directly passes everything onto CloudFormation.


Replication working

Library uses ipfs-pubsub-room to broadcast the root store address to other nodes (we are interested the remote server receives the messages and open the orbitDB database. Local ipfs nodes don't poll for messages)
Server endpoint added

(For the server code, take a look at the 3box-pinning-server repo)

@oed can you help me figure out what's wrong with the tests? maybe some things will need to change

Thanks @c-castillo! The branch was a bit weird for some reason, so I squashed the commits. Also added tests for the pubsub stuff and did some cleanup.

Nice! approach seems to makes sense to me. I tried running the example from two different servers, and everything seems to work nicely. Noticed a bit of code comments that look like they will be resolved later. Is this the first approach? will there be other approaches later? or what are the improvements and concerns for later?

@zachferland I think we need to add some things to this approach where the pinning server tells the syncing client how many entries it has. It should also tell the client when it has finished replicating the db. This way we can get more security in that the replication is actually taking place as it should (and recover if it hasn't)


Aligned the logo and the title of the PathSphere

Issues Identification

Closes: #318

Description
Summary

This pull request addresses the misalignment issue of the PathSphere logo on the homepage by adjusting the CSS properties responsible for layout and positioning.

Details

Adjusted the logo class to ensure it is centered and properly spaced.
Changed the font size and type for both the logo and title to enhance readability and match the overall design theme.
Verified the alignment and font changes through screenshots, confirming that the UI looks consistent across different devices and screen resolutions.

Types of Changes

[X] Bugfix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] My changes do not break the current system and pass all existing test cases
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

Screenshots

Additional Information
N/A

Can you add gssoc-ext and hacktoberfest-accepted lable

last warning


Resetting to origin pod, except for an iOS7 check.

add the other check back in too.

Updated.

:shipit:

:shipit:


Create Posts “allah-is-glorious”

Automatically generated by Netlify CMS

👷 Deploy Preview for benevolent-pika-f5fbe0 processing.

Name
Link

🔨 Latest commit
4fbac35c6f97073847717457b137dcb84e15bc91

🔍 Latest deploy log
https://app.netlify.com/sites/benevolent-pika-f5fbe0/deploys/6360dc97c464120009b11ed3


feat: update iOS Firebase SDK from 7.3 to 7.11

Description
Bumps the firebase ios sdk from 7.3 to 7.11
Related Issues
#5034
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (melos run analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

You've linked this PR as the related issue, was there actually a related issue? Otherwise can you give more detail on what the build issue was? Thanks

updated to the correct related issue.
the firebase sdk below 7.6.0 defines TARGET_OS_WATCHOS but xcode 12.5 uses TARGET_OS_WATCH.
"The 'TARGET_OS_WATCHOS' is not defined was fixed in the official Firebase iOS SDK. It should be TARGET_OS_WATCH instead of TARGET_OS_WATCHOS."

Am fixing Remote Config CI in #5901 - will update this PR once fixed.


doc: update by_contra' docs

false -> False (we're talking about the Prop, not the Bool).
begin .. end -> by ...
Remove obsolete comment about push_neg not being implemented. (It landed in #344).

bors merge


Testcontainers

The version should be the only thing passed to the container object.
LocalStackContainer localstack = new LocalStackContainer("localstack/localstack:2.0.0");

It should look like this,
LocalStackContainer localstack = new LocalStackContainer("2.0.0");

Hi, the recommended way is to pass the full image name. why? custom images based on localstack/localstack:2.1.0. But, I noticed it should ve DockerImageName.parse("localstack/localstack:2.1.0") instead

I have just raised https://github.com/localstack/docs/pull/660

#660 has been merged. This issue can be closed.


exec.Jar never defined: exec.Jar = base64.StdEncoding.EncodeToString([]byte(code))

https://github.com/openwhisk/openwhisk-wskdeploy/commit/34bcfc6b2d46fe055b018a3931371b13682b3d1f
@lzbj The commit you did and merge has an issue.
exec.Jar = base64.StdEncoding.EncodeToString([]byte(code))
Jar is not available in exec, and Jar is never used anywhere. Please add tests to the changes you add. Otherwise we cannot secure the quality.
Thx.

@lzbj I have removed this line of code in my PR: https://github.com/openwhisk/openwhisk-wskdeploy/pull/199. Thanks to the integration test in it. Otherwise, I would not even know the error.

tks, @houshengbo , please open an issue to openwhisk cli if you think it's a issue, the code is from go cli, it's not CI test.


Version update for december release

Planning to release following two for azure-core
com.azure:azure-core 1.0.0 (GA)--> 1.1.0
com.azure:azure-core-http-netty 1.0.0(GA)  - > 1.1.0

What about the versions in the readmes? Don't we need to update those as well?


associativity of lambda operator not mentioned

In the section of the C# language reference that discusses operator associativity, there is no explicit mention of the lambda operator.  I had to search long and hard before I finally found a Microsoft web page that explicitly stated that the lambda operator is right associative.
Mark S.

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

ID: 7eeac581-6235-2192-d909-e7fe3d21197f
Version Independent ID: 9d8e2a57-1c18-8cba-9bd4-eef546fe2dcb
Content: C# operators and expressions - C# reference
Content Source: docs/csharp/language-reference/operators/index.md
Product: dotnet-csharp
Technology: csharp-language-reference
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Thanks for writing this up @markshyn We'll get this fixed.  The description you wrote includes the edit needed, so I'll add the "up for grabs" label for anyone that wants to contribute a fix before we make the c hange.


Vite and Docker

Describe the bug
vite and docker dont seem to work well together every time i develop with both the browser reloads every minute.  The browser reloads  up to five time per initial load . Also the server crashes at random times during development .
Reproduction
https://github.com/louiss0/vue-2-template
System Info
docker-desktop 3.35

Used Package Manager
npm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/vue-next instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.

@louiss0 's description maybe needs some editing, to be reproducible.
I'm also setting up Vite HMR with Docker Compose.  The part where it still fails is HMR - I just don't get any changes to the browser, if Vite is being run under Docker. If I run it natively, HMR works like magic.
This issue: Vite hmr does not work in Docker was specifically about HMR but is now closed.
Want to help solving these issues. My work is currently uncommitted, but will be available and reproducible soon.

It still without solution?

I had the same problem and was able to fix it by setting a custom HMR port and exposing that port from the docker container.

Set Vite's server.hmr.port config option to the port you want to use for HMR:

export default defineConfig({
  server: {
    hmr: {
      port: 3010,
    },
  },
  // other options...
})

Expose the HMR port when running the docker container: (here I'm using docker-compose)

docker-compose run \
  -p 3000:3000 \       # my dev server port (not needed if you're not using port 3000)
  -p 3010:3010 \       # the HMR port
  webservice \
  yarn dev

Thanks I'll try it
On Tue, Nov 30, 2021 at 10:57 PM Josephus Paye II @.***>
wrote:

I had the same problem and was able to fix it by setting a custom HMR port
and exposing that port from the docker container.

Set Vite's server.hmr.port config option to the port you want to use
for HMR:

export default defineConfig({
server: {
hmr: {
port: 3010,
},
},
// other options...})

Expose the HMR port when running the docker container: (here I'm
using docker-compose)

docker-compose run
-p 3000:3000 \       # my dev server port (not needed if you're not using port 3000)
-p 3010:3010 \       # the HMR port
webservice
yarn dev
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-983261927, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6IKXSJ7ZTR6PQAEPKDUOWMI7ANCNFSM47ZSB7BQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks @JosephusPaye ❤
In my case I was also overriding the host with <IP_ADDRESS> so I had configure it too :
export default defineConfig({
  server: {
    hmr: {
      host: '<IP_ADDRESS>',
      port: 3010,
    },
  },
  // other options...
})

Thanks, I'll check it out.
On Thu, Dec 16, 2021 at 7:17 PM Mickaël @.***> wrote:

Thanks @JosephusPaye https://github.com/JosephusPaye ❤
In my case I was also overriding the host with <IP_ADDRESS> so I had configure
it too :
export default defineConfig({
server: {
hmr: {

  host: '<IP_ADDRESS>',

  port: 3010,

},

},
// other options...
})
—
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-996296861, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6PWJLFZEMPW6V6MKMTURJ6R3ANCNFSM47ZSB7BQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

It's hard to "take action" on this issue as it's mostly an issue with Vite's behaviour and Docker not playing well together. It may be better to document the solutions instead. Feel free to contribute to the docs if y'all are familiar with setting Docker up with Vite!

When running Vite on Windows Subsystem for Linux (WSL) 2 or Docker, if the project folder resides in a Windows filesystem, you'll need to set the server.watch option to { usePolling: true }. in vite.config.js.
The issue is that vite doesn't watch the files for changes at all thus the HMR cannot not work.
This is well docuemnted in the Vite config docs: https://vitejs.dev/config/#server-watch
In this case no other settings (hmr.port, ENTRYPOINT/npm rebuild esbuild etc) are required to enable page-auto-reload on file/code change.

Happy to help!  I'm fine with windicss but I'm noticing that the value in
braces syntax is not working
On Sun, May 22, 2022, 8:45 AM github-actions[bot] @.***>
wrote:

Hello @louiss0 https://github.com/louiss0. We like your
proposal/feedback and would appreciate a contribution via a Pull Request by
you or another community member. We thank you in advance for your
contribution and are looking forward to reviewing it!
—
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-1133888611, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6MHY55RMDJ6L6QRRPLVLIT5XANCNFSM47ZSB7BQ
.
 HMR reloading with Nginx reverse proxy and Docker Compose!

server  key on vite.config.js for using port 3101 for HMR

server: {
  host: true,
  hmr: {
    port: 3101,
  },
}

NGINX reverse proxy: add a upstream and server for the HMR port, ui being the vite server on docker compose

Reference: https://www.tutorialspoint.com/how-to-configure-nginx-as-reverse-proxy-for-websocket

upstream ui {
  server ui:80;
}
upstream hmr {
  server ui:3101;
}
server {
  listen 80;
  location / {
      proxy_pass http://ui;
  }
}
server {
  listen 3101;
  location / {
      proxy_pass http://hmr;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
  }
}

Docker Compose setup

version: '3.9'
services:
  reverse-proxy:
    build: reverse-proxy
    ports:
      - 80:80
      - 3101:3101
  ui:
    build: ui
    ports:
      - 3000
      - 3101

I finally did it! HMR reloading with Nginx reverse proxy and Docker Compose!

server  key on vite.config.js for using port 3101 for HMR

server: {
  host: true,
  hmr: {
    port: 3101,
  },
}

NGINX reverse proxy: add a upstream and server for the HMR port, ui being the vite server on docker compose

Reference: https://www.tutorialspoint.com/how-to-configure-nginx-as-reverse-proxy-for-websocket

upstream ui {
  server ui:3000;
}
upstream hmr {
  server ui:3101;
}
server {
  listen 80;
  location / {
      proxy_pass http://ui;
  }
}
server {
  listen 3101;
  location / {
      proxy_pass http://hmr;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
  }
}

Docker Compose setup

version: '3.9'
services:
  reverse-proxy:
    build: reverse-proxy
    ports:
      - 80:80
      - 3101:3101
  ui:
    build: ui
    ports:
      - 3000
      - 3101

Can I get the files for this I tried setting this up myself but I'm confused and stuck

@louiss0 I made a repo with a example explaining it on https://github.com/jonathan-f-silva/vite-docker-hmr-dev-base. Feel free to ask anything if unclear! :+1:

I am running vuejs apps behind docker and kubernetes for a long time without facing any of the issues which has been described in various threads. I even documented some suggestions in https://github.com/vitejs/vite/discussions/8780 to make life of a developer easy for running vuejs apps in docker / kubernetes.
There is no reason why hmr should use a different host / port than the values used by the application. If vuejs uses location.host and location.port for hmr host and port respectively then whole hmr section can be eliminated.

Any update? I don't want to add Nginx

I have been running vite dev server behind nginx proxy on docker and kubernetes for a long time without facing any of the issues which have been described in various threads. I even documented some suggestions in #8780 to make life of a developer easy for running vuejs apps in docker / kubernetes.

Having looked at this a bit:  it would be helpful if you posted a working configuration somewhere.  I looked at #8780; I was not able to get that approach to work.

Checkout the examples at https://github.com/sapphi-red/vite-setup-catalogue

Checkout the examples at https://github.com/sapphi-red/vite-setup-catalogue

These diagrams are very useful, thank you.
I just got the reverse proxy working with websockets and SSL, and will write it up soon. I also needed to add polling for bind mounts, since Vite doesn't notice otherwise that the bind mount has changed.

I was having this issue with Docker/vite. Here's what worked for me in my vite.config.ts file:
  server: {
    port: 3000,  // exposed docker image port
    host: true,
    hmr: {
      port: 3001, // exposed docker image port
      clientPort: 5001, // mapped docker container port
    },
  },

I didn't really want to put the docker container port in the config, but it does work now.

Ok, thanks.
On Fri, Aug 19, 2022, 7:39 PM John Mills @.***> wrote:

I was having this issue with Docker/vite. Here's what worked for me in my
vite.config.ts file:
server: {
port: 3000,  // exposed docker image port
host: true,
hmr: {
port: 3001, // exposed docker image port
clientPort: 5001, // mapped docker container port
},
},
I didn't really want to put the docker container port in the config, but
it does work now.
—
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-1221171454, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6KVXPQFPEMM63VLYWLV2ALLRANCNFSM47ZSB7BQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

I have tried many combinations. This worked for me:
 server: {         port: 3000,         host: true,         hmr: {             host: 'localhost',         },     },
Docker-compose:     ports:       - "3000:3000"

I still think a better explanation of the bug / problem is needed.
My config (below) works without needing to define hmr. I don't use any Nginx proxy in between. If that is part of the problem, it should be mentioned in the title / description. @louiss0 changing the title to "Vite and Docker and Nginx" would be a start.
    server: {
      host: true,   // needed for the DC port mapping to work
      strictPort: true,
      port: 3000
    }

Vite 3.1.0-beta.1
Docker Desktop for Mac 4.11.1

I have tried many combinations. This worked for me:  server: { port: 3000, host: true, hmr: { host: 'localhost', }, },

This one worked for me, and better than putting the docker port in the vite.config. Thanks!

Thanks for the tip!
On Sun, Jun 26, 2022, 11:48 PM Shailendra Singh @.***>
wrote:

I am running vuejs apps behind docker and kubernetes for a long time
without facing any of the issues which has been described in various
threads. I even documented some suggestions in #8780
https://github.com/vitejs/vite/discussions/8780 to make life of a
developer easy for running vuejs apps in docker / kubernetes.
There is no reason why hmr should use a different host / port than the
values used by the application. If vuejs uses location.host and
location.port for hmr host and port respectively then whole hmr section
can be eliminated.
—
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-1166805855, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6O5IGWRBUWTMSCGPGDVREQCPANCNFSM47ZSB7BQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Interesting. I’m essentially using the “With Proxy” set up.  I’ve made some progress, since I have the websocket getting upgraded through an SSL proxy. Took a while.
So HMR is up, but it doesn’t pick up changes in the bound file system.  In the docker-compose.yaml file I have:
    volumes:
      - consistency: cached
        source: ./sample-program/frontend
        target: /app/frontend
        type: bind

This binds, but HMR ignores changes in the file system.  I’ve verified that the changed files are visible to the container, but Vite’s HMR does not send the changes on to the browser.
Any advice on how best to mount a development file system into a container so that Vite will notice it?

On Jul 22, 2022, at 4:57 PM, Tony Trinh @.***> wrote:
Checkout the examples at https://github.com/sapphi-red/vite-setup-catalogue https://github.com/sapphi-red/vite-setup-catalogue
—
Reply to this email directly, view it on GitHub https://github.com/vitejs/vite/issues/4116#issuecomment-1193011537, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACOUZMBGSRXRJ7WUQC2EXDVVMYNJANCNFSM47ZSB7BQ.
You are receiving this because you commented.

Awesome, thanks!
On Tue, Oct 11, 2022, 4:46 AM Rob Thorne @.***> wrote:

Interesting. I’m essentially using the “With Proxy” set up. I’ve made
some progress, since I have the websocket getting upgraded through an SSL
proxy. Took a while.
So HMR is up, but it doesn’t pick up changes in the bound file system. In
the docker-compose.yaml file I have:
volumes:
- consistency: cached
source: ./sample-program/frontend
target: /app/frontend
type: bind

This binds, but HMR ignores changes in the file system. I’ve verified that
the changed files are visible to the container, but Vite’s HMR does not
send the changes on to the browser.
Any advice on how best to mount a development file system into a container
so that Vite will notice it?

On Jul 22, 2022, at 4:57 PM, Tony Trinh @.***> wrote:
Checkout the examples at
https://github.com/sapphi-red/vite-setup-catalogue <
https://github.com/sapphi-red/vite-setup-catalogue>
—
Reply to this email directly, view it on GitHub <
https://github.com/vitejs/vite/issues/4116#issuecomment-1193011537>, or
unsubscribe <
https://github.com/notifications/unsubscribe-auth/AACOUZMBGSRXRJ7WUQC2EXDVVMYNJANCNFSM47ZSB7BQ
.
You are receiving this because you commented.

—
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-1274328403, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6IK3YF5CBYOQYEM3ATWCUSMTANCNFSM47ZSB7BQ
.
You are receiving this because you commented.Message ID:
@.***>

My problem was that Vite uses chokidar and chokidar doesn't notice updates from docker unless you provide the usePolling: true option:

usePolling (default: false). Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU utilization, consider setting this to false. It is typically necessary to set this to true to successfully watch files over a network, and it may be necessary to successfully watch files in other non-standard situations. Setting to true explicitly on MacOS overrides the useFsEvents default. You may also set the CHOKIDAR_USEPOLLING env variable to true (1) or false (0) in order to override this option.
Chokidar docs

To fix this I added the server.watch option:
watch: {
  usePolling: true,
},

This should be a minimum viable config:
export default defineConfig({
  server: {
    watch: {
      usePolling: true,
    },
    host: true, // needed for the DC port mapping to work
    strictPort: true,
    port: 3333,
   }
 });

I'm done

Thanks for the tip!
On Thu, Oct 13, 2022, 6:10 PM John Johnson @.***> wrote:

My problem was that Vite uses chokidar and chokidar doesn't notice updates
from docker unless you provide the usePolling: true option:
usePolling (default: false). Whether to use fs.watchFile (backed by
polling), or fs.watch. If polling leads to high CPU utilization, consider
setting this to false. It is typically necessary to set this to true to
successfully watch files over a network, and it may be necessary to
successfully watch files in other non-standard situations. Setting to true
explicitly on MacOS overrides the useFsEvents default. You may also set the
CHOKIDAR_USEPOLLING env variable to true (1) or false (0) in order to
override this option.
Chokidar docs https://github.com/paulmillr/chokidar#performance
To fix this I added the server.watch option:
watch: {
usePolling: true,},
This should be a minimum viable config:
export default defineConfig({
server: {
watch: {
usePolling: true,
},
host: true, // needed for the DC port mapping to work
strictPort: true,
port: 3333,
}
});
—
Reply to this email directly, view it on GitHub
https://github.com/vitejs/vite/issues/4116#issuecomment-1278228780, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AG5PB6IU5FD6YCSNW6IB26LWDCCFPANCNFSM47ZSB7BQ
.
You are receiving this because you commented.Message ID:
@.***>

Just as an addition, I got it working by adding the repo as a volume as well. So:
export default defineConfig({
  server: {
    host: true,
    strictPort: true,
    port: 5000,
    watch: {
      usePolling: true,
    },
  },
});

With the docker-compose config being:
  client:
    container_name: frontend-client
    image: frontend-client
    restart: always
    build:
      context: .
      dockerfile: ./${PATH}/Dockerfile.local
      args:
        - PNPM_VERSION=7.13.4
        - SERVICE_PATH=${PATH}
        - PACKAGE_NAME=${PACKAGE_NAME}
    ports:
      - 5000:5000
    volumes:
      - .:/usr/app/
      - ./usr/app/node_modules
      - ./usr/app/${PATH}/node_modules

To give a bit of context, this is using a monorepo with docker compose and pnpm.


Are HTML Inlines Supported or not in Slate? They do not roundtrip.

Describe the bug
There is some confusion about HTML inlines.

They are supported fine in the CommonMark and CiceroMark transforms
They seem to be supported in the markdown editor: https://github.com/accordproject/markdown-editor/blob/6c17020a5d7408d0a167d80a6a76fdae5cdfbd7f/src/SlateAsInputEditor/index.js#L160
They are turned to HTML blocks in the Slate transform: https://github.com/accordproject/markdown-transform/blob/2b2764ebf25cc24aefd81fcdd26baff9495590ef/packages/markdown-slate/src/ToSlateVisitor.js#L289

As a result HTML inlines do not roundtrip through slate.
To Reproduce
bash-3.2$ more test/data/html-inline.md
This is an <foo>HTML INLINE</foo> end.
bash-3.2$ ../markdown-cli/index.js normalize --sample test/data/html-inline.md --cicero
3:11:21 PM - info:
This is an <foo>HTML INLINE</foo> end.
bash-3.2$ ../markdown-cli/index.js normalize --sample test/data/html-inline.md --slate
3:11:25 PM - info:
This is an

HTML INLINE

 end.

Fixed in #177


BUG: Formatting of 'tags' property when pasted in Obsidian

Version (please complete the following information):

OS: Windows 11
Browser: Chrome
Web Clipper version: Version 0.10.5
Obsidian version: v1.7.7

Describe the bug
I am trying to use the tags property (which is set at multitext type) to output in a particular way to Obsidian but I am having issues with the parser being to aggressive. For example:
Assume I want to use permanent (not auto-generated from the website being clipped) tags #inbox and #somedays and I want the output in Obsidian to look like this:
tags:
  - " #inbox "
  - " #somedays "

with those extra spaces inside the double quotes so that it retains Obsidian's tag auto-suggestion feature like this:

So what I tried doing was adding extra spaces beforehand in the clipper template, like this:

But the parser keeps removing it (I understand that this is not the best way to do, but just wanted to show how the clipper parses).
I also used ChatGPT and Claude to suggest numerous other templates (with proper syntax) to escape the spaces from the parser but none of them seem to work and it said that the parser might be too aggressive.
Expected behavior
I want the output in Obsidian to look like this:
tags:
  - " #inbox "
  - " #somedays "

with those extra spaces inside the double quotes.
URLs where the bug occurs
All websites.
Your template file
I am using just the default template. I haven't changed any settings and neither are there any settings that affect this.

Sorry. I didn't realise that the new properties section supports autocomplete. This is not an issue anymore.


Documentation

With documentation in the code it will be much easier to figure out what stuff does, now as the Master Programmer™ I am it totally takes me very little time to figure out what any piece of code does including this one, however it would be valuable to future more inexperienced members and it will just make actually coding faster.

(Testing if VyxalBot reports comments in issues because idk)

Is this issue relating to version 2 or version 3?

While I intend to document the internals of the bot eventually, it's not very high on my to-do list right now.

Alright. I could help?

Alright. I could help?

I'd prefer it if people I know from the Vyxal org helped out with this; I only recall you from CGCC chat, and my memories aren't all that fond.


Wrong version identifier is shown in the UI

The launcher UI shows a fixed version identifier 2.0.0-rc1 in the bottom-left corner (see screenshot).

The label has to be updated to show the actual version identifier instead, i.e., read it from version.txt or launcher settings.

This is related to the changes done in #452, in particular commenting calls to updateGui().
Updating the labels (updateLabels()) correctly will replace the placeholder text with an actual version identifier.

Related to #462

Fixed in v4.0.0-rc.4


Codeunit 8 AccSchedManagement. Add OnAfterSetCostTypeColumnFilters Event to procedure SetCostTypeColumnFilters

Could you add new event OnAfterSetCostTypeColumnFilters to procedure SetCostTypeColumnFilters?
    procedure SetCostTypeColumnFilters(var CostType: Record "Cost Type"; AccSchedLine2: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")
    var
        FromDate: Date;
        ToDate: Date;
        FiscalStartDate2: Date;
    begin
        ...

        OnAfterSetCostTypeColumnFilters(CostType, AccSchedLine2, ColumnLayout)
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterSetCostTypeColumnFilters(var CostType: Record "Cost Type"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


DBZ-679 Support decoding of out-of-order fragments

https://issues.jboss.org/browse/DBZ-679

@jpechane I think it's alright from what I can see. Can you rebase it to the latest master? Thanks!

@gunnarmorling Done

Applied; thanks, @jpechane!


SSR disappear on custom material using either depth_texture or screen_texture

Godot version
4.0.3
System information
MacOS - 4.0.3 - Forward+ - Vulkan
Issue description
If using depth_texture or screen_texture in a custom shader material, SSR will not show up and not reflect anything. This is problematic for reflective material such as glass or water. I think it's a bug because SDFGI or VoxelGI reflection are showing up.
Without any buildin texture:

With screen_texture:

I guess we can do a workaround using another material pass ?
Steps to reproduce

Add colored mesh instances
Add a mesh instance floor with a custom shader material
In the shader, use either build in depth texture or the screen texture
In the shader, set the roughness to 0.0, and metallic to 0.5 or 1.0.
Add environment node and activate SSR.
In the shader, comment in and out one of the texture lookup to toggle the SSR of the material

Minimal reproduction project
SSR custom shader bug.zip

Using depth_texture or screen_texture makes the material transparent, which means it can't reflect anything. See the note at the bottom of https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/spatial_shader.html – it needs to be updated to mention that SSR can't show up on transparent materials though.

@Calinou Thank you for the detailed writing, i'm aware of the transparent part, although I didn't know that using one of those map would force the material transparent. That's annoying, what workaround to create reflective glass and water ?

Glass: if you don't need to see through it, use high metallicity to have clear reflections
Water: same as above plus some noise in the shader for fake caustics
(I personally did both of these tricks as well as a third, called  dither transparency. Check out the latter at https://www.reddit.com/r/godot/comments/bxfyws/heres_a_dithered_opacity_aka_hashed_transparency/ as it doesn't write to alpha, just discards, hence it works with SCREEN_TEXTURE - I know because the neons with it show in my fake motion blur thingy)


Phoenix 1.5

To use with the latest Phoenix, needed to update the dependencies.
use Phoenix.ConnTest is deprecated.
The HTML "AST" generated by the latest Phoenix HTML is different than previous, so had to change the tests, but confirm it worked. Not sure how you'd support multiple versions with these changes?

I think this should be have CI ran again, since it failed with a weird error on telemetry. I branched and did almost the same changes as this and my local tests pass (some mix packages may be a little more current in my fork).

This looks like a good candidate to fix #97. Any chance to get this merged? A lot of people have moved to Phoenix 1.5, so it would be greatly beneficial.
Any way we can help?

This looks like a good candidate to fix #97. Any chance to get this merged? A lot of people have moved to Phoenix 1.5, so it would be greatly beneficial.
Any way we can help?


Sync with Master

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Codecov Report

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

@@          Coverage Diff          @@
##           master     #1   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines          57     65    +8
  Branches       10     14    +4
=====================================
+ Hits           57     65    +8

Impacted Files
Coverage Δ

lib/TvmClient.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Address security vulnerabilities discovered by snyk

All of the security issues have been introduced as a result of including the golang/mock module. As this module is only being used in _test.go files it won't be included in the built executable of any application that imports the sdk.


Update Redirect statergy

Description
Currently, we are using a meta refresh for redirects, which is not considered SEO-friendly and negatively impact SEO. Also meta-refersh method does not clearly indicate a redirect to search engine crawlers bot, as they typically recognize only 301 and 302 status codes. Meta refresh redirects return a 200 status code, which does not efficiently transfer SEO equity from the old URL to the new one.
In the current pull request, we have implemented server-side redirects that correctly respond with a 301 status code. However, the hyperlink test on github actions is failing, maybe because it expects a 200 status code.
To check the redirects, use the following tool:
tool : https://www.redirect-checker.org/
test with meta refresh : https://flowfuse.com/blog/first-deploy/
test with server side redirect: https://deploy-preview-2698--flowforge-website.netlify.app
For further reading on the impact of meta refresh redirects on SEO, refer to these resources:
https://risify.app/meta-refresh-redirects/#negative-impact-of-meta-refresh-redirects-on-seo
https://seodity.com/blog/redirects-guidline/#html-redirects
https://help.ahrefs.com/en/articles/2433739-what-is-meta-refresh-redirect-and-why-is-it-considered-a-critical-issue
https://firozahmad.com/what-is-meta-refresh-redirection/
Related Issue(s)

Checklist

[ ] I have read the contribution guidelines
[ ] I have considered the performance impact of these changes
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

I suggest that in the next iteration, we automate the generation of the redirects list instead of writing them directly in the file. This can be based on the approach described in this article: https://www.aleksandrhovhannisyan.com/blog/eleventy-netlify-redirects/

@sumitshinde-84 I think it’s working now. The errors don’t seem to be related to the redirects file but to the .md files that still have the old links.

Yes, it was working, but the href link tests are failing. It's related to the package because the current package isn't working well with server-side redirects.


Gnugo ogs estimator

(Dummy PR, no way to PR to new branch on github yet ...)
Gnugo ogs estimator

Hi, i was looking at jmgilmer/GoCNN and then noticed in the training pipeline he used gnugo to figure out dead stones and determine the final board position.
It strikes me now, a lot of people use it for that purpose because it's really good at it actually.
Has it been tried on ogs before ?
I did a quick test on ogs estimator test suite, it got every single test right. It even found some scoring mistakes i had not noticed when scoring manually !
I used this to get a peek at scores:
gnugo --chinese-rules --level 10 --score aftermath -l game.sgf

Getting dead stones is easy:
convert sgf to gtp first, add a final_status_list dead command and run:
gnugo --chinese-rules --level 10 --mode gtp < file.gtp

In the training pipeling he used:
gnugo --chinese-rules --capture-all-dead --score aftermath -l game.sgf --outfile final.sgf

To play the game to the end. This pretty much gives the board ownermap.


[PropertyFieldOrder] Not working with array of objects

Category

[ ] Enhancement
[x] Bug
[ ] Question

Version: [ 3.2.0]
Expected / Desired Behavior
The PropertyFieldOrder is not working with array of objects as described in the documentation.
Observed Behavior
This error message is prompted in the console when I try to move any object using the PropertyFieldOrder:

The control does not change the ordering of the object but deletes the object I tried to move.
Steps to Reproduce
I followed the  steps described in the documentation: https://pnp.github.io/sp-dev-fx-property-controls/controls/PropertyFieldOrder
Temporary fix
To overcome such error temporarily, I had to wrap each object in an array which made the control work but the text property did not display as the control was not able to find the name of the property due to the wrapping.
Thanks!

I am experiencing this issue as well. Any update?

Thank you @19ahmed99 for reporting this issue.
The fix has been done and will be included in the next release.
You can use beta version in a meantime.


Support skipping default field values

Hello!
I have some models which use the default_factory to set the value as a dict or list. Then, in the course of processing them, I mutate that field, then I export them.
I want to not include any fields in the export which don't have any items present, because it's a waste of JSON space, since we have a default set.
I wanted to create an issue, not so much to ask for this feature, but to drop some code as a workaround that I am using in case anyone else has the same problem:
class BaseModel(pydantic.BaseModel):
    # Set fields set to be all those that are truthy, so only those are expoed with `skip_defaults`
    @property  # type: ignore
    def __fields_set__(self) -> typing.Set[str]:  # type: ignore
        s = set()
        for k, v in self.__values__.items():
            if v:
                s.add(k)
        return s

    @__fields_set__.setter
    def __fields_set__(self, val: typing.Set[str]) -> None:
        pass

    def json(self, **kwargs) -> str:
        return super().json(skip_defaults=True, **kwargs)

I reused the __fields_set__ feature to override it with a value that is dynamically computed based on which fields are truthy. Anyways, if anyone else needs to implement custom logic on which fields to serialize and which not to, I suspect you can use a similar method!
Thanks again for this library.

I don't think that logic is needed. You can use the exclude_defaults parameter, can't you?
See the code below:
from pydantic import BaseModel, Field

class Model(BaseModel):
    foo: str
    bar: int
    pta: str = Field(default_factory=lambda: "default")

model = Model(foo="a", bar=1)
print(model.json(exclude_defaults=True))
# print(model.model_dump_json(exclude_defaults=True))  # On V2 use `model_dump_json`

If I got it wrong, please let me know so I can reopen this issue. 🙏


SDK Fails in testnet

The wallet is not working when you try to get an address in BTC Testnet.
Im using<EMAIL_ADDRESS>When I run this example code, fails:
var blocktrail = require('blocktrail-sdk');
undefined
> var client = blocktrail.BlocktrailSDK({ apiKey: "APIKEY", apiSecret: "APISECRET", network: "BTC", TestNet: true})
undefined
> client.address('n33npN2oRNJFFpdoxkrm2CVyZAfRGFxALt', function(err, address) { console.log(address.balance); });
{ state: 'pending' }
> TypeError: Cannot read property 'balance' of null
    at repl:1:99
> client.address("n33npN2oRNJFFpdoxkrm2CVyZAfRGFxALt", function(err, address){ if(err){console.log(err)} console.log(address); });
{ state: 'pending' }
> TypeError: Cannot read property 'address' of null
    at BtccomConverter.convertAddress (/home/user/node_modules/blocktrail-sdk/lib/btccom.convert.js:412:33)
    at /home/user/node_modules/blocktrail-sdk/lib/api_client.js:591:39
    at _fulfilled (/home/user/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/home/user/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/home/user/node_modules/q/q.js:749:13)
    at /home/user/node_modules/q/q.js:557:44
    at flush (/home/user/node_modules/q/q.js:108:17)
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9)
null

Its happening because you missed the testnet flag testnet : true otherwise the call will fail.

var sdk = blocktrail.BlocktrailSDK({
    apiKey : process.env.BLOCKTRAIL_SDK_APIKEY || "EXAMPLE_BLOCKTRAIL_SDK_NODEJS_APIKEY",
    apiSecret : process.env.BLOCKTRAIL_SDK_APISECRET || "EXAMPLE_BLOCKTRAIL_SDK_NODEJS_APISECRET",
    testnet : true,
    btccom: true
});

sdk
    .address("n33npN2oRNJFFpdoxkrm2CVyZAfRGFxALt")
    .then(function(address) {
        console.log(JSON.stringify(address, null, 4));
    }, function(error) {
        console.log(error);
    });

Using what @akhilesharora says also fails:
I'm now using<EMAIL_ADDRESS>var sdk = blocktrail.BlocktrailSDK({
    apiKey : "XXXXXXXXXXXXXXXXXXX",
    apiSecret : "XXXXXXXXXXXXXXXXXX",
    testnet : true,
    btccom: true
});

> sdk.address("n33npN2oRNJFFpdoxkrm2CVyZAfRGFxALt").then(function(address) {console.log(JSON.stringify(address, null, 4));}, function(error) {console.log(error);});
{ state: 'pending' }
> { Error
    at Function.Request.handleFailure (/home/user/node_modules/blocktrail-sdk/lib/request.js:222:17)
    at /home/user/node_modules/blocktrail-sdk/lib/request.js:169:31
    at Request.callback (/home/user/node_modules/superagent/lib/node/index.js:728:3)
    at IncomingMessage.parser (/home/user/node_modules/superagent/lib/node/index.js:916:18)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9) statusCode: 504 }


Terraform error when creating a AnalyticsWorkspace with unlimited dailyQuotaGb

Since pulumi-azure version 3.31.0, we can not create a AnalyticsWorkspace with unlimited dailyQuotaGb anymore.
Here is the corresponding code:
const analyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace("analyticsWorkspace", {
        name: "law-name",
        resourceGroupName: rg.name,
        retentionInDays: 30,
        sku: "PerGB2018",
})

And the corresponding error:
Diagnostics:
  azure:operationalinsights:AnalyticsWorkspace (analyticsWorkspace):
    error: azure:operationalinsights/analyticsWorkspace:AnalyticsWorkspace resource 'analyticsWorkspace' has a problem: expected daily_quota_gb to be at least (0.000000), got -1.000000

This is due to an update of Terraform AzureRM Provider:v2.36.0, where log_analytics_workspace daily_quota_gb does not accept anymore the -1 value to be set explicitly.
If we didn't set the daily_quota_gb value, terraform set -1, but we can not set -1 explicitly.
I open an issue on the terraform side https://github.com/terraform-providers/terraform-provider-azurerm/issues/9732, but they close it saying that everything works as expected.
My analysis is that pulumi pass the -1 value when the value is not set, but terraform does not support it. So we are blocked.
My workaround today is to set a very high value 1000000.

To fix this, I moved this resource to azure next gen, and it works like a charm ;)

To fix this, I moved this resource to azure next gen, and it works like a charm ;)

Looking through we don't seem to override the default here and this seems to be behavior entirely controlled by the terraform provider instead. I suggest reopening the ticket with TF? Closing this for now.

Looking through we don't seem to override the default here and this seems to be behavior entirely controlled by the terraform provider instead. I suggest reopening the ticket with TF? Closing this for now.

@viveklak there was a ticket at TF, see the original report

@viveklak there was a ticket at TF, see the original report

Ah thanks. Marking as duplicate of #784.

Ah thanks. Marking as duplicate of #784.

@viveklak, it's not an issue related to terraform. Terraform works as expected.
The following Terraform Configuration Files works whereas the corresponding pulumi doesn't.
resource "azurerm_resource_group" "rg" {
  name     = "rg-terraform"
  location = "francecentral"
}

resource "azurerm_log_analytics_workspace" "log-aw" {
  name                = "log-tf-01"
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  sku                 = "PerGB2018"
  retention_in_days   = 30
}

There is no reason to reopen the terraform issue.

@viveklak, it's not an issue related to terraform. Terraform works as expected.
The following Terraform Configuration Files works whereas the corresponding pulumi doesn't.
resource "azurerm_resource_group" "rg" {
  name     = "rg-terraform"
  location = "francecentral"
}

resource "azurerm_log_analytics_workspace" "log-aw" {
  name                = "log-tf-01"
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  sku                 = "PerGB2018"
  retention_in_days   = 30
}

There is no reason to reopen the terraform issue.


IntoIterator for Entities

Category
User level API features/changes
Describe the feature you'd like to request
The public Entities type should support .into_iter() and the IntoIterator trait.  Today, it only supports .iter() which gives &Entity as the item type; but some users may want to consume the Entities and have Entity as the item type.  In particular, I'm imagining that users might want to do this in order to add more Entities and then give the larger set of entities back to Entities::from_entities() (at least until #612 is fixed).
Describe alternatives you've considered
The status quo works, but requires users to clone each Entity if they want to rebuild another Entities object.
Additional context
No response
Is this something that you'd be interested in working on?

[X] 👋 I may be able to implement this feature request
[ ] ⚠ This feature might incur a breaking change

Actually Entities::add_entities() is a reasonable alternative to .into_iter() followed by ::from_entities().  So this issue is not urgent.  It would probably still be good to provide IntoIterator though.

I thought I give it a try ;-)

This was resolved by #713


Fix uncommon crashes and hangs on shutdown (RIPD-1392)

This pull request was motivated by @vinniefalco  asking me if a
different pull request was thread safe.  I started testing and
found other preexisting crashes or hangs on shutdown.  Before I
could test my own pull request I needed to remove the preexisting
crashes and hangs.
The test process was to start rippled on the network, let it run
for 15 seconds (not all the way to sync), and then gracefully shut
it down.  If the shutdown returned a 0 error code and did not hang
then we'd do the loop again.
When I first started the project I'd get a crash or hang
approximately once every 200 shutdowns.  With these four fixes in
place I was able to run the loop through 10,000 consecutive
shutdowns on two different computers (a total of 20,000 shutdowns)
without seeing any crashes or hangs.  So we're approximately 2
orders of magnitude better than we were, at least for that
particular loop.
I have a small concern that the fixes in NodeStoreScheduler
will block database writes during shutdown that previously would
go through (and occasionally crash).  My belief is that these
blocked database writes could not be relied upon previously, since
they were occurring during shutdown.  But just because I believe
that does not necessarily make it true.
Additionally, @nbougalis  raised the question whether there was a
way to easily enforce the change in RootStoppable.  I thought
of a clumsy way, but nothing elegant.  I'm open to suggestions.
Thanks to @nbougalis  for an early review.
Reviewers: @vinniefalco , @HowardHinnant

I'm going to give this a conditional thumbs up, pending on David's response to the question about the node store above.
:+1:

I'd just like to point out that these changes are great, as is the enormous effort that went into making them. Shutdown of the application is a pain and difficult to track down. Good job on creating experiments to prove the hypotheses.

First, thanks @JoelKatz for the review.  I'll dig further into the problem with the database writes.  With luck we'll find an answer that meets the needs.
Since I'll have low availability next week I'm going to close this pull request for right now.  When I return from the committee meeting I'll collect some more data and work with @JoelKatz on a way to prevent the crashes, but still lets enough of the database writes get through.


[BUG REPORT]: geoproc test_productfile_filename_has_datetime

Describe the bug
A bug popped up during github workflow for the test test_productfile_filename_has_datetime.
The existing regex date formats was unable to find a match for the output format of
xmrg0809202212z.grb which uses {Month}{Day}{Year}{Hour}
Goals:

[ ] Improve logic of test_productfile_filename_has_datetime to provide a better error when datetime.strptime is unable to convert date string to dt object
[ ] improve regexs to have more strict year, month, day, hour testing
[ ] provide easy regex usage in config.py

Example result if a bad datetime string is attempted: