stm32g0b1: spi: MOSI signal goes high before and after transmitting data

I noticed this issue while using the ws2812_spi LED strip driver on a nucleo_g0b1re board.
The led_ws2812 sample can be used to reproduce the issue. This patch is needed to add support for the nucleo_g0b1re board to the led_ws2812 sample.
When running this sample, then the MOSI signal goes high for 80 microseconds before and after transmitting data:

The issue is that this high "preamble" state is interpreted as a high bit by the first WS2812 LED of the strip. And then the signal of all the LEDs is shifted by one bit, which results in visual glitches.
Note that from a SPI protocol standpoint, the MOSI signal is correct because the clock signal is off during this extra "high" states. Thus, this won't affect a real SPI device. But the WS2812 strip LED controller is not a SPI device. It doesn't use the clock signal. SPI is used here as a hack on a single wire (MOSI) to generate a control signal for the LEDs.
In addition, the issue is not systematic. It depends on the last data sent over MOSI. If the last 4 bytes are zero, then there are no high "preamble" state when sending the next buffer of data.
I also tried disabling DMA and interrupts but this doesn't affect the issue.

Hi @erwango. Maybe do you have some ideas about how to fix this behaviour ?

Hi @FRASTM,
Thanks for testing.

I can see the the application running on g071rb nucleo board.
west build -p auto -b nucleo_g071rb samples/drivers/led_ws2812/
setting default frame format will display R, G, B colors
 		spi-one-frame = <0x70>;
		spi-zero-frame = <0x40>;

OK. And do you have a high "preamble" or not on the MOSI signal ?
With this sample, you won't see many visual artifacts due to the extra bit.  So it may seem OK visually while it is not.
Please have a look at the signal.
If you need, I can provide a sample with a visual feedback when the bug is here.

With
#define B1414_ZERO_FRAME 0xC0
#define B1414_ONE_FRAME   0xF0

--> white led

The ws2812_spi driver supports two different devices: WS2812 and B1414. They have different timings. The definition above is for B1414 devices and a 4MHz SPI frequency. So if you have a WS2812 device, or if you are using a different frequency, then this definition is not correct. If you need I can help to provide a correct definition for your configuration.

@simonguinot Do you have more info to characterize this bug (G0 only, Zephyr only, long preamble also present with other SPI devices .. ) ?

Hi @erwango.
Thanks for looking into this. Unfortunately I don't have much more information.
I can tell I never experimented this issue with F0 MCUs.
I don't have built a firmware using STM32Cube (because I don't have the setup), so I don't know if the issue is rather in Zephyr, or in the HAL/SDK, or in the SPI controller itself.
Also I tried to play with the pinmux configuration or the SPI mode, but it didn't work.
Because the last data transmitted affects the issue, I suspect it could be something related with the TXFIFO and the SPI initialization/transmission.
And that's pretty much all I have.

If I keep the definition for the ws2812, the MOSI high level is seen during ~60µs  when CONFIG_SPI_STM32_DMA=y

MOSI signal on nxp FRDM_k64f board when testing led samples/drivers/led_ws2812/

@simonguinot, could try changing the SPI protocol for your environment ./drivers/spi/spi_ll_stm32.c
@@ -559,7 +559,7 @@ static int spi_stm32_configure(const struct device *dev,

 #if !defined(CONFIG_SOC_SERIES_STM32F1X) \
 	&& (!defined(CONFIG_SOC_SERIES_STM32L1X) || defined(SPI_CR2_FRF))
-	LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_MOTOROLA);
+	LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_TI);
 #endif

I do not know about different protocol "in Motorola mode it goes high and then low between bytes"
The AN5543 explains :
"standard SPI Motorola mode is not ideal on old SPI versions. The signal logic copies the SPE status and causes problems to handle its GPIO alternate function. When the SPI is disabled, the signal is no longer propagated onto the associated GPIOs causing its floating once the SPE bit is set to zero.
On recent SPI versions, control over the alternate function is maintained even if the SPI is disabled. Also it is
possible to select the polarity of the pin and to swap most of the MOSI and MISO signals capabilities. Recent SPI
versions only support single NSS/SS pin. This alternate function has to be replaced by standard GPIO(s) control
when handling a multi slave system or when a specific communication requires a reconfiguration of SPI within a
single session (such at Half-duplex mode when the SPI has to be disabled temporarily while SS needs to stay
active).

I found this link here explaining the difference between the two protocols:
https://itectec.com/electrical/electronic-spi-ti-or-motorola-mode/
It is related to CPOL and CPHA configuration. But I'm not sure to understand how this is related to this issue.

#if !defined(CONFIG_SOC_SERIES_STM32F1X) \
 	&& (!defined(CONFIG_SOC_SERIES_STM32L1X) || defined(SPI_CR2_FRF))
-	LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_MOTOROLA);
+	LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_TI);
 #endif

My suggestion is to make this configuration available as DT option, because I guess that it might be different for SPI_1 or SPI_2 and so on.

@avisconti, thank you

@avisconti, thank you
We could think of a ./dts/bindings/spist,stm32-spi-common.yaml with
    frame-format:
      type: boolean
      required: false
      description: |
        Use Frame Format to support TI or motorola SPI mode.
        false: SPI Motorola mode
        true: SPI TI mode

Yes, it seems good!

@frastm Maybe you need to specify also a 'default' case and put in the description the reaso for that choice?

Updating the issue and removing the bug as it's not a bug, but how it's supposed to work.

@avisconti, thank you
We could think of a ./dts/bindings/spist,stm32-spi-common.yaml with
    frame-format:
      type: boolean
      required: false
      description: |
        Use Frame Format to support TI or motorola SPI mode.
        false: SPI Motorola mode
        true: SPI TI mode

@tbursztyka do you think this should go in spi.yaml ?
Also, any suggestion on the name ?

Reopening this as #38911 was reverted.
Assigned to @tbursztyka for a proper integration into SPI API

We ran into a similar issue on Teensy 4.1 (NXP imxrt1062), where the idle-state for MOSI seems to be high, with no option to change that. The strip pattern appeared shifted to the right by one LED, with glitches on the first LED (sk6812-2020). We worked around that by sending 0-bytes before and after the pattern of at least the specified reset delay: https://github.com/teamspatzenhirn/zephyr/pull/4

If the same issues happens with different SPI controllers, then maybe it makes sense to have a workaround in the LED strip driver. But it can't be adding zeros to both ends of the buffer to transmit via SPI :) There are compatible LED devices that have a reset delay of 250 microseconds. With a 6MHz SPI frequency, two resets would cost 375 bytes on such devices... There must be a more elegant way to solve this. Once a SPI controller is initialized with the correct CPOL and CPHA configuration, then MOSI should be low when nothing is emitted. It should be able to ask the SPI driver for this state.

see #39990

see #39990

Thanks.

@FRASTM could you update the stm32 driver to take into account the newly introduced flag ?
I need to ping all SPI drivers maintainers to do the same actually.


Level 1 with non Domain Joined Devices

Hi,
I have around 15 windows 10 machine and they are nondomain joined, they are used for the daily working process and accessing cloud data, mainly the used programs are web browsers and office applications with some default windows applications.
I went over the Level 1 security recommendation pointed here: _https://github.com/microsoft/SecCon-Framework/blob/master/level-1-enterprise-basic-security.md_  and thinking to skip the security recommendations that have the Domain member as my devices are not domain-joined.
is that a correct approach to implement the previously mentioned recommendation ! to skip Domain member controles on the non-domain devices?
Thanks in advance.

Yes - if a configuration is not relevant, you can feel free to just leave it out of what you apply. Out of curiosity, how are you applying policies?

It would be great if we could include guidance and recommendations to the security baselines for non-domain joined i.e. modern workplaces. We have noticed that when configuring devices with Intune, not all the configuration settings referenced in the security configuration baselines are available natively in the UI, some can be configured using OMA URI settings or by using scripting, but the question really is, do we actually need to configure settings on a modern workplace that are usually only needed for domain joined devices. A good example is audit logging, unless I deploy some sort of cloud based log collector solution such as the MMA agent on my windows client devices, or IT security would still wish to have local security logs enabled, I feel that there is no requirement to add such configuration to a AzureAD registered device. What are your thoughts on this?


[86byq6ba6][inline-input,input-number] Added beautiful number formatting for Inline.Input.

Motivation and Context
Added beautiful number formatting for Inline.InputNumber.

How has this been tested?
Manually (just extend Value from Input.Number.Value).

Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue).
[X] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
[X] Nice improve.

Checklist:

[X] My code follows the code style of this project.
[X] I have updated the documentation accordingly or it's not required.
[X] Unit tests are not broken.
[X] I have added changelog note to corresponding CHANGELOG.md file with planned publish date.
[ ] I have added new unit tests on added of fixed functionality.

Closing in favor #https://github.com/semrush/intergalactic/pull/1370


Add field for design or model of Mail Drop Box

The Mail Drop Box preset (amenity=post_box) should have a field for indicating the specific design or model of the postbox to supplement the existing Type field (post_box:type).
The post_box:type key primarily indicates the box’s support structure. It essentially duplicates support (Support) but with fewer options, and the options correspond to raw values such as pillar that can be misleading when read literally. Consequently, it isn’t very meaningful for describing the “type” of a postbox in regions where freestanding boxes can come in different shapes and sizes, or where there’s a lot of variation in wall-mounted boxes: https://github.com/openstreetmap/id-tagging-schema/pull/805#issuecomment-1455062283.
post_box:type was originally popularized in the UK alongside a more detailed, freeform post_box:design key. The latter key has gotten a lot of traction in both the UK and Belarus, but little usage elsewhere. Still, given the strong connection between both keys, it might make sense to add a Design field for post_box:design in the regions where it’s well-established. There are already country-specific versions of the Mail Drop Box preset. The UK version includes a field for the royal_cypher key, which the UK community consistently pairs with post_box:design and post_box:type.
More broadly, we could add the existing Model field (model) to the Mail Drop Box preset. The model key was recently approved for use on basically any unnatural object. Unfortunately, it has yet to be used on any postboxes, probably because post_box:design satisfies this need, but the model proposal clearly intended to supplant feature-specific keys such as post_box:design. Over time, as certain values become popular for postboxes, we could split out a postbox-specific version of this field or even a country-specific version, to offer suggested values with icons.

I want to work on this issue, please assign me this issue


Support custom options without optional keyword (proto3)

When I use custom options in a proto3 file nanopb adds a note in the generated header file that they're not supported:
/* Extension field foo_options was skipped because only "optional"
   type of extension fields is currently supported. */

I would be awesome if those were supported as well.
Minimum (non-)working example:
syntax = "proto3";

import "google/protobuf/descriptor.proto";

message FooOptions {
  int32 opt1 = 1;
  string opt2 = 2;
}

extend google.protobuf.FieldOptions {
  FooOptions foo_options = 50000;
}

message Bar {
  int32 value = 1 [(foo_options).opt1 = 123, (foo_options).opt2 = "baz"];
}

Hmm, extensions only exist for custom options in proto3, which is why by default it skips them.
It's simple enough to allow extensions in proto3 mode in nanopb, but this wouldn't get you very far, because nanopb has no reflection mechanism that would let to access the actual option values. However adding real support for custom options seems like a reasonable idea.
What would be your preferred way to access such options? I see two straightforward options:

As defines, like:

#define Bar_value_foo_options_opt1 123
#define Bar_value_foo_options_opt2 "baz"

As static protobuf object:

extern cost FooOptions Bar_value_foo_options;
..
const FooOptions Bar_value_foo_options = {123, "baz"};

Of these, 1) seems to me like it would be more useful in most cases.

I haven't tried with a proto2 file, so my guess was that it would work after added it in proto3 mode. It would be awesome if this could be added to nanopb!
I personally prefer 2) as things are typed and can be more easily passed as a pointer, but I could live with both options.

Would be really cool indeed. I also prefer option 2).
If it's added it should have an option to disable it though, too keep the code size down.
Maybe have it disabled by default even?
We use "custom options" to annotate and reflect over things in C++/Python code. Currently we don't need it in the C counterpart.

Now we also need it in the C counterpart.

Any plans to implement this?

I do not currently have plans to do so. It is a relatively simple task (only generator code changes needed), and pull requests are welcome.


GtRelease should be able to release GtRelease when its baseline has dependencies to other projects

Currently the baseline of GtRelease does not have dependencies to any other projects. However, releaser depends on projects like Beacon and GtExamples. Those dependencies should be added to the baseline, as now it's not possible to load and test GtRelease as a standalone tool. This limitation currently exists as the release cannot release itself if the baseline has dependencies to other projects.
That would also allow to have a Core baseline that only loads the release code + one with all tools.

Is this still a relevant issue?

Now Releaser uses a release brach to this is no longer relevant


Allow one role to inherit abilities of other roles

Though one can assign multiple roles to user, to try to keep the abilities DRY, we would prefer to get the same affect when assigning a single role to a user. For example, if I had the following roles

User - access only to login and own profile
Writer - Can do everything a User can do, and create content
Editor - Can do everything a writer can do, can assign stories, can publish
Manager - Can do everything an editor can do, can agree to jobs, can remove published stories, etc
Supervisor - etc

Instead of making sure that the Supervisor user also was assigned to all of the preceding roles, I would like to define the Supervisor's abilities so that it inherited from all of the preceding abilities.
I am thinking that at the top of an abilities definition, I include a call like:
includes_abilities_of :user, :writer, :editor, :manager

Then add the following to the Ability class:
  def includes_abilities_of(*other_roles)
    other_roles.each { |other_role| append_abilities(other_role) }
  end

If this makes sense to you, i am happy to issue a pull request

@hoenth It's come up before, so happy to look at a pull request with tests. :)

Released in 0.4.3


Program to convert BST to Greater Sum Tree

🚀 Feature
Given BST is transformed into greater sum tree where each node contains sum of all nodes greater than that node.
Have you read the Contributing Guidelines on Pull Requests?
Yes!
Motivation
(Please outline the motivation for the proposal.)
Pitch
Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.

I would like to add C++ program for this issue. Please assign this to me.

hii
i would like to work on this issue under dwoc

I would like to work on this issue in java


Add Sentiment Analysis button for comments that reports to user how comments score based on Cloud API.

Yep! Only works for the Anooshree-step-2020 project.
On Wed, Jul 8, 2020 at 10:26 AM yang-julian<EMAIL_ADDRESS>wrote:

@yang-julian requested changes on this pull request.
In portfolio/application_default_credentials.json
https://github.com/anooshrees/step/pull/14#discussion_r451706375:

@@ -0,0 +1,7 @@
+{

"client_id": "764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com",

There are people that scrape github for api keys. Is this key only usable
on your particular project?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/anooshrees/step/pull/14#pullrequestreview-444977290,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJDXKA2H4R2C3D73KG2TXUDR2ST3VANCNFSM4OUAZERQ
.


json_decode() fails sometimes

Every now and then the Library can't decode what comes from the FACT-Finder server. It throws an InvalidArgumentException:
File:
/htdocs/vendor/fact-finder/fact-finder-php-library/src/FACTFinder/Adapter/AbstractAdapter.php:117
Message:
json_decode() raised an error: 0
Stack trace:
#0 /htdocs/vendor/fact-finder/fact-finder-php-library/src/FACTFinder/Adapter/AbstractAdapter.php(186): FACTFinder\Adapter\AbstractAdapter->FACTFinder\Adapter{closure}('')
#1 /htdocs/vendor/fact-finder/fact-finder-php-library/src/FACTFinder/Adapter/AbstractAdapter.php(186): Closure->__invoke('')
#2 /htdocs/vendor/fact-finder/fact-finder-php-library/src/FACTFinder/Adapter/Search.php(789): FACTFinder\Adapter\AbstractAdapter->getResponseContent()
#3 /htdocs/vendor/fact-finder/fact-finder-php-library/src/FACTFinder/Adapter/Search.php(778): FACTFinder\Adapter\Search->createCampaigns()
Most interestingly, when I do a simple reload on the same page, it works then. So I would guess it's not something in our product data that's causing the problem (because there would be the same problematic content in the second request), but something within FACT-Finder itself.

FACT-Finder PHP Library version: 1.3.1
PHP version: 5.7 and 5.6

Greets, Estigy

P.S.: When we used the old PHP Framework, we experienced the same problem. At these times it was an issue of FACT-Finder returning truncated (or otherwise corrupted) data when the search ran into a timeout ... or something along these lines. Maybe this can help.

These problems are environment specific. Please ask your technical contact at Omikron to review the customers FACT-Finder environment.
As an alternative you could increase the default timeout in the connection settings in order to prevent connection read timeouts.


I need help understanding the argument format for the "ip_block_mask" kernel option

My GPU is crashing during mining with ROC version 2.2, and I would like to disable the IP block that appears to be interfering with the recovery by using this kernel module parm: ip_block_mask:IP Block Mask (all blocks enabled (default)) (uint)
I'm assuming that disabling the UVD Block will prevent the RX 580 from crashing.
I need help understanding the argument format for this kernel option for the purpose of disabling some of the blocks.
Btw, I've noticed the IP block layout is different between this RX580 and the Vega 64. Is it possible to disable blocks on a individual device basis?
Here is some bug information:
$ uname -rv
5.0.1-050001-generic #201903100732 SMP Sun Mar 10 07:33:53 UTC 2019

$ lspci -s 0000:20:00.0
20:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X] (rev e7)

$ dmseg -e
...
[Apr10 21:21] gmc_v8_0_process_interrupt: 2 callbacks suppressed
[  +0.000006] amdgpu 0000:20:00.0: GPU fault detected: 147 0x00004801 for process  pid 0 thread  pid 0
[  +0.000005] amdgpu 0000:20:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x0C500000
[  +0.000002] amdgpu 0000:20:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x12048001
[  +0.000002] amdgpu 0000:20:00.0: VM fault (0x01, vmid 9, pasid 32780) at page 206569472, read from 'TC4' (0x54433400) (72)
[  +0.001018] Evicting PASID 32780 queues
[  +9.002235] qcm fence wait loop timeout expired
[  +0.000005] The cp might be in an unrecoverable state due to an unsuccessful queues preemption
[  +0.000012] amdgpu 0000:20:00.0: GPU reset begin!
[  +0.000004] Evicting PASID 32781 queues
[  +0.000001] Failed to evict process queues
[  +0.000002] Failed to suspend process 32781
[  +0.000002] Evicting PASID 32780 queues
[  +0.000861] Evicting PASID 32780 queues
[  +0.006300] Evicting PASID 32782 queues
[  +0.000002] Failed to evict process queues
[  +0.000002] Failed to suspend process 32782
[  +0.437877] amdgpu 0000:20:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring kiq_2.1.0 test failed (-110)
[  +0.000050] [drm:gfx_v8_0_hw_fini [amdgpu]] *ERROR* KCQ disable failed
[  +0.244698] cp is busy, skip halt cp
[  +0.244410] rlc is busy, skip halt rlc
[  +0.001026] amdgpu 0000:20:00.0: GPU pci config reset
[  +0.108658] amdgpu 0000:20:00.0: GPU reset succeeded, trying to resume
[  +0.001605] [drm] PCIE GART of 256M enabled (table at 0x000000F4001D5000).
[  +0.000056] [drm:amdgpu_device_gpu_recover [amdgpu]] *ERROR* VRAM is lost!
[  +1.040532] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012513] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012519] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012513] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012500] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012505] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012512] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012504] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012515] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +1.012489] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, trying to reset the VCPU!!!
[  +0.019906] [drm:uvd_v6_0_start [amdgpu]] *ERROR* UVD not responding, giving up!!!
[  +0.000042] [drm:amdgpu_device_ip_set_powergating_state [amdgpu]] *ERROR* set_powergating_state of IP block <uvd_v6_0> failed -1
[  +0.264129] amdgpu 0000:20:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring uvd test failed (-110)
[  +0.000040] [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP block <uvd_v6_0> failed -110
[  +0.000046] amdgpu 0000:20:00.0: GPU reset(1) failed
[  +0.000205] amdgpu 0000:20:00.0: GPU reset end with ret = -110
[  +0.540503] [drm] Fence fallback timer expired on ring sdma0
[  +0.511980] [drm] Fence fallback timer expired on ring sdma0
[  +0.512367] [drm] Fence fallback timer expired on ring sdma0
[Apr10 21:26] [drm] Fence fallback timer expired on ring sdma1
[  +2.847887] [drm] Fence fallback timer expired on ring sdma1
[Apr10 21:27] [drm] Fence fallback timer expired on ring sdma1
[  +1.951911] [drm] Fence fallback timer expired on ring sdma1
...

amdgpu.ip_block_mask is a number representing a mask of 16 bits, each bit allows activate(1) or deactivate(0) certain feature of the GPU. You need to figure out what is the bit controlling the UVD, I will thell you what I did to find it:
1.- check the output of the following command: sudo dmesg | grep block
look for a block of messages like this:
[drm] add ip block number 0 <vi_common>
[drm] add ip block number 1 <gmc_v8_0>
[drm] add ip block number 2 <cz_ih>
... etc.
2.- Look for the number of the feature you need to disable (in my case uvd_v6_0 was the problem)
DO NOT COPY the number from another computer, because numbers vary even with same hardware, so, this must be done in your computer.
3.- Once you have the number you want to disable  (for example 6) then write down a binary number of 16 digits, like this:
1111111111111111
4.- Now, counting from right to left locate the digit of the feature you want to disable and change it for a zero(the first digit is for feature number 0, the next for feature number 1, the next for feature number 2 and so on) so, if you want to disable a feature with the number six your binary number changes to:
1111111110111111.
5.- You're almost done, now this number needs to be converted to an hex number, you can do it with any scientific calculator or you can install one in your linux (for example galculator), with binary mode enabled enter the binary number in the calc and change mode to hex numbers, in this example, the result is FFFFFFBF, so this is the mask you need to enter in your kernel with the following format(using lowercases):
amdgpu.ip_block_mask=0xffffffbf
and that's it, hope this solve your problem :)

*ERROR* resume of IP block <uvd_v6_0> failed this error has been resolved with kernel 5.3.0-rc1 and onwards, at least for my RX 540 gpu

Is this still an issue?  If not, can we please close it?  Thanks!

Original ticket is more than a year old and the person that opened ticket originally has not responded to the latest request. If this is still an issue, please file a new ticket and we will be more than happy to investigate it. Thanks!


Unable to integrate Meshes.jl geometries that lack parameterization functions

Some Meshes.jl geometries are not yet supported because they currently lack parameterization functions upstream.

[ ] Cone
[x] ConeSurface
[x] Cylinder
[ ] Frustum
[x] FrustumSurface

If these can be added to Meshes.jl then there doesn't seem to be any obvious impediment to implementing integrators for them here.

Meshes.jl just merged a PR I wrote adding a parameterization function for Cylinder.

Looks like a recent update to Meshes.jl also added a parameterization function for ConeSurface, so this should now be implementable.

Updates (14 Aug 2024):

Meshes.jl support for parameterized FrustumSurface was implemented in https://github.com/JuliaGeometry/Meshes.jl/commit/b387402329e12e6427c64c9396aafa32dacbfbc3
The Cone and Frustum geometries still lack parameterizations.
Dropped bullet point about lacking a parameterization for Ball in (>3)-D space -- probably too esoteric to matter

I added support for parametric Cones to Meshes.jl as of v0.50

Closing in favor of #57


feat(backend): Migrate away from EXPERIMENTAL_genesis_records RPC API to raw genesis.json file

fix #393

Is that possible nodejs garbage collection isn't triggered? 2.5G is still a small proportion of your total ram, have a try on config nodejs gc options / or run it in a docker with limited memory: https://docs.docker.com/config/containers/resource_constraints/#limit-a-containers-access-to-memory

give docker  memory limit to 1000M and test with original code, it works fine with testnet and betanet. I think it is your computer do not trigger  garbage collection with 2.5G memory since it is still enough to work. But when memory is small, nodejs will frequently garbage collect.

Try limit memory for docker and test with docker image. Unfortunately, this stream json method is not working as it said using small memory to stream. The implementation works, test with docker is recommended. @frol

I already change to new library and do you think this is the wamp insert issue? The streaming json might be true but insertion is not controlled as expected? @frol

I mean sequelize, sorry @frol

test this version with docker, I tried 500M and out of memory but 1G is enough. @frol

I will keep this PR not merged right now, since mainnet has different json file path and cannot work as testnet and betanet

@icerove Please, revert the irrelevant changes to the docker-compose.yml file


Bulk DNS server info

Sometimes its hard to determine information about DNS servers without really 'digging' into the dig command. Doing this in bulk is even harder. A cool feature for dug would be to have a verb (info?) that would allow users to get information on DNS servers in bulk.
This could be whether or not the server has DNSSEC, which the code already exists for, as well as things like what city/country its in. Im not sure how easy the latter would be to do without an external service...
This should also support exporting this server information with templated output.

For geoip data these guys look cool: https://software77.net/geo-ip/
If used they should get a call out so people donate to support them on dug's repo & docs

ooh theres some weird religious stuff on there 😬

ooh theres some weird religious stuff on there

I looked at this site out of curiousity, & couldn't see anything besides the dove logo, and eventually noticed the subtitle "Christian Web Hosting", managed to find their main site's christian FAQ.
Though I personally don't...  get... it, I checked their TOS & AUP, and it doesn't really appear that they endorse any discriminatory policies that someone might associate with Christianity.
They don't have as broad TOS against hate speech as some services might, in that they mention only "racial" hatred :

For example, we do not allow SPAM, pornography, warez, sites engaged in illegal activity or racial hatred to name a few.

This may be concerning to some people, as this does not preclude other types of discrimination against marginalized groups, in particular LGBTQI+, and combined with their clause

You may not use your site to publish material, which Webnet77 determines, in its sole discretion, to be unlawful, indecent or objectionable. For purposes of this policy, "material" refers to all forms of communications including narrative descriptions, pornography (including photographs, illustrations, images, drawings, logos), executable programs, video recordings, and audio recordings.

They would have broad discretionary power, with which they MIGHT choose to discriminate against LGBTQI+ groups.
This having been said, at no point in their TOS/AUP/any of their messaging do they actually endorse any form of discrimination against LGBTQI+ groups.
Some might view their policy regarding pornography as discriminatory (I personally view the consistent marginalization, deplatforming & delegitimaztion of sex workers on the internet as discriminatory), but it's really not inconsistent with the policies of many service providers online, so I don't know that it constitutes a problem, and there are certainly lots of reasonable grounds for objecting to pornography.
All said and done, besides it generally being unusual/surprising to see a backend web service espousing a religious agenda / religious values, there's nothing that indicates webnet77's religious stuff carries any baggage.
If you give them a shoutout in the repo, docs, or maybe as part of the database update script, maybe it'd be worth throwing up some clause about not being affiliated with them etc

I think thats a great assessment. I can also ensure the implementation is modular enough that the service can be replaced relatively easily should there be a problem down the road. Thanks @matthewstrasiotto!


Pd spelling fixes

Hi Mads,
this PR just puts the spelling in the readme in line with the official sources.
Cheers,
tpltnt

That's great, thanks!


Wrong Example on List.js Homepage

I'm new in using List.js, so I started from the example in the homepage.
The example doesn't work.
I found an error: new List('example-list', options, values);
It should be new List('users', options, values);

Oh, thanks! It's fixed now!


Added BQ Manifest Cronjob for CI

Added the configs for enabling CI for fabric8 analytics big query manifests cronjob

Can one of the admins verify this patch?

@jmelis / @maorfr can you PTAL, trying to get this done by this week 😊

[test]

@jmelis \ @aditya-konarde made the changes requested can you PTAL


[DependencyVerifier] Route DependencyVerifier diags through DiagnosticEngine

This will help ensure it can be tested using DiagnosticVerifier without relying on hooking SMDiagnostic emission. https://github.com/apple/swift/pull/28313 has some discussion of why this is desirable.

I'm having trouble running the Incremental/fail tests locally, so let's see if they pass on CI
@swift-ci please smoke test


Consider adding infra automated test framework

Context
read some articles that look interesting might be worth a look:

https://www.hashicorp.com/blog/testing-hashicorp-terraform
https://terratest.gruntwork.io/
https://github.com/newcontext-oss/kitchen-terraform
https://www.terraform.io/cdktf/test/unit-tests
https://learn.microsoft.com/en-us/azure/developer/terraform/best-practices-testing-overview

I think the original intent of this was to have automated infra tests that aren't template only, so I'll keep this open


Add custom fonts to slate 1.x

Problem
In the folder src/assets/fonts i added a custom font so an eot, woff & woff2 file. But i can't use them with the SCSS files
Is there a workaround to add them to the scss?

Hey @pveen2 -- you'll need to declare the @font-face in your main layout file (theme.liquid) because you'll need to use liquid, more particularly the asset_url filter:
<style>
  @font-face {
    font-family: "Open Sans";
    src: url("{{ '../assets/fonts/opensans.woff2' | asset_url }}") format("woff2")
  }
</style>

and then reference you font as normal in your .scss file:
p {
  font-family: "Open Sans";
}

Does that work for you?
Related: https://github.com/Shopify/slate/issues/410

Yes @t-kelly, thanks. I thought I already reply. But thanks!

It's not working for me unfortunately, the "assets/fonts" folder is being ignored.

I've been wrestling with loading fonts for awhile. The only way I can get this to deploy, is by using global_asset_url. But then I get a 404 from the CDN. The assets/fonts folder is screwing things up:
404 : https://cdn.shopify.com/s/assets/fonts/GTAmerica-Regular.woff2
Here's my code in theme.liquid:
<style>
@font-face {
    font-family: 'GT America Condensed';
    src: url("{{ '../assets/fonts/GTAmerica-CondensedBold.woff2' | global_asset_url }}") format('woff2'),
        url("{{ '../assets/fonts/GTAmerica-CondensedBold.woff' | global_asset_url }}") format('woff');
    font-weight: bold;
    font-style: normal;
}
</style>

Sounds like this needs to be reopened. I'll take a look as soon as I have the chance!

@t-kelly I had the same issue and defining the font faces in theme.liquid resolve it, thanks. But when I try to define fonts in a separate .scss.liquid it doesn't work -- any reason why?

For those looking to solve this today, you can reference web font files from SCSS and the core webpack config will resolve the files. Note that OTFs do not work - see the loader config here.
My slate.config.js file:
const path = require('path');

const alias = {
	'lodash': path.resolve('./node_modules/lodash-es'),
	'scripts': path.resolve('./src/assets/scripts'),
	'styles': path.resolve('./src/assets/styles'),
	'fonts': path.resolve('./src/assets/fonts'),
};

module.exports = {
	slateTools: {
		extends: {
			dev: {
				resolve: {alias}
			},
			prod: {
				resolve: {alias}
			},
		},
	}
};

My fonts.scss file in assets/styles/...:
@font-face {
	font-family: 'Danzza';
	src: url('~fonts/Danzza-Medium.woff');
	font-weight: 500;
	font-style: normal;
}

@font-face {
	font-family: 'Windsor';
	src: url('~fonts/Windsor-Roman.woff');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'Suisse';
	src: url('~fonts/SuisseIntlMono-Regular.woff');
	font-weight: 400;
	font-style: normal;
}

Assets have been simplified in #850 and the change is now available in v1.0.0-beta.12
Docs that have also been updated:

https://github.com/Shopify/slate/wiki/Slate-themes
https://github.com/Shopify/slate/wiki/Template-and-layout-bundles
https://github.com/Shopify/slate/wiki/Local-development


Inconsistency between hash generated in spec and actual hash shown in view in Ruby 1.9.2+

I am using rspec request specs to test for the presence of a particular dragonfly image like this:
page.should have_css("img[src='#{post.photo.thumb('100x100')}']")

but for some reason even though the exact same code is found in the view, the spec fails because the hash generated in the spec and the one actually shown in the view are different.
The test passes in 1.8.7 but fails in 1.9.2+
I am not sure how the hashes are generated so just added a spec for now, but do you have any idea why that might be the case (or any workarounds to test for the presence of dragonfly images in the view?)
The difference is a matter of only 3 characters ("GVF" vs "GRl" in the middle of the url):
VIEW:
http://www.example.com/media/BAhbCVsHOgZmSSImMjAxMS8xMS8yMi8xNl8wM18zNV85ODlfcGhvdG8uanBnBjoGRVRbCDoGcDoMY29udmVydEkiES1hdXRvLW9yaWVudAY7BkZbCDsHOgp0aHVtYkkiDTEwMHgxMDAjBjsGVFsIOgZlOghqcGdJIhctc3RyaXAgLXF1YWxpdHkgODAGOwZG.jpg
SPEC:
http://www.example.com/media/BAhbCVsHOgZmSSImMjAxMS8xMS8yMi8xNl8wM18zNV85ODlfcGhvdG8uanBnBjoGRVRbCDoGcDoMY29udmVydEkiES1hdXRvLW9yaWVudAY7BkZbCDsHOgp0aHVtYkkiDTEwMHgxMDAjBjsGRlsIOgZlOghqcGdJIhctc3RyaXAgLXF1YWxpdHkgODAGOwZG.jpg

I'm not sure why this is - I assume it's to do with character encoding in ruby 1.9.2?
If you don't mind I won't pull this in as I'm not too worried that the hash is different - in a production system the same code would produce the same url each time, and there are ways of getting around it in tests (e.g Dragonfly::Serializer.marshal_decode("BAblahblah...") will give you an array you can inspect, or Dragonfly::Job.deserialize("BAblablah...", Dragonfly[:images]) will give a job that you can inspect)
Having said that if you do find a fix let us know and I'll pull it in

Mark, thanks for getting back!
I understand that this might be a tough one to crack so just added the spec to show where the problem was.
I'm not sure I completely follow the part about serializing/deserializing, what is the "BAblahblah" part? In the context of a request spec, how would one use them to assert that a certain type of image is present in the view?

ah sorry - wasn't obvious - the "BAblahblah..." is the long string that you get in the url, so for example for the url
url = "http://www.example.com/media/BAhbCVsHOgZmSSImMjAxMS8xMS8yMi8xNl8wM18zNV85ODlfcGhvdG8uanBnBjoGRVRbCDoGcDoMY29udmVydEkiES1hdXRvLW9yaWVudAY7BkZbCDsHOgp0aHVtYkkiDTEwMHgxMDAjBjsGVFsIOgZlOghqcGdJIhctc3RyaXAgLXF1YWxpdHkgODAGOwZG.jpg"

you can get
serialized_job = url[/media\/([^\/.]+)/, 1]
job_details = Dragonfly::Serializer.marshal_decode(serialized_job)  # e.g. -> [[:f, "2011/11/22/16_03_35_989_photo.jpg"], [:p, :convert, "-auto-orient"], [:p, :thumb, "100x100#"], [:e, :jpg, "-strip -quality 80"]]

then test job_details (though it's starting to rely on dragonfly implementation and be less of an integration test).
Really, if it were me, I'd either simply test for the image src being vaguely sane e.g. that it matches /media/\w+/, or go the whole hog and follow the link and actually analyse the image (like in the dragonfly cucumber tests).
I don't reckon being too detailed in integration tests (beyond being a sanity check) adds that much value, but that's just my opinion, and I don't know the context.

I see, thanks! In our case we want to verify that a particular dragonfly image associated with a particular record (eg "post.photo" as opposed to for example "other_post.photo" etc.) is shown in the view. Using the methods you described I am able to work around it with the rather cumbersome custom matcher (deeply tied to Dragonfly) shown below, which I guess will have to do for now until we can solve the hash problem! :)
# usage: page.should have_image('image.jpg') OR page.should have_image(post.photo)

def matches?(page)
  @page = page
  @image.is_a?(String) ? find_by_url : find_dragonfly_image
end

private

def find_by_url
  @page.has_css?("img[src='#{@image}']")
end

def find_dragonfly_image
  @page.all('img').each do |img|
    url = img['src']
    dragonfly_hash = url[/media\/([^\/.]+)/, 1]
    if dragonfly_hash
      dragonfly_job = Dragonfly::Job.deserialize(dragonfly_hash, Dragonfly[:images])
      return true if dragonfly_job.uid == @image.send(:uid)
    end
  end
  return false
end


swerve: Ensure offset on NetworkTables is correct at startup

Codecov Report

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

@@           Coverage Diff           @@
##           master      #24   +/-   ##
=======================================
  Coverage   79.31%   79.31%
=======================================
  Files          18       18
  Lines         996      996
  Branches      101      101
=======================================
  Hits          790      790
  Misses        184      184
  Partials       22       22

Impacted Files
Coverage Δ

pyswervedrive/module.py
90.34% <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 802c319...933564a. Read the comment docs.


Icon for Settings, Keyboard Shortcuts and Extensions?

This is just a small little thing. It would improve the aesthetic:

Adding Gear icon to the Settings tab
Adding say a Keyboard Button to Keyboard Shortcuts tab
Adding an extension icon to any extension which is opened as a tab. Perhaps this could be the default logo that is present on all extensions when there isn't any image

This really doesn't need explaining so I won't go on about it.

@beastdestroyer just to confirm, are you talking about these file type icons:

@misolori Yup

The file type icons are set by the seti-ui icon theme, so the icon would need to come from there. The only generic one that is applicable is the gear icon:

@roblourens @sandy081 thoughts on this?

I like it, is that icon used for some file type now?

Right now it's just used for config files (editorconfig, env, etc.)

Sounds perfect for settings and keyboard shortcuts. I'm not sure about extensions?

@roblourens How about the icon which is used for extensions with no cover image, except edited so it would actually be seeable.If so, I could raise issues in a popular icon theme of mine too

Yeah.. it does not get well with extensions editor.


Update W0D5_Tutorial2_Solution_4e7f8943.py

Fix a mistake.

Thanks for being willing to help and contribute! We do ask that for issues like this, you open an issue instead of a PR and we'll fix it. Otherwise, it becomes too messy of us to keep track of a lot of PRs with small fixes and could mess with our CI


Update chefdk to 2.0.28-1

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if updating a cask:

[ ] If the sha256 changed but the version didn’t,
provide public confirmation by the developer: {{link}}

Thank you for the contribution. It was merged directly as 8c0a38872cbdb729a29748c873ddfd5f3afd5159. Your contribution is still credited to you.


Update message-center.md

Fixed linked and wordings as the Microsoft 365 Service Communications API has now been moved to Microsoft Graph

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/7289


Avoid some string allocations.

Benchmark:
test fast_safe   ... bench:         110 ns/iter (+/- 3)
test fast_unsafe ... bench:         103 ns/iter (+/- 3)
test string      ... bench:         189 ns/iter (+/- 6)

#![feature(test)]

extern crate test;
use test::Bencher;

use std::io::Write;
use std::mem;
use std::net::*;
use std::str;

macro_rules! addr {
    () => {
        Ipv4Addr::new(127, 0, 0, 1)
        //SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0)
        //Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff)
    }
}

#[bench]
fn string(b: &mut Bencher) {
    let v = addr!();
    b.iter(|| {
        test::black_box(v.to_string());
    });
}

#[bench]
fn fast_unsafe(b: &mut Bencher) {
    let v = addr!();
    b.iter(|| {
        /// "[1000:1002:1003:1004:1005:1006:1007:1008]:65000".len()
        const MAX_LEN: usize = 47;

        let mut buffer: [u8; MAX_LEN] = unsafe { mem::uninitialized() };
        let remaining_len;
        {
            let mut remaining = &mut buffer[..];
            write!(remaining, "{}", v).unwrap();
            remaining_len = remaining.len()
        }
        let written_len = buffer.len() - remaining_len;
        let written = &buffer[..written_len];

        // write! only provides std::fmt::Formatter to Display implementations,
        // which has methods write_str and write_char but no method to write arbitrary bytes.
        // Therefore, `written` is well-formed in UTF-8.
        let written_str = unsafe {
            str::from_utf8_unchecked(written)
        };
        test::black_box(written_str);
    });
}

#[bench]
fn fast_safe(b: &mut Bencher) {
    let v = addr!();
    b.iter(|| {
        /// "[1000:1002:1003:1004:1005:1006:1007:1008]:65000".len()
        const MAX_LEN: usize = 47;

        let mut buffer = [0; MAX_LEN];
        let remaining_len;
        {
            let mut remaining = &mut buffer[..];
            write!(remaining, "{}", v).unwrap();
            remaining_len = remaining.len()
        }
        let written_len = buffer.len() - remaining_len;
        let written = &buffer[..written_len];

        let written_str = str::from_utf8(written).unwrap();
        test::black_box(written_str);
    });
}


[vtk] x64-windows build fails to download vtk

Is your feature request related to a problem? Please describe.
I'm trying to build a new port so I made a draft PR. It fails to be built on x64-windows because of vtk download failure. Log: https://dev.azure.com/vcpkg/c1ee48cb-0df2-4ab3-8384-b1df5a79fe53/_apis/build/builds/46090/artifacts?artifactName=failure logs for x64-windows&api-version=6.0&%24format=zip
Quote:
-- Downloading https://gitlab.kitware.com/vtk/vtk-m/-/archive/f2aa6ad5be1a97e3fb41ef4680ee2c76c3434ac0/vtk-m-f2aa6ad5be1a97e3fb41ef4680ee2c76c3434ac0.tar.gz...
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:105 (message):

  File does not have expected hash:

          File path: [ D:/downloads/temp/vtk-vtk-m-f2aa6ad5be1a97e3fb41ef4680ee2c76c3434ac0.tar.gz ]
      Expected hash: [ 2f2a273f74d9a583df9e25a4792440d8d89652fa14b3153f2ea5afbd329b50970e7b9bd68e0ccd036baf5c1f3ad7a8302d95c01dbb30d9a46c045987eebf5370 ]
        Actual hash: [ 35e8a2c0ad6cd3c1f02a71a50d781c89f93909ad27030b406fd69f4fea5c1862c48a6e541fd07562947322c3a69bdfdb54206ae51bb86ef7a710f9e9898e9638 ]

  The file may have been corrupted in transit.  This can be caused by
  proxies.  If you use a proxy, please set the HTTPS_PROXY and HTTP_PROXY
  environment variables to
  "https://user:password@your-proxy-ip-address:port/".

Call Stack (most recent call first):
  scripts/cmake/vcpkg_download_distfile.cmake:191 (test_hash)
  scripts/cmake/vcpkg_from_gitlab.cmake:123 (vcpkg_download_distfile)
  ports/vtk-m/portfile.cmake:40 (vcpkg_from_gitlab)
  scripts/ports.cmake:136 (include)

Proposed solution
Fix downloading vtk.
Describe alternatives you've considered
?
Additional context
?

Fixed by #14884

#14884 fixed this :)


Please turn JavaScript on and reload the page

Hello,
thank you for this awesome tool.
I noticed that it doesn't work on some pages, I suppose it is for Cloudflare ddos protection.
Please` turn JavaScript on and reload the page.

 DDoS protection by Cloudflare

 Ray ID: xxxxxxxxxxxxxxxx

Do you know if it's possible to bypass this error?
Thank you and have a good day,
Alessandro

Hi, unfortunately it will not support the situation where javascript is required, it is a 'dumb' or 'simple' approach to just fetching the HTML, converting it to text, and checking the difference..

I added a note to the readme about this situation..

It is sort of possible via commandline using the chrome/chromium headless feature with repl.
echo 'document.body.innerHTML' | chromium-browser --headless --disable-gpu --repl "$URL" 2> /dev/null | sed -e 's/^>>> //'

That will give you a JSON object out with result.value containing the dom html after body.onload (I think :) )
Something similar should be possible to do by talking to the chrom/chromium remote interface. From there it's also possible to take full screenshots of the page that could also be helpful.

@stefanberndtsson that's a good idea, but we are only using the html -> text conversion in this project so far...

@stefanberndtsson @theRAGEhero   https://github.com/dgtlmoon/changedetection.io/tree/javascript-browser   so there's a new experimental branch, I invite you to check it out!


not able to edit fields in HideableView

In HideableView if we give any TextInput fields it is not allowing me to edit the fields.

            this.props.nameChanged({ prop: 'name', value })}
          />

Even though name field is visible it is not allowing me enter anything.

Do you have a bit more code than that. I haven't had any issues with inputs and that isn't enough for me to recreate your issue.

My code is like below:
onButtonPress() {
this.setState({
visible: !this.state.visible
});
}
in render method:

<InputText
placeholder={PLACEHOLDER_FULLNAME}
value={this.props.fullName}
uniqueName={FULLNAME}
validate={this.validations}
onChange={this.handleChange.bind(this)}
onChangeText={value =>
this.props.userDetailsChanged({ prop: 'fullName', value })}
/>

const mapStateToProps = ({ auth }) => {
const { fullName } = auth;
return { fullName };
If i dont put  in my code i.e. not hiding anything then it is allowing me to enter input value.
But now it is not allowing me to enter anything. Can u please have a look on the below url. In the display name field it is not allowing me to enter anything. But email field is not in the HidableView so it is allowing me to enter anything in the email field.
https://user-images.githubusercontent.com/25256931/26948162-fb6bd01a-4c5a-11e7-89fd-f24f9ad12512.png

Ok, I'll test it myself tomorrow. Hopefully I can reproduce your issue and figure out what's going on.


Changed atom.xml and robots.txt from 'nil' to 'null'

The 'nil' argument for layout in both robots.txt and atom.xml is now obsolete and has been replaced with 'null'. I have updated both of these files.
Thank you for sharing your theme!

@t-redactyl thanks for this!


Created a "read only administrator" authorization role

I have added support for a new user role read_only_administrator that has the permissions of a regular user and only the read permissions of an administrator. A read_only_administrator can not approve or reject a project but can view its information. It includes changes to the authorization script and authorization checks in various controller functions that require admin authorization as well as corresponding tests and changes to the web ui. For more background, see ticket #555

These changes will allow 7-7000 agents to be able to view administrator data without being able to reject and review projects.

Currently, administrator is the only role assigned to a human user. The administrator is associated with theEditAll authorization flag.
I have added an additional flag ReadAll and added it to the administrator role in addition to the existing EditAll flag. The read_only_administrator is also assigned the ReadAll flag but not EditAll. The  read_only_administrator is also assigned the ProvisionOnTestCluster flag which is also assigned to the administrator role as it authorizes some fetch request functions but does not authorize any update functions (and so it does not give the read_only_administrator any write access).

Tests have been added for corresponding functions that use the newly created ReadAll authorization flag.

I have disabled the review button in the web application for a read_only_administrator. I tried to delete the whole response cell in the table but doing this caused the link in the name cell to become disabled. I am not sure why this is the case or how the two are connected and I chose not to dig deeper into this issue as it is purely an aesthetic issue and I feel that I have spent enough time on this PR already, but I can look further into it if needed.

@w8896699 re your comment about not being sure if the read only admin should be able to see all the requests, I am under the understanding that the read only admin should be able to see exactly what a regular admin sees. If you can be more specific in what you think that the read only admin I will relay that to Olena to get some direction


chore: replace nyc with c8 for code coverage

Having a look at coveralls.io, I noticed that code coverage seems to be a bit broken right now. I recently found a better tool than nyc called c8 that seems to work with V8's native code coverage capabilities and be used as a drop-in replacement, fixing typescript related issues with nyc. It also gets rid of one additional dev-dependency.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
99 unchanged lines in 11 files lost coverage.
Overall coverage increased (+7.3%) to 94.529%

Files with Coverage Reduction
New Missed Lines
%

lib/outgoing_message.ts
1
97.92%

index.ts
2
93.43%

lib/helpers.ts
2
97.07%

lib/observe_read_stream.ts
2
92.21%

lib/observe_write_stream.ts
2
95.1%

lib/cache.ts
3
92.0%

lib/segmentation.ts
3
89.58%

lib/option_converter.ts
4
94.39%

lib/middlewares.ts
5
87.5%

lib/agent.ts
28
87.17%

Totals

Change from base Build<PHONE_NUMBER>:
7.3%

Covered Lines:
8658

Relevant Lines:
9060

💛  - Coveralls

Oh, as you can see the improvement above already :) nyc wasn't capable of handling typescript, as it seems.


Load ManifestSync's from GitHub - follow GitHub App Pattern

Right now the ManifestSync objects to be processed are provided as configuration files passed to hydros on startup.
This means a repository owner needs to make a change in the directory that configures hydros in order to setup hydros.
I think a better pattern would be to follow the GitHub App pattern and load the configurations from the repositories hydros is installed on.
One question that would come up would be whether it should be the source or destination repo that the ManiestSync should live in?
I think it should be the destination repository because that destination repository is what gets modified by hydros. So when authoring a change to a ManifestSync you should need to prove you have ownership of the destination repository.

See: https://console.cloud.google.com/cloud-build/builds/c92cd6f9-fe6d-447e-80f0-de5280c37140?project=593472949942
I don't think we want to go with GithubApp pattern. As proposed in that doc the idea is to go with a controller pattern and rely on gitops tools to continuously apply the manifests.


How to make LXD server public?

I couldn't find documentation how to make LXD server accessible from local network? Is there any command a local client can do?
lxc config get core.https_address doesn't work.

lxc config set core.https_address ::

Or replace "::" by the IP you want it to bind to. ip:port combination is also supported.
lxc config show

Can be used to see the current config.
And indeed it looks like config get needs fixing.

lxc config show works. But I found that I also need to setup password so that remote client can connect. Right?

I can connect to Ubuntu server from Windows machine. He-he. =)

There are two ways you can setup a trust relationship with a LXD server, either by setting core.trust_password and then entering the password in the client or by copying the client certificate (.config/lxc/client.crt) to the server and then doing "lxc config trust add client.crt" on the server.

Nice. Do you know a place where this documentation could be moved? The the answer to How can I live migrate a container using LXD? can be changed to "Remote LXD server is not configured for remote access".


Update default ManagerInterface implementation/conveniences

createContext must check the kStatefullContexts and not throw if createState isn't implemented.
update host docs

Made part of #163


Differentiate fatal errors from non-fatal errors in logs

Feature Request

As seen in https://github.com/neo4j/neo4j-python-driver/issues/706, it is possible for error messages like Failed to write data to connection IPv4Address(('X', X)) (IPv4Address(('X', X))) to not actually be associated with a transaction failure. For example, it's possible for the application to have a connection fail, have the driver emit that message, pick a new connection from the pool, and continue happily completing the transaction. For searchability, it'd be very useful to know if a given log message resulted in a transaction failing.
Pitch

As a dev building an app that uses the neo4j python driver, I would like to know if log messages like "Failed to write data to connection IPv4Address(('X', X)) (IPv4Address(('X', X)))" actually caused a transaction to fail. Typically when I get paged I will filter for logs at ERROR level and if there are multiple entries of "Failed to write data to connection IPv4Address(('X', X)) (IPv4Address(('X', X)))" that don't actually cause transaction failures then it's confusing and adds debugging time.
Oh for additional information, I am currently using Python driver 4.4.5.

Thanks for reaching out. You've linked issue 706 and I'd like to repeat what I've written there

So what I recommend doing really, is not looking all too much into the driver logs. If there is a condition the driver can't handle, its not the logs that will notify you about it, but an exception that is being raised.

The driver's logs is not where you should look for fatal exceptions. The driver will raise an exception if it can't handle something. So the logging you should probably filter for is log messages from the client application using the driver and not the driver it self. The driver's logs might then be used to drill further into the issue.

I'd like to echo @achantavy issue, for us, non-fatal or no, all log messages of error or above are being sent to our reporting tool and we are getting alot of messages from the neo4j sync driver around failed write connections.
We are using neo4j ~5.14
This has taken time and effort to discover that they're non-fatal and unless we manage these somehow they continue to confuse other developers and contribute towards our usage for our monitoring service.
If these are indeed non-fatal is there a reason to not lower them to warnings? alternatively could there be more granularity over the loggers you use? for example 'neo4j.sync.io', that way I can specifically set the verbosity for the driver to critical without risking missing a significant error from another part of the system.

Hi @OliverFarren
Python allows you to easily configure logging per logger. The driver uses the logger name "neo4j". So you can simply do something along the lines of
import logging

neo4j_logger = logging.getLogger("neo4j")
neo4j_logger.setLevel(logging.CRITICAL)

Hi @robsdedude, my concern with this approach is inadvertantly supressing fatal-errors which would be important to have visibility of. In genreral  I would also expect to be of the error verbosity level. Can I confirm the neo4j-driver only uses CRITICAL for such errors?

@robsdedude I've submitted a PR that implements hierarchical logging to tackle our issue: https://github.com/neo4j/neo4j-python-driver/pull/997, this would ensure we are not supressing fatal-errors whilst giving us the control to reduce the verbosity of the driver logs.

The driver doesn't log fatal errors for you. If the driver encounters some error state which you, as the user, need to be aware of, it'll raise an exception. That's imo the right mechanism for such things, not logging. You may then choose to log those in your application as you see fit.
If you think of it further, requiring libraries to only log errors if they are fatal is futile. There might be a library A wrapping another library B and implementing some retry logic around it. How could B then possibly know if an error is fatal or not. Side note: the driver in itself has multiple layers doing such abstractions. Retry logic sits in a level around raw connections. The connections have absolutely no idea whether their failure will be retried or not.
So in essence the request boils down to: the error log level (and potentially warning as well) is only usable at the very top application level where you can be sure your code isn't consumed as a library.

Hey @robsdedude , let me chime in on that one as I had the same issue. I understand your perspective although I'm not sure if I agree with it for a couple of reasons, let me list them here:

Libraries can and should log and these logs shouldn't be hidden. The best example I can think of right now is a deprecation warning - let's say you deprecate a function (which you just did in the driver), I'd like to be notified of that not only via changelogs (which I may not always catch due to e.g. ~=) but also via (usually) warning messages. That's what is an industry standard I've noticed and I believe that's a good approach as well. If I were to disable logging for the library, I wouldn't have any means to find out about any warnings
1a. BTW, you do have deprecation warnings inside the library although they have a DEBUG level. That's weird as it's for functions internally used

If error logging on the driver is not relevant to the end user, why is it enabled by default? What was your's team reasoning for keeping it if, by your rationale, the only way to communicate with the end user is via exceptions?

That's my two cents, as I've mentioned above, I get your idea here and it's nifty. However, I'm afraid that it might be dangerous if you basically suggest to users to disable the library's logging or keep it at the critical level. That way you also get rid of the way to communicate with a developer using warning/error/critical messages

Thanks for your views @rafaljanicki

Deprecations are not going thought the logging system though. Instead they are emitted through the warnings system . No actionable item is only going though the logging system.
The logging system does provide value to trace back unexpected conditions. The fact that all error and warning logs show up by default the moment you attach a handler to the root logger is a design decision made by Python

When a logger is created, the level is set to NOTSET (which causes all messages to be processed when the logger is the root logger, or delegation to the parent when the logger is a non-root logger). Note that the root logger is created with level WARNING.
-- https://docs.python.org/3/library/logging.html?highlight=logging#logging.Logger.setLevel

I still think all the logs generated by the driver are meant to be consumed with caution. They'll tell you what's going on inside the driver. And an exception raised from the OS to the driver is at least a warning, depending on if that portion of the driver knows how to handle it or not. Again, for anything external to the driver, we'll use return values, raise exceptions, (and issues warnings). I cannot (as explained above) log from the perspective of the driver user as I don't know their code, but only from the driver's perspective.
I'm considering to change the default level of the neo4j logger to critical so that by default, when enabling logging in your application you won't see any driver logs. It seems a bit strange though to work against Python's logging system's defaults like this.

Hi @robsdedude thankyou for engaging on this issue. would there be any issue in reviewing my PR which implements hierarchical loggers?
In anycase, If your proposed solution is for us to not worry about errors of error level and below I can set the neo4j root logger to CRITICAL.
But i'd like to emphasise the broader implication this has for our organisation. Setting the neo4j logger to critical is not an insignificant change in so far as the default assumption we have is that any error, regardless of library or application, indicates a need for action or change in configuration. Misinterpretations like these lead to internal discussions and confusion
For instance, I've spent a number of hours now combing through the python neo4j driver documentation to understand whether I should be doing something differently in order to manage the driver lifecycle because of this error. This would be typical for our developers and we either have to educate internally or add this to our standard template of logging overrides with a note as to why neo4j specifically is being set to critical.
I appreciate that all might be out of the scope of the neo4j library but hope it factors into your considerations. For me personally, similar to botocore, i'd quite like to be able to specifically set the logging of the bolt module to CRITICAL as this would minimise the internal discussions.
Best regards, Oliver

Sorry I see you have replied to my PR, thankyou

I'm considering to change the default level of the neo4j logger to critical so that by default, when enabling logging in your application you won't see any driver logs.

It would at least reflect how the library uses logging: don't look at it unless you want to drill into the driver. Would it satisfy your needs @OliverFarren @rafaljanicki @achantavy ? Do you see a problem with it?

That'd definitely satisfy my case, thanks @robsdedude !

@robsdedude i'd prefer the default wasn't set to critical.
We frequently lower the verbosity to DEBUG and find the transaction logs useful. If the verbosity defaults to critical we would have to explicitly set the logger to debug which runs in opposition to how we manage other library loggers. This would also have impact for when we upgrade the neo4j package in services since we'd need to make application changes.
Personally i'd prefer the hierarchical loggers that way I could set the bolt logger to CRITICAL explicitly whilst being able to keep view the transaction logs.

I'll close the issue now as I think we've discussed the topic fairly well, added hierarchical logging to the driver to aid more selective silencing.
If anyone has arguments (pro or con) that have not yet been mentioned, please feel free to keep commenting.


can't infer Type of Regex

Submitting questions
when use Regex in Union Type as arguements of Method, the compiler cann't infer the type of Union Type. Sorry for poor english words, see detail in code below please~
Submitting bugs
my tmp.cr is like this
def test(name : String|Regex = "myth", word : String|Float32 = "hello")
	if typeof(name) == String
		puts "name is string #{name}"
	else
		puts "name is int #{name.source}" # source is a method of Regex
	end
end

test(name: "myth", word: "hello")

then run  crystal build tmp.cr will get this error:
Showing last frame. Use --error-trace for full trace.

In tmp.cr:5:28

 5 | puts "name is int #{name.source}" # source is a method of Regex
                              ^-----
Error: undefined method 'source' for String

$crystal --version
Crystal 0.30.1 [5e6a1b672] (2019-08-12)
$cat /etc/centos-release
CentOS release 6.9 (Final)

typeof(...) doesn't restrict the type of the variable.
If you do:
if name.is_a?(String)

it works.
https://crystal-lang.org/reference/syntax_and_semantics/if_varis_a.html

I also recommend asking this kind of questions in the forums: https://forum.crystal-lang.org/

I also recommend asking this kind of questions in the forums: https://forum.crystal-lang.org/

Sorry, I thought it's a bug, so come here. Beacause when I use String|Int32 with typeof, the compiler can infer the Type correctly, but String|Regex not.
I will ask my quesiton in the forums later, thanks a lot~


flow stabilization

tracking issue for improving flow stabilization
ideas:

use https://www.reddit.com/r/StableDiffusion/comments/xapbn8/prompttoprompt_image_editing_with_cross_attention/ to find noise for the previous (not warped yet? or should it be warped already? or warp the noise? unsure) frame, then use that as starting point to improve stability
automatic1111 style subseed with a strength param that can be iterated on instead of only having a single random seed + incrementing it iteratively which has a strong effect on the images

not that feasible, decent usage of denoising strength results in decent flow stabilization already by now.


FIRE-128: Create Spec for Setting and Getting TimeZone

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Pete Ahearn seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

:tada: This PR is included in version 0.1.0-next.1 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fix race conditions on entry

closes #1046

This is still a bug. It occurs with any use of Entry and a hook (i.e. logrustash).

Thank you @blocknonip!!. Sorry for the stalebot spam. I thought it would only label/comment on issues, not PRs too.

This lock is far too aggressive. It locks the entire logger, rather than a single entry as it should.

Agree, we should find a better solution than this one.

@flimzy my apologies for merging this so quickly. would you want to work on a PR to lock only the entry? If not I can early this coming week.

I looked at it briefly before posting my comment, and it wasn't immediately obvious the proper solution.  It looks like we need to add a mutex to the Entry type, and lock it in WithFields and in fireHooks, but my first attempt lead to a deadlock.
It's possible that we have other overly-aggressive locks which could be relaxed, too, but it's tricky to do that with confidence, without tests covering all possible races (which are incredibly hard to test).
I'll try again if I have time, but you may get to it faster than me.

@flimzy ok I created #1122 to track. I'll also try taking a look


Added workflow for formatting

Hello,
Out of curiosity : what made you choose stylua as the formatter?
According to their README, they only support Lua5.1 and 5.2 (maybe 5.2 is not fully supported (https://github.com/JohnnyMorganz/StyLua/issues/87) it seems a PR fixed the requirements, but issue is still open and the tool they use to parse sources claims to be Lua5.1 only :shrug:)


error Interface 'PromiseExtendedConstructor' incorrectly extends interface 'PromiseConstructor'.

i have this 2 error only during aot compiler:
1.)
ERROR in node_modules/dexie/dist/dexie.d.ts:53:18 - error TS2430: Interface 'PromiseExtendedConstructor' incorrectly extends interface 'PromiseConstructor'.
The types of 'all(...).then(...).then' are incompatible between these types.
Type '<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => PromiseExtended<...>' is not assignable to type '{ <TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise<...>; <TResult1 = any, TResult2 = never>(onfulfilled?: (value: any, extraParameters: any) => TResult1 | PromiseLike<...>, onrejected?: (reason:...'.
Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible.
2.)
53 export interface PromiseExtendedConstructor extends PromiseConstructor {
~~~~~~~~~~~~~~~~~~~~~~~~~~
node_modules/dexie/dist/dexie.d.ts:89:18 - error TS2430: Interface 'PromiseExtended' incorrectly extends interface 'Promise'.
The types returned by 'then(...)' are incompatible between these types.
Type 'PromiseExtended' is not assignable to type 'Promise'.
89 export interface PromiseExtended<T=any> extends Promise {

+1

Check if it could be same problem as #1061 ?

I wasn't able to resolve it, and there are other typing issues when Dexie.Observable is used in combination with latest Dexie (3.0.2) as described in #847
We decided to wait until Dexie.Observable gets rewritten using latest DBCore middleware 🙏

@aidanxyz You got a rough timeline for the rewrite? Days, weeks, months, years?

I think new approaches based on DBCore would be needed but I will not have the time myself to do it in the coming months. I admit I have flagged that I will do a rewrite but I realize that this will not happen in the coming months. I would very much appreciate if someone could look at building a new add-on for sync. Think of it from a white paper. It does not have to be so complex. I will give my full support!

I'm experiencing the same issue and I'm fairly sure that nothing is overwriting PromiseConstructor, since I only have two dependencies in the whole project:
  "dependencies": {
    "dexie": "^3.0.2"
  },
  "devDependencies": {
    "typescript": "^3.9.7"
  }

Compiling with tsc --noEmit index.ts fails with:
error TS2304: Cannot find name 'PromiseConstructor'.

53 export interface PromiseExtendedConstructor extends PromiseConstructor {

@mrake The original error reported was that "'PromiseExtendedConstructor' incorrectly extends interface 'PromiseConstructor'" while you see "Cannot find name 'PromiseConstructor'". The former means that the interface is found in the type library but not compatible with Dexie's way of extending it while the latter means that the interface isn't declared anywhere.
There is always a risk that a 3rd part lib or even a newer version of Typescript will alter the PromiseConstructor interface in a way that makes Dexie's PromiseExtended fail to compile. If it is a new version of TS that breaks it, we would definitely need to fix it asap. If it is a 3rd part library, we need a repro and determine if this has some workaround somehow.
But in the long term, I will want to remove the PromiseExtended type and just declare the standard Promise type as the return value. The problem is that would be a breaking change for many dexie users that rely on catch(Constructor) and timeout(number) so this would have to happen in a major version of Dexie. The finally() method is already aligned with standard.

Sorry, I misread the error :man_facepalming:. Thanks for the clarification!


Review how we handle daylight savings time

In working on:

#267

I realized that I wasn't sure how we handle DST. The clocks in California change in March and in November - does our shift calculator take that into account, or do we have a bug where shifts are being miscalculated by a full hour for six months of the year?

Good news: I think we are doing the right thing.
Our code is a bit lazy in that it stores everything as UTC-marked datetimes, despite those times actually being local time in Los Angeles timezone:

The things that matter for the calculator are the NOAA tide predictions and our calculated sunrise/sunset times.
We call NOAA like this: https://github.com/natbat/pillarpointstewards/blob/9bf9c0eafe0d887ab53541d6625655dea6afea9c/pillarpointstewards/tides/models.py#L28-L39
Using time_zone=lst_ldt asks NOAA to return tide times in the local time for that area, taking DST into account.
I confirmed that this is working using curl like this:
curl "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?begin_date=20240310%2000:00&end_date=20240310%2004:00&product=predictions&station=9410230&datum=mllw&time_zone=lst_ldt&units=english&format=json&interval=h" | jq

Which produced:
{
  "predictions": [
    {
      "t": "2024-03-10 00:00",
      "v": "2.165"
    },
    {
      "t": "2024-03-10 01:00",
      "v": "1.009"
    },
    {
      "t": "2024-03-10 03:00",
      "v": "0.290"
    },
    {
      "t": "2024-03-10 04:00",
      "v": "0.226"
    }
  ]
}

Note how it skips from 1am to 3am because the hour from 1am to 2am doesn't exist.
In November:
curl "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?begin_date=20241103%2000:00&end_date=20241103%2003:00&product=predictions&station=9410230&datum=mllw&time_zone=lst_ldt&units=english&format=json&interval=h" | jq

{
  "predictions": [
    {
      "t": "2024-11-03 00:00",
      "v": "3.395"
    },
    {
      "t": "2024-11-03 01:00",
      "v": "2.524"
    },
    {
      "t": "2024-11-03 02:00",
      "v": "2.221"
    },
    {
      "t": "2024-11-03 03:00",
      "v": "2.224"
    }
  ]
}

Technically the hour from 1am to 2am occurs twice. It looks like NOAA just ignore that entirely, which is good because it would be confusing if they returned one of those times twice!

I confirmed this in our database as well:
https://www.tidepoolstewards.com/dashboard/?sql=select+*%2C+to_char(dt%2C+'Day%2C+DD+Mon+YYYY+at+HH12%3AMI+AM')
from+tides_tideprediction
where+station_id+%3D+9414131
and+dt+>+'2024-03-10+00%3A54%3A00'+order+by+dt+limit+20%3AqhgALSV9j3xvgSpnH_8oVOlPXg_IuIwTVYEw2jxeTmE&sql=select+*%2C+to_char(dt%2C+'Day%2C+DD+Mon+YYYY+at+HH12%3AMI+AM')
from+tides_tideprediction
where+station_id+%3D+9414131
and+dt+>+'2024-11-03+00%3A54%3A00'+order+by+dt+limit+30%3AiYdEHCbHRgJf82lBmyqmvNYS9KmPEJshlRfPamVaCZo
select *, to_char(dt, 'Day, DD Mon YYYY at HH12:MI AM')
from tides_tideprediction
where station_id = 9414131
and dt > '2024-03-10 00:54:00' order by dt limit 20

Note how it skips the 2am to 3am hour.
And:
select *, to_char(dt, 'Day, DD Mon YYYY at HH12:MI AM')
from tides_tideprediction
where station_id = 9414131
and dt > '2024-11-03 00:54:00' order by dt limit 30

It doesn't have duplicate data four that additional repeated hour.

Similar investigation for sunrise/sunset: https://www.tidepoolstewards.com/dashboard/?sql=SELECT+
++day+||+'+'+||+sunrise+AS+original_datetime%2C
++to_char(to_timestamp(day+||+'+'+||+sunrise%2C+'YYYY-MM-DD+HH24%3AMI%3ASS.US')%2C+'Day%2C+DD+Mon+YYYY+at+HH12%3AMI+AM')+AS+formatted_sunrise%2C
++id%2C
++day%2C
++dawn%2C
++sunrise
FROM+tides_sunrisesunset
WHERE+location_id+%3D+1
++AND+day+>+'2024-03-07'
ORDER+BY+day
LIMIT+5%3AijnAfXB9IbJvDMVobiElCqMoqFg1lUz3ikjYX7jZ_RU&sql=SELECT+
++day+||+'+'+||+sunrise+AS+original_datetime%2C
++to_char(to_timestamp(day+||+'+'+||+sunrise%2C+'YYYY-MM-DD+HH24%3AMI%3ASS.US')%2C+'Day%2C+DD+Mon+YYYY+at+HH12%3AMI+AM')+AS+formatted_sunrise%2C
++id%2C
++day%2C
++dawn%2C
++sunrise
FROM+tides_sunrisesunset
WHERE+location_id+%3D+1
++AND+day+>+'2024-10-30'
ORDER+BY+day
LIMIT+5%3AXoj0Hv8grtn9r-Md8H0i9yx2G47r9ZUcTq8TsJDDi5g
SELECT
  day || ' ' || sunrise AS original_datetime,
  to_char(to_timestamp(day || ' ' || sunrise, 'YYYY-MM-DD HH24:MI:SS.US'), 'Day, DD Mon YYYY at HH12:MI AM') AS formatted_sunrise,
  id,
  day,
  dawn,
  sunrise
FROM tides_sunrisesunset
WHERE location_id = 1
  AND day > '2024-03-07'
ORDER BY day
LIMIT 5

Sunrise leaps forward an hour.
SELECT
  day || ' ' || sunrise AS original_datetime,
  to_char(to_timestamp(day || ' ' || sunrise, 'YYYY-MM-DD HH24:MI:SS.US'), 'Day, DD Mon YYYY at HH12:MI AM') AS formatted_sunrise,
  id,
  day,
  dawn,
  sunrise
FROM tides_sunrisesunset
WHERE location_id = 1
  AND day > '2024-10-30'
ORDER BY day
LIMIT 5

Sunrise leaps back an hour.
So our database tables are storing both tide predictions and sunrise/sunset data in local time, taking DST into account.

Here's the code that populates the sunrise/sunset data: https://github.com/natbat/pillarpointstewards/blob/9bf9c0eafe0d887ab53541d6625655dea6afea9c/pillarpointstewards/tides/models.py#L66-L92
It's using https://sffjunkie.github.io/astral/#sun which is timezone and DST aware.


[Webportal] Remove pai-fs in webportal

Remove pai-fs in webportal.

Coverage decreased (-10.9%) to 59.016% when pulling 12fd5fa94329ad2f89fd9389f30cf42c2eda8d48 on xiongyf/webportal-dev into c530af240692067e4d7c0ad4b0e9eec06f8e500b on master.

Coverage decreased (-10.9%) to 59.016% when pulling 12fd5fa94329ad2f89fd9389f30cf42c2eda8d48 on xiongyf/webportal-dev into c530af240692067e4d7c0ad4b0e9eec06f8e500b on master.

Coverage decreased (-10.9%) to 59.016% when pulling 12fd5fa94329ad2f89fd9389f30cf42c2eda8d48 on xiongyf/webportal-dev into c530af240692067e4d7c0ad4b0e9eec06f8e500b on master.

Coverage decreased (-10.9%) to 59.016% when pulling 12fd5fa94329ad2f89fd9389f30cf42c2eda8d48 on xiongyf/webportal-dev into c530af240692067e4d7c0ad4b0e9eec06f8e500b on master.


DOCS: Document parameters in sample transactions

Issue To Be Solved
Most of the sample transactions in transactions/ have parameters, but need documentation for what each parameter is.
(Optional): Suggest A Solution

Add comments to the top section of each transaction with a description of each parameter. See the transfer_moment.cdc transaction for an example, or suggest a better example here

// Parameters:
//
// recipient: The Flow address of the account to receive the moment.
// withdrawID: The id of the moment to be transferred

@chao-lai made these additions in #89 so I am closing this. 👌


Mipmap specification doesn't work with asset manager in iOS.

Related to #1296
Example that works below but iOS is still blurry. If it take this out, iOS renders as black blocks.
   com.badlogic.gdx.assets.loaders.TextureLoader.TextureParameter param = new         com.badlogic.gdx.assets.loaders.TextureLoader.TextureParameter();

    param.genMipMaps = true;

    if(Gdx.app.getType() == com.badlogic.gdx.Application.ApplicationType.iOS){
        param.minFilter = Texture.TextureFilter.Linear;
        param.magFilter = Texture.TextureFilter.Nearest;
    }
    else{
        param.minFilter = Texture.TextureFilter.MipMapLinearNearest;
        param.magFilter = Texture.TextureFilter.Nearest;
    }

    for(String eachTextureName : this.listOfTextureNames){
        this.assetManager.load(eachTextureName, Texture.class, param);
    }

Can't reproduce this. What does blurry mean? Please provide a compiling ApplicationListener that demonstrates the issue.


new devscreen nav

This is using react-navigation and stays true to @justinhuskey and @cindy-nguyen 's design.

@skellock  long story long.  I've absolutely positioned the navigation elements, because I can't make the navigation header transparent.

At a quick glance, I don't know how it'll be done any other way without opening up react-navigation.


[Feature request] Compatibility with 3.3.1

Please, add compatibility with dnd version 3.3.1 on v11 315

As I am away for the weekend and I haven't tested 3.3.1 + AC5e extensively, I might create a prerelease version for anyone that wants to test it or needs it in the meantime.

Pre-release.
Disclaimer: I haven't tested. Shouldnt be issues, but make a backup to be safe and let me know of any issues encountered.
https://github.com/thatlonelybugbear/automated-conditions-5e/releases/download/v11.315331/module.json

Closing with #146


The Copyright phrase is missing.

I want to use "oauth-sign" but the Copyright phrase is not specified. Please update the Copyright phrase on the source code.

Thumbs up on this request. Since the Apache 2.0 license requires the preservation of the copyright notice at distribution, you are making it hard to impossible to use your library legally in Germany where copyright can not be waivered. I'm not a lawyer, this is just what they tell me ;-) Maybe this link helps: https://www.disclaimergenerator.net/copyright-notices/


Remove ForkType launchd

@maxtaco @gabriel

Can you guys bring me up to speed, what's the intention of this PR?
The desired behavior of ctl restart, when the service is launched from launchd, is just to stop the service and not to restart it.  This way, launchd will restart it.  That was always my intention, but never fully implemented since @gabriel and I disagreed on how to tell the service that it was indeed launched from launchd.  It seems like this PR just strips that all out, and I'm not sure why.

Yeah that was my intent but I see that I got the test backwards in cmd_ctl_restart. I'll switch it tomorrow and double check.

sounds good i should be in tomorrow at around 10

Changed. I tested this by setting KEYBASE_LABEL to something in the environment, starting the service, issuing keybase ctl restart, and making sure the service was not restarted by the client. Of course, removing KEYBASE_LABEL made restart work again as normal.
I have no idea of the larger intend beyond what was written in Jira - just needed a break from installers!

I think this works, but we'll have no idea in 2 weeks what it's doing.  Can you change it so that:

Keep ForkType_LAUNCHD as before, so undo that change.
In Service.Run in service.go, set s.ForkType = ForkType_LAUNCH if s.ForkType is none, and the label is set (look up the label via g.Env.Config())

That should work the same as your code, but it will explicitly model the LAUNCHD fork type, which I want to keep so that the code is more self-documenting
Thanks!

I briefly had the wrong thing pushed just now, but it's back to normal. Shall I merge?

:+1:


DavidFastPad

Ready to submit your project? Nice job! Hopefully you've read the submission guidelines. If not, make sure to read them first.
If you're unsure about the format, make sure to check out the Orpheuspad example and follow the format there.
If this PR isn't a submission, that's okay too! If there's anything about this PR template that seems confusing, let me know in #hackpad on the slack!

(This is a reupload of https://github.com/hackclub/hackpad/pull/163)
I approve
My PR: https://github.com/hackclub/hackpad/pull/80

My PR: #58
I approve

Part of @MrDomocle Workshop

Assuming this is part of @MrDomocle 's workshop - approved!
Fill out the order form here: https://forms.hackclub.com/hackpad, please note that you are part of the workshop!


Make sure errors and tracing data are passed through with stitching

For example, errors might include paths, and tracing includes paths. These currently will point to the underlying schema result, but we should modify them to make sure it points to the result.

Solved in #425


Relax version requirements for dependencies

@webmaster128 Can you think of any reason cw-storage-plus together with cosmwasm-std 1.0.0 could be problematic? I tried it, tests pass, all seems good.

I like! Can you check out https://twitter.com/jonhoo/status/1571290371124260865 and related discussions, especially around -Zminimal-versions? I never tried that but might be word another CI job here.

I like! Can you check out https://twitter.com/jonhoo/status/1571290371124260865 and related discussions, especially around -Zminimal-versions? I never tried that but might be word another CI job here.

Yeah, that sounds like a really good idea. Let's try it. I wonder if we could have the minimal/maximal build be nightly in the future.
I initially removed the lockfile from this repo to follow "Rust best practices", but this convinces me we want the lockfile checked in. Going to revert that.

@webmaster128 Hah. Currently cargo build -Zminimal-versions fails for cosmwasm-crypto. I think we'd have to start there.

@webmaster128 How's this?

What's the plan to get -Zminimal-versions to work? I can run cargo +nightly build -Zminimal-versions in cosmwasm/packages/crypto without issues. Is there some trick?

What's the plan to get -Zminimal-versions to work? I can run cargo +nightly build -Zminimal-versions in cosmwasm/packages/crypto without issues. Is there some trick?

 In my runs, it seemed like it would only pull minimal dependencies that way.

If we wait for https://github.com/CosmWasm/cosmwasm/pull/1465 we can finalize it here. Or do you have a need for this PR to be merged?

If we wait for CosmWasm/cosmwasm#1465 we can finalize it here. Or do you have a need for this PR to be merged?

Nevermind, that's a bad idea. Then you had to set the min cosmwasm-std version to the latest patch release just because some dependencies further down the stack.

Nevermind, that's a bad idea. Then you had to set the min cosmwasm-std version to the latest patch release just because some dependencies further down the stack.

I wonder if I could set those further dependencies explicitly here as a workaround, just to make -Zminimal-versions work even with cosmwasm-std 1.0.0. Is that too much of a hack?

I wonder if I could set those further dependencies explicitly here as a workaround, just to make -Zminimal-versions work even with cosmwasm-std 1.0.0. Is that too much of a hack?

It can be done the same way as in the cosmwasm PR. I think as long as we have some comments around it, this is fine. But make sure to have separate PRs for those to ensure you don't introduce dependencies that you don't need otherwise.

But make sure to have separate ~PRs~ commits for those to ensure you don't introduce dependencies that you don't need otherwise.

How do you mean? I made sure to rebuild after adding every dep and seeing if that fixed an error for me, but I didn't bother with separate commits per every dep.

Basically I wanted you to avoid adding the wasmer and clap stuff that we only need for cosmwasm-vm, not cosmwasm-std. Commit looks great 🏅

Basically I wanted you to avoid adding the wasmer and clap stuff that we only need for cosmwasm-vm, not cosmwasm-std.

Ahhh, I see. I get the gist - I'll avoid adding all those deps by bulk :+1:

I wonder if we want the minimal/maximal builds to be visible on PRs after all. Someone could change the deps and break those builds, and we want to know in the PR, not later.


Explicitly Set content types on tiles and leaves

See https://c2sp.org/static-ct-api and https://c2sp.org/tlog-tiles
If not specified, GCS automatically detects the content type. Right now, checkpoints have the right content type, but tiles and leaves have "application/octet-stream" instead of "application/data".
I haven't added tests, but since we got this wrong once, it doesn't sound crazy to add some. I can do this in a later CL but we'd also need to modify the getObject signature, which sounds a bit cumbersome.

Codecov Report
Attention: Patch coverage is 20.00000% with 4 lines in your changes missing coverage. Please review.

Project coverage is 34.87%. Comparing base (46ec9c2) to head (cfa2548).
Report is 55 commits behind head on main.

Files
Patch %
Lines

storage/gcp/gcp.go
20.00%
3 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #136      +/-   ##
==========================================
- Coverage   35.80%   34.87%   -0.93%
==========================================
  Files          16       33      +17
  Lines        1363     2790    +1427
==========================================
+ Hits          488      973     +485
- Misses        801     1709     +908
- Partials       74      108      +34

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

As an aside, I'm not sure what application/data is - it's not one of the IANA registered types: https://www.iana.org/assignments/media-types/media-types.xhtml#application
I'm checking with Filippo what he intended there, but I've speculatively raised C2SP/C2SP#92 against the specs to change to application/octet-stream which is a registered type.
I agree that being explicit here is >> than relying on auto-detection which may change at any time, though!
Do you want to leave this PR open for the moment until we've clarified the type?

Ah you beat me to it I was about to speak with Martin and raise and issue after lunch if need be. My plan was to submit this to align with specs, and to change this later if the specs change.

I've updated the PR title, but I'll leave the description as it is to keep history and context.

I think it'd be better to update the description to match what the PR does now - this is going to be what's associated with the squashed commit when it's merged so better to have it describe the "atomic whole" rather than a point-in-time history.  The evolution is available for archeology via this PR if anyone needs the context.


Preparing v0.5.0-rc1 for release

What type of PR is this?
/kind feature
/kind api-change
What this PR does / why we need it:
This is the last set of changes required to launch v0.5.0-rc1.
Does this PR introduce a user-facing change?:
NONE

/lgtm


CD-112773 Add methods for verifying tokens with a specified resource …

…and context

[x] @johnwu96822

👍 after last comment is resolved

~/Coupa/go/src/github.com/coupa/sand-go (master_CD-112773)
johnny_lai$ go test
Running Suite: Sand Suite
=========================
Random Seed:<PHONE_NUMBER>
Will run 44 of 44 specs

••WARN[0000] Sand request: retrying after 1 sec on 401
WARN[0001] Sand request: retrying after 2 sec on 401
••••WARN[0003] Sand request: retrying after 1 sec on 401
WARN[0004] Sand request: retrying after 1 sec on 401
WARN[0005] Sand request: retrying after 2 sec on 401
•••••••••WARN[0007] Sand token: retrying after 1 sec because of error: oauth2: cannot fetch token: 404 Not Found
Response:
WARN[0008] Sand token: retrying after 2 sec because of error: oauth2: cannot fetch token: 404 Not Found
Response:
•••••••ERRO[0010] auth error: Post : unsupported protocol scheme ""
•ERRO[0010] auth error: Post : unsupported protocol scheme ""
•WARN[0010] Sand token: retrying after 1 sec because of error: Post : unsupported protocol scheme ""
WARN[0011] Sand token: retrying after 2 sec because of error: Post : unsupported protocol scheme ""
ERRO[0013] auth error: Post : unsupported protocol scheme ""
••••••••••••••••••••
Ran 44 of 44 Specs in 13.046 seconds
SUCCESS! -- 44 Passed | 0 Failed | 0 Pending | 0 Skipped PASS
ok  	github.com/coupa/sand-go	13.426s

[lockit v4.3.0] Merged via Lockit CLI on 2018-05-18 14:06:02.116412 -0700 PDT m=+5.030458935


Remove constructor arguments

Codecov Report
Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (443590a) compared to base (cc9714f).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #23   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          189       188    -1
  Lines         2009      1987   -22
  Branches       226       225    -1
=========================================
- Hits          2009      1987   -22

Impacted Files
Coverage Δ

contracts/lifecycle/base/CheckpointsBase.sol
100.00% <ø> (ø)

contracts/lifecycle/facets/CheckpointsFacet.sol
100.00% <ø> (ø)

...ntracts/lifecycle/libraries/CheckpointsStorage.sol
100.00% <ø> (ø)

contracts/mocks/lifecycle/CheckpointsMock.sol
100.00% <ø> (ø)

...tracts/mocks/token/ERC1155/ERC1155BurnableMock.sol
100.00% <ø> (ø)

contracts/mocks/token/ERC1155/ERC1155Mock.sol
100.00% <ø> (ø)

...ken/ERC1155/proxied/ERC1155BurnableProxiedMock.sol
100.00% <ø> (ø)

...mocks/token/ERC1155/proxied/ERC1155ProxiedMock.sol
100.00% <ø> (ø)

contracts/mocks/token/ERC20/ERC20BurnableMock.sol
100.00% <ø> (ø)

contracts/token/ERC20/ERC20.sol
100.00% <0.00%> (ø)

... and 24 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


merge from 02-contracts into 00-dev

:tada: This PR is included in version 0.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


As a user, I want to be able to access all backend functionality through a portal, i.e. frontend.

We want to connect the frontend and backend with this epic.

[ ] #128

New endpoints added related to SIWE. Session strategy is still being figured out.

New endpoints added for Tenant and Apps

New endpoints for Apps, Org and enterprise
Not currently exposed

more endpoints were created - similar update to last week

getting the app endpoints more streamlined

new endpoints were added (chains and utility endpoints) - same old. 🙃

Created a batch update of endpoints for app rules.


chore: upgrade to storybook 7

@bestguy @gary-mycase any chance you might be able to take a look at this one?

Sure, I'll take a look to review/merge this weekend, thanks for your patience.

Thanks!
I tried upgrading as outlined above, but couldn't successfully run storybook.
What are the specific steps I need to follow to get the docs folder regenerated with the new version?

@kefahi can you share what command you ran and what you expected to happen?

The storybook binary itself was missing, hence running npn run docs/start fails. storybook package that provides the storybook binary was not mentioned in the packages.json file.
I made further tuning to make storybook7 work properly.
Can be found on this git branch https://github.com/edraj/sveltestrap/tree/storybook7-fixes
The above branch is based on the Svelte4 fixes branch that was prepared earlier.
I'm good now with both Svelte4 and Storybook7 without any known issues (including passing CI checks).

Fixed with #576
Thanks all!


Factor out all methods on decision state machine

Coverage increased (+0.5%) to 69.898% when pulling fe0475a11ee5ac288ef53f762f9819829df1334d on andrewjdawson2016:DecisionTaskManager into ff8a5d46c3ef58d8d68f6d612caee5523f307f62 on uber:master.

double check, there is not logic change, just moving of existing logic?


[WIP] Add test for action

This adds a workflow that calls this action, so that we can run the action in PRs to test it.

Test run worked as expected: https://github.com/Nebulaworks/action-standardize-pr-comment/actions/runs/3184459818/jobs/5192885376