Add per-date cache key, extract the main loop into another function

Hello @opatua,
I made a few changes to your kbri_service.py for your approval:

The cache is now per date.
Having a different cache key for each day allows for a more fine-grained control over expiry.
Warning: this unfortunately renders your existing cache invalid

The main content of the loop is extracted out to another function so that it's easier to maintain

Instead of recalculating date based on the current time, the current date is stored in a variable, which gets incremented in every loop.
The previous implementation (recalculating now plus date_counter number of days has one potential edge case, which is if the loop happen across different days, the code will skip one day
Example:
The first iteration began at 2022-03-11T23:59:59, date_counter is 0, so we load slots of 2022-03-11
The second iteration began at 2022-03-12T00:00:00, date_counter is 1, so we load slots of 2022-03-13
Note that 2022-03-12 is skipped

Future enhancements

When a date is sold out, we can safely cache that information for a longer time (or even forever), because a sold out date is unlikely to revert into an available date

Would recommend using time-zone-aware timestamp, set to the time zone of the branch (e.g., Asia/Kuala_Lumpur). The current implementation will follow the server's time zone (usually UTC), which meant it's still "yesterday" up till 08:00 Asia/Kuala_Lumpur time

Hi @ariefwt,
Thank you for this PR.
I have a question about this PR. With your suggestion, if the request to get 10 slots at first you will get the 10 slots and create cache based on dates. But if let's say the next request is to get 5 slots what happens is you will again call the loop one by one checking the Redis by date and to return the response will be quite slow because you again will call the endpoint to check if still available or not. The difference with the current code if the first request is 10 and the next one is 5 it will just slice from the result from 10 and the result will be faster because it will not call their endpoint again.
What do you think about this?

Hello @opatua,
The main difference between the current implementation vs this proposal lies in the fact that each date's cache can be independently invalidated when necessary — other than this, both implementations are similar to each other (it won't call their API when there's a cached data)
However the current implementation has one critical flaw: it calls their API first (line 37) before checking if the date is already inside the array or not (line 44) — this means their API gets called regardless of whether the date is already in the cache or not
Making more calls to Redis may sound bad at first, but this is not really a big deal because Redis is designed for this use case


Change Timing.Timed interface to use nanoseconds in implementation constructors

The original Timed interface has one method:
 long getElapsedMillis();

Its implementations (TimedWithResult and TimedNoResult) accept elapsedMillis in their public constructors.
The Timed interface should have getElapsedNanos() and accept elapsed nanoseconds in implementation constructors, since generally timing should be done using System.getNanoTime. It can still provide a getElapsedMillis() method whose return value can be easily derived by converting the elapsed nanoseconds using the TimeUnit#toMillis method.
But this semantically changes the meaning of the first constructor parameter from milliseconds to nanoseconds, which is kind of a big difference. As a result this would generally be a major version bump. I could argue that the TimedWithResult and TimedNoResult sub-classes, although public, were not intended to be instantiated directly by calling code; instead they were instantiated inside the timeWithResult and timeNoResult methods.
So, we could just note this as an API change and make the change and only do a minor version bump since this is, as its name suggests, a beta library full of beta code. If this were any of our other libraries, it would definitely be a major version bump, but in this case I am inclined to make an exception.

See #454 and related PR #455


FluentSelect Mutiple Selection not working correctly

Cascading selection, the second selection multiple is true:
The first selection selected option changed, trigger the second selection items change, and clear the second selected options, the clear not working, the second selection keep the same position selected options.

Keep same position options selected, even the selected option cleaned by code:

Hi.
Please supply us a minimal reproduction that shows the issue and we can copy/run.

@vnbaaij , Here is the reproduction code:

Test

Select1

<FluentSelect Appearance="Appearance.Filled"
              TOption="string"
              Style="z-index:100"
              Items="@select1Items"
              @bind-Value="@selected1Value">

</FluentSelect>

Select2

<FluentSelect Appearance="Appearance.Stealth"
              TOption="string"
              Style="z-index:1"
              Multiple=true
              Items="@select2Items"
              @bind-Value="@selected2Value">

</FluentSelect>

@code {
    private string[] select1Items = new[] { "option1", "option2" };

    private string selected1Value
    {
        get => _selected1Value; set
        {
            _selected1Value = value;
            select2Items = new[] { Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId() };
        }
    }

    private string[] select2Items = new[] { Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId() };
    private string _selected1Value;

    private string selected2Value { get; set; }
}

Ok, it is not the FluentSelect that is not working correctly, it is your code...

you are using @bind-Value on a multiple select (Select2) which does not do what you assume it does. As indicated in the docs and by IntelliSense: "Gets or sets the selected value. When Multiple = true this only reflects the first selected option value." You need to use @bind-SelectedOptions here
You are using a complex setup with a property and get/set implementation (presumably to use @bind-Value on Select1) which is not needed if you just do the binding yourself by using Value and ValueChanged. This way you can hook into the handling of making a selection in Select1 and call a method to do something with Select2

I have it working (ie. newlist and cleared selection) by using the following code:

Test

Select1

<FluentSelect Appearance="Appearance.Filled"
              TOption="string"
              Style="z-index:100"
              Items="@select1Items"
              Value="@selected1Value"
              ValueChanged="HandleValueChanged">

</FluentSelect>

Select2

<FluentSelect Appearance="Appearance.Stealth"
              TOption="string"
              Style="z-index:1"
              Multiple=true
              Items="@select2Items"
              @bind-SelectedOptions="@selected2Options">

</FluentSelect>

@code {

    private string[]? select1Items = new[] { "option1", "option2" };
    private string[]? select2Items = new[] { Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId() };
    private string? selected1Value;

    private IEnumerable<string>? selected2Options;

    private async Task HandleValueChanged(string? value)
    {
        selected1Value = value;
        await RefreshSelect2();
    }

    private async Task RefreshSelect2()
    {
        select2Items = null;
        await Task.Delay(5);
        select2Items = new[] { Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId(), Identifier.NewId() };
    }
}

The crux is to introduce that tiny delay in the RefreshSelect2 method to give the rendering process the time to 'catch up' with the changes. Without it, it will not work as intended.

What actual make this works is the code:
 await Task.Delay(5);
Any trick inside? @vnbaaij

No, no tricks. Like I said, the tiny delay in the RefreshSelect2 method is needed to give the rendering process the time to 'catch up' with the changes.

This not work now for new version 4.3.0:


allow new rspec 3.5.0.beta1 in gemspec

@marcusg I tackled this one myself to allow more betas before the gem needs re-released.  818eb14eba0e6dd2de9e7d313d66cd95b3a7dfff
Thanks for pointing this out to me though and thanks for being patient!  This one totally slipped by me.

@marcusg a beta version of fuubar has been released with support for the RSpec 3.5 beta.  Please let me know if you have any issues with it.


Remove schedules event?

Hi,
Is it possible to remove schedules events?
Background of this question: am looking to use BigBen for scheduling notifications based on (editable) events on Calendars that use support recurrence.
My idea is schedule the next occurrence of the calendar event as a scheduled event in BigBen, but I need to take into account the user changing or deleting the calendar event, which means removing the scheduled event in BigBen if the next occurrence has changed.

Hi,
yes, you need to update the same event (same tenant and id, with mode as REMOVE). It will remove the event.
e.g.
{
"tenant": "x",
"id": "y",
"mode": "REMOVE"
}
(from event's schema in READ.me):
"mode": {
"type": "string",
"enum": ["UPSERT", "REMOVE"],
"default": "UPSERT",
"description": "Use REMOVE to delete an event, UPSERT to add/update an event"
}

Thank you for the quick response and sorry I missed it in the readme


Update edit

10 Failing tests in EditCommandtest, EditCommandParserTest, AddressBookParserTest.

Codecov Report

Merging #57 (ee027b8) into Update-edits (9a98437) will decrease coverage by 0.25%.
The diff coverage is 66.66%.

@@                Coverage Diff                 @@
##             Update-edits      #57      +/-   ##
==================================================
- Coverage           66.72%   66.47%   -0.26%
- Complexity            503      508       +5
==================================================
  Files                  84       84
  Lines                1704     1730      +26
  Branches              190      191       +1
==================================================
+ Hits                 1137     1150      +13
- Misses                518      520       +2
- Partials               49       60      +11

Impacted Files
Coverage Δ

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)

...edu/address/logic/parser/ContactDetailsParser.java
16.66% <0.00%> (ø)

...rc/main/java/seedu/address/model/ModelManager.java
97.91% <ø> (ø)

...ain/java/seedu/address/storage/JsonAdaptedTag.java
90.90% <0.00%> (-9.10%)
:arrow_down:

...u/address/storage/JsonSerializableAddressBook.java
71.42% <0.00%> (-28.58%)
:arrow_down:

...ain/java/seedu/address/ui/ContactDetailsPanel.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)

...java/seedu/address/logic/commands/EditCommand.java
71.18% <75.00%> (-1.14%)
:arrow_down:

...c/main/java/seedu/address/model/person/Person.java
90.42% <83.33%> (-3.61%)
:arrow_down:

.../seedu/address/logic/parser/AddressBookParser.java
100.00% <100.00%> (ø)

... and 6 more

Continue to review full report at Codecov.

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

I think the current implementation of EditCommand would cause all old entries to be overwritten by new ones, meaning if I already had two numbers in a person and wanted to add one more, this would replace the two with the one instead of adding to them.
I think what we can solve this by doing something like:
1. Initialise empty map, e.g. Map<String, Phone> updatedPhones.

2. Add all original numbers to this map: updatedPhones.putAll(person.getNumbers())

3. Add all edited numbers to this map: updatedPhones.putAll(personDescriptor.getNumbers())

4. Create a new person with these new maps

The edited numbers with the same labels as the old ones will simply replace them if I understand Maps correctly. I don't think we need to create a copy of our original Person for this because we aren't mutating any attribute.

@muraddurrani Does this work?


Add new options for stop command

Hey,
As promised, here is the code for the feature we discussed a week ago.
Two new commands have been added, --queue (-q) and --count (-o). If only -q is specified all workers attributed to the queue will be stopped; if the -o option is specified then you can stop a fixed number of workers for the queue.
I have updated the README and the unit tests; also fixed some minor grammar errors. I haven't written any new unit tests yet since they look quite cryptic but you can advice me in this regards.
I have been using this in my production environment for almost a week and it is solid so far.
Regards

any progress on this issue?

+1 this would be very useful

+1 i'm after this also

I tried to change my composer to use the fork for the above pull request. I added this to my composer.json file:
   {
      "type": "vcs",
      "url": "git://github.com/shadyb/Fresque-plus-plus.git"
    },

But when running composer update it shows, is there a way to pull the fork? Since I'm after this option to restart the workers during deployment.
    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    - The requested package fresque/fresque could not be found in any version, there may be a typo in the package name.
    Problem 2
    - kamisama/php-resque-ex 1.2.5 requires fresque/fresque >=0.2.5 -> no matching package found.
    - kamisama/php-resque-ex 1.2.5 requires fresque/fresque >=0.2.5 -> no matching package found.
    - Installation request for kamisama/php-resque-ex 1.2.5 -> satisfiable by kamisama/php-resque-ex[1.2.5].

    Potential causes:
    - A typo in the package name
    - The package is not available in a stable-enough version according to your minimum-stability setting
    see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

@wa0x6e any update on this? We need this also..


Sice we have global tailwind csswhy we are adding again in renote app?

Sice we have global tailwind csswhy we are adding again in renote app

It's just an example of working module federation using CRA, you can change it how you feel fit. Feel free to send a PR with an improved example.


IME not working in RAIL mode

Describe the bug
Win+Space, Ctrl+Space, Ctrl+Shift fail to switch the IME in RAIL mode.
The behavior is somewhat similar to #7116, however on my side the IME is never activated (even for a second).
To Reproduce
Steps to reproduce the behavior:

Connect to a Win10 (rev. 19041) Computer with XFreeRDP 2.6.1, enabling RAIL mode and open Microsoft Edge
Try to switch on Microsoft Pinyin IME
IME is not activated

Expected behavior
IME can be activated.
Application details

FreeRDP version (xfreerdp /version): 2.6.1
Command line used: xfreerdp /d:"DESKTOP-I83FMUT" /u:"ljypa" /p:"Hppk9AzU" /v:<IP_ADDRESS> +clipboard /a:drive,root,/ +decorations /cert-ignore /sound /scale:180 /dynamic-resolution /span  /wm-class:"cassowaryApp-msedge.exe" /app:"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" /app-icon:"/home/panda2134/.local/lib/python3.10/site-packages/cassowary/base/../gui/extrares/cassowary_app.png"
Output of xfreerdp /buildconfig:

This is FreeRDP version 2.6.1 (2.6.1)
Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_GETLOGIN_R=1 HAVE_GETPWUID_R=1 HAVE_INTTYPES_H=1 HAVE_JOURNALD_H=TRUE HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=ON WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=ON WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=TRUE WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_ICU=ON WITH_IPP=OFF WITH_JPEG=ON WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=ON WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=ON WITH_PAM=ON WITH_PCSC=ON WITH_PROFILER=OFF WITH_PROXY=ON WITH_PROXY_MODULES=OFF WITH_PULSE=ON WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=ON WITH_SWSCALE=ON WITH_THIRD_PARTY=OFF WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=ON WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_XCURSOR=ON WITH_XDAMAGE=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XTEST=ON WITH_XV=ON WITH_ZLIB=ON
Build type:          None
CFLAGS:              -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -flto -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -fno-omit-frame-pointer -DWINPR_DLL
Compiler:            GNU, 11.2.0
Target architecture: x64

OS version connecting to (server side): Windows 10 Pro (rev. 19041)

Environment (please complete the following information):

OS: [e.g. Linux/Windows/Android/..]: Archlinux
Version/Distribution: [e.g. Debian 10, Windows 2008, Android 10]: Archlinux
Architecture: [amd64, arm]: amd64

When connecting the remote app for the first time, I can see IME float bar at the right bottom of the window. I can click on that bar to select IME. But when I close this connection and connect it later, this bar is gone, but the IME set at the first time is kept.

安装第三方输入法，比如中文搜狗输入法(sougou pinyin)，在 remote app 模式里，可以用它自带快捷键 Ctrl+,切换。

@oicu sorry but spoken language is English on FreeRDP

@oicu sorry but spoken language is English on FreeRDP

Install third-party input methods, such as the Chinese Sogou Pinyin input method. In the remote app mode, you can use its own shortcut key Ctrl+, to switch.

This param fix my problem (I use Microsoft Pinyin with zh_CN locale at Windows 11 23H2):
/kbd:layout:0xE0010804,lang:0x0004

And /kbd:layout:0x00000804,lang:0x0004 can have worked for a well, but then suddenly broke. Then I found that /kbd:layout:0xE0010804,lang:0x0004 can work stably.
List all layout/lang codes:
xfreerdp /list:kbd
xfreerdp /list:kbd-lang


[v2.5.10] Backport: [Logging v2] Ensure Windows paths match internal standards

https://github.com/rancher/rancher/issues/32541

closing in favor of https://github.com/rancher/rancher/issues/34625


What is AddListToSiteHelper?

In the line, SPList list = AddListToSiteHelper(site); in the second code snippet,  what is AddListToSiteHelper and what namespace does it live in?

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

ID: 738e0793-372b-a9fd-feae-46f971652064
Version Independent ID: 552fe8ea-6972-aa79-dbff-0b84e20a4638
Content: Using emulators to isolate unit tests for Sharepoint 2010 applications - Visual Studio
Content Source: docs/test/using-emulators-to-isolate-unit-tests-for-sharepoint-2010-applications.md
Product: visual-studio-dev15
GitHub Login: @gewarren
Microsoft Alias: gewarren

@Crisp771 Given that this page has been removed from the Visual Studio 2017 and 2019 documentation, we are not planning to update it at this time. If you found the answer to your question, perhaps you can comment here so that others can find the answer too.


Pt 162089378 cleanup compiler errors

The compiler returns errors in many different ways, and this is first step to clean it up. It is now easier to which errors are those generated by the compiler and which are generated by bugs. The compiler generates 3 types of errors parse_errors, type_errors and core_errors coming from different phases. We now generate better text as well. It is backwards compatible in the HTTP interface through the aect_sophia:compile generating better text.
This is just a first stage but more cleanup would entail making some decisions about how would we like it to work which should be discussed after the release.
This fixes PT-162089378.

@rvirding @sennui @hanssv @happi I took the liberty of amending base branch to develop so we consider twice before where to merge.


Feat/guidelines

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

95 of 95 (100.0%)  changed or added relevant lines in 8 files are covered.
14 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 98.733%

Files with Coverage Reduction
New Missed Lines
%

baseballhub/src/fragments/Notices/NoticeComments/NoticeComments.tsx
14
75.0%

Totals

Change from base Build<PHONE_NUMBER>4:
-0.3%

Covered Lines:
4683

Relevant Lines:
4719

💛  - Coveralls


Build.zig "LazyPath" call requires a small change for Zig 0.12

For Zig 0.12, In build.zig:
.root_source_file = .{ .path = "zigimg.zig" },
The "LazyPath" should be adapted to:
.root_source_file = b.path("zigimg.zig"),
(twice, and possibly also in imported dependencies?)
I'm using Zig 0.13, but this was already documented in the 0.12 release notes:
https://ziglang.org/download/0.12.0/release-notes.html#introduce-bpath-deprecate-LazyPathrelative

Fixed by PR #173


CTAN support

Mitex cli should be able to support ctan, as most latex documents use a lot of packages. The initial possible implementation could include just outputting packages.typ file alongside the converted user file.

I don't quite understand what you mean, it would be nice if I could add more details.

I don't quite understand what you mean, it would be nice if I could add more details.

Right now, I can't use mitex with tex documents that use \usepackage in some way. This is unfortunate, as I can't convert basically any of my latex documents to Typst right now

Mitex cli should be able to support ctan, as most latex documents use a lot of packages

Supporting all of CTAN would mean essentially creating a full tex -> typst transpiler. The most you could hope for is reimplementation of some of the more simple packages.

This is unfortunate, as I can't convert basically any of my latex documents to Typst right now

You may want to check out Pandoc. It's definitely not going to be as good for math, but it might support a larger subset of latex.

Supporting all of CTAN would mean essentially creating a full tex -> typst transpiler. The most you could hope for is reimplementation of some of the more simple packages.

We actually want to reimplement some packages. Then CTAN support should mean that we import commands of packages by \usepackage.
PS: If typst could export some font metadata, we may implement plain tex commands to support translate package code. It is hard and crazy but may come in future.

Supporting all of CTAN would mean essentially creating a full tex -> typst transpiler. The most you could hope for is reimplementation of some of the more simple packages.

We actually want to reimplement some packages. Then CTAN support should mean that we import commands of packages by \usepackage.
PS: If typst could export some font metadata, we may implement plain tex commands to support translate package code. It is hard and crazy but may come in future.

The package functionality reimplemented by mathjax and (to a lesser extent) katex might be a good starting point.


What-if for Microsoft.Network/connections [2021-02-01] re-deployment prints existing PSK

Describe the noise
Resource type  Microsoft.Network/connections
apiVersion 2021-02-01
Client PowerShell
Relevant ARM Template code (we only need the resource object for the above resourceType and apiVersion, but if it's easier you can include the entire template
resource connection 'Microsoft.Network/connections@2021-02-01' = {
  name: connectionName
  location: location
  tags: tags
  properties: {
    virtualNetworkGateway1: { // bogus warning
      id: gateway.id
    }
    localNetworkGateway2: { // bogus warning
      id: localGateway.id
    }
    connectionType: 'IPsec'
    connectionProtocol: 'IKEv2'
    routingWeight: 0
    sharedKey: sharedKey
    enableBgp: false
    useLocalAzureIpAddress: false
    usePolicyBasedTrafficSelectors: false
    trafficSelectorPolicies: [ ]
    expressRouteGatewayBypass: false
    dpdTimeoutSeconds: 0
    connectionMode: 'Default'
    ipsecPolicies: [
      {
        dhGroup: 'ECP384'
        ikeEncryption: 'AES128'
        ikeIntegrity: 'SHA256'
        ipsecEncryption: 'AES128'
        ipsecIntegrity: 'SHA256'
        pfsGroup: 'None'
        saDataSizeKilobytes: 1843200
        saLifeTimeSeconds: 86400
      }
    ]
  }
}

Expected response (i.e. "I expected no noise since the template has not been modified since the resources were deployed)
No changes when re-deploying same template and parameters again
Current (noisy) response (either include a screenshot of the what-if output, or copy/paste the text)
Resource and property changes are indicated with these symbols:
  - Delete
  ~ Modify
  x NoEffect
  = NoChange
  * Ignore

The deployment will update the following scope:

Scope: /subscriptions/5659753a-501e-4e46-9aff-xxxxx/resourceGroups/jkujanpaa-vpn-bug-rg

  ~ Microsoft.Network/connections/z-vpn-z-connection [2021-02-01]
    - properties.packetCaptureDiagnosticState: "None"
    ~ properties.sharedKey:                    "zzzz" => "*******"

  ~ Microsoft.Network/localNetworkGateways/z-vpn-z-localgateway [2021-02-01]
    ~ properties.gatewayIpAddress: "<IP_ADDRESS>" => "[parameters('settings').localGatewayIpAddress]"
    ~ properties.localNetworkAddressSpace.addressPrefixes: [
        0: "<IP_ADDRESS>/32"
      ] => "[parameters('settings').localAddressPrefix]"

  ~ Microsoft.Network/virtualNetworkGateways/z-vpn-z-gateway [2021-02-01]
    - properties.bgpSettings.asn:              65515
    - properties.packetCaptureDiagnosticState: "None"
    - properties.vpnGatewayGeneration:         "Generation1"
    ~ properties.ipConfigurations: [
      ~ 0:

        - type: "Microsoft.Network/virtualNetworkGateways/ipConfigurations"

      ]
    ~ properties.sku.name:                     "VpnGw1" => "[parameters('settings').gatewaySku]"
    ~ properties.sku.tier:                     "VpnGw1" => "[parameters('settings').gatewaySku]"
    ~ properties.vpnType:                      "RouteBased" => "[parameters('settings').vpnType]"
    x properties.enablePrivateIpAddress:       false

  = Microsoft.Network/publicIPAddresses/z-vpn-z-pip [2021-02-01]
  * Microsoft.Network/virtualNetworks/z-vpn-z-vnet

Resource changes: 3 to modify, 1 no change, 1 to ignore.

or
The deployment will update the following scope:

Scope: /subscriptions/5659753a-501e-4e46-9aff-6120ed5694cf/resourceGroups/jkujanpaa-vpn-bug-rg

  ~ Microsoft.Network/connections/z-vpn-z-connection [2021-02-01]
    - properties.packetCaptureDiagnosticState: "None"
    ~ properties.sharedKey:                    "zzzz" => "*******"

  ~ Microsoft.Network/virtualNetworkGateways/z-vpn-z-gateway [2021-02-01]
    - properties.bgpSettings.asn:              65515
    - properties.packetCaptureDiagnosticState: "None"
    - properties.vpnGatewayGeneration:         "Generation1"
    ~ properties.ipConfigurations: [
      ~ 0:

        - type: "Microsoft.Network/virtualNetworkGateways/ipConfigurations"

      ]
    x properties.enablePrivateIpAddress:       false

  ~ Microsoft.Network/virtualNetworks/z-vpn-z-vnet [2020-05-01]
    ~ properties.subnets: [
      ~ 0:

        - properties.privateEndpointNetworkPolicies:    "Enabled"
        - properties.privateLinkServiceNetworkPolicies: "Enabled"

      ]

  = Microsoft.Network/localNetworkGateways/z-vpn-z-localgateway [2021-02-01]
  = Microsoft.Network/publicIPAddresses/z-vpn-z-pip [2021-02-01]

Resource changes: 3 to modify, 2 no change.

Additional context
PSK is visible on properties.sharedKey

What does the "P" stand for in PSK? It looks like this Resource Provider is not marking this property as a secret in their REST API specification.

Hi, is this really just "noise"?
I would consider it to be more of a security issue as the PSK (pre-shared key) is considered a secret but output in clear text. From what I understand it behaves the same also with more recent apiVersion 2022-05-01.
I assume @alex-frankel is correct that this property should be marked as a secret in the specification - makes sense.


(regression) Impossilbe to use JsonResource::collection with paginated query (not eloquent)

Laravel Version: 5.8.35
PHP Version: 7.2.5
Database Driver & Version: Mysq 5.7

Description:
Laravel 5.8.34:
function actionWithoutPaginate() {
    $result = DB::query(...difficult query where is not possible to use eloquent...)->get();

    return CustomResource::collection($result);
}

function actionWithPaginate() {
    $result = DB::query(...dificult query where is not possible to use eloquent...)->paginate();

    return CustomResource::collection($result);
}

class CustomResource extends Resource {
    /**
     * Transform the resource into an array.
     *
     * @param \Illuminate\Http\Request
     *
     * @return array
     */
    public function toArray($request) {
        $image = get_object_vars($this->resource);

        if (isset($image['last_changed'])) {
            $service = app()->make(MyService::class);
            $format  = $service->getConnection()->getQueryGrammar()->getDateFormat();
            $carbon  = Carbon::createFromFormat($format, $image['last_changed']);

            $image['last_changed'] = $carbon;
        }

        return $image;
    }
}

Since 5.8.35:

actionWithoutPaginate - works fine
actionWithPaginate - broken[2019-09-09 08:08:55] testing.ERROR: Cannot use object of type stdClass as array {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Cannot use object of type stdClass as array at vendor\\laravel\\framework\\src\\Illuminate\\Http\\Resources\\DelegatesToResource.php:53)
[stacktrace]
#0 vendor\\laravel\\framework\\src\\Illuminate\\Support\\Arr.php(148): Illuminate\\Http\\Resources\\Json\\JsonResource->offsetExists('resource')
#1 vendor\\laravel\\framework\\src\\Illuminate\\Support\\helpers.php(524): Illuminate\\Support\\Arr::exists(Object(Yggdrasil\\Http\\Http\\Resources\\ObjectResource), 'resource')
#2 vendor\\laravel\\framework\\src\\Illuminate\\Support\\Arr.php(387): data_get(Object(Yggdrasil\\Http\\Http\\Resources\\ObjectResource), Array)
#3 vendor\\laravel\\framework\\src\\Illuminate\\Support\\Collection.php(1107): Illuminate\\Support\\Arr::pluck(Array, Array, NULL)
#4 vendor\\laravel\\framework\\src\\Illuminate\\Support\\Traits\\ForwardsCalls.php(23): Illuminate\\Support\\Collection->pluck('resource')
#5 vendor\\laravel\\framework\\src\\Illuminate\\Pagination\\AbstractPaginator.php(647): Illuminate\\Pagination\\AbstractPaginator->forwardCallTo(Object(Illuminate\\Support\\Collection), 'pluck', Array)
#6 vendor\\laravel\\framework\\src\\Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse.php(28): Illuminate\\Pagination\\AbstractPaginator->__call('pluck', Array)
#7 vendor\\laravel\\framework\\src\\Illuminate\\Support\\helpers.php(1124): Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse->Illuminate\\Http\\Resources\\Json\\{closure}(Object(Illuminate\\Http\\JsonResponse))
#8 vendor\\laravel\\framework\\src\\Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse.php(31): tap(Object(Illuminate\\Http\\JsonResponse), Object(Closure))
#9 vendor\\laravel\\framework\\src\\Illuminate\\Http\\Resources\\Json\\ResourceCollection.php(71): Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse->toResponse(Object(Illuminate\\Http\\Request))
#10 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(733): Illuminate\\Http\\Resources\\Json\\ResourceCollection->toResponse(Object(Illuminate\\Http\\Request))
#11 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(720): Illuminate\\Routing\\Router::toResponse(Object(Illuminate\\Http\\Request), Object(Yggdrasil\\Http\\Http\\Resources\\ResourceCollection))
#12 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(680): Illuminate\\Routing\\Router->prepareResponse(Object(Illuminate\\Http\\Request), Object(Yggdrasil\\Http\\Http\\Resources\\ResourceCollection))
#13 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#14 app\\Http\\Middleware\\CheckClientCredentials.php(29): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#15 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): App\\Http\\Middleware\\CheckClientCredentials->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'marinexprocurem...')
#16 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#18 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#19 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#20 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\ThrottleRequests.php(58): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#21 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 600, '1')
#22 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#24 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(682): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#25 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(657): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#26 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(623): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#27 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(612): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#28 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#29 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#30 vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#31 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#32 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#33 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#34 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#35 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#36 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#37 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#38 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#39 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#40 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#43 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#44 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#45 vendor\\laravel\\framework\\src\\Illuminate\\Http\\Middleware\\FrameGuard.php(18): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#46 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Illuminate\\Http\\Middleware\\FrameGuard->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#47 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#48 packages\\yggdrasil-core\\src\\Http\\Http\\Middleware\\Cors.php(25): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#49 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Yggdrasil\\Http\\Http\\Middleware\\Cors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 packages\\yggdrasil-core\\src\\Http\\Http\\Middleware\\ForceWantsJson.php(22): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#52 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Yggdrasil\\Http\\Http\\Middleware\\ForceWantsJson->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#53 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#54 vendor\\itsgoingd\\clockwork\\Clockwork\\Support\\Laravel\\ClockworkMiddleware.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#55 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(163): Clockwork\\Support\\Laravel\\ClockworkMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#58 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#59 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#60 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests.php(375): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#61 vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Testing\\Concerns\\MakesHttpRequests.php(347): Illuminate\\Foundation\\Testing\\TestCase->call('GET', '/api/v1/MarineX...', Array, Array, Array, Array, '[]')
#62 tests\\Feature\\Api\\v1\\MarineXProcurement\\RecipesControllerTest.php(75): Illuminate\\Foundation\\Testing\\TestCase->json('GET', '/api/v1/MarineX...')
#63 vendor\\phpunit\\phpunit\\src\\Framework\\TestCase.php(1154): Tests\\Feature\\Api\\v1\\MarineXProcurement\\RecipesControllerTest->testIndex()
#64 vendor\\phpunit\\phpunit\\src\\Framework\\TestCase.php(842): PHPUnit\\Framework\\TestCase->runTest()
#65 vendor\\phpunit\\phpunit\\src\\Framework\\TestResult.php(693): PHPUnit\\Framework\\TestCase->runBare()
#66 vendor\\phpunit\\phpunit\\src\\Framework\\TestCase.php(796): PHPUnit\\Framework\\TestResult->run(Object(Tests\\Feature\\Api\\v1\\MarineXProcurement\\RecipesControllerTest))
#67 vendor\\phpunit\\phpunit\\src\\Framework\\TestSuite.php(746): PHPUnit\\Framework\\TestCase->run(Object(PHPUnit\\Framework\\TestResult))
#68 vendor\\phpunit\\phpunit\\src\\TextUI\\TestRunner.php(652): PHPUnit\\Framework\\TestSuite->run(Object(PHPUnit\\Framework\\TestResult))
#69 vendor\\phpunit\\phpunit\\src\\TextUI\\Command.php(206): PHPUnit\\TextUI\\TestRunner->doRun(Object(PHPUnit\\Framework\\TestSuite), Array, true)
#70 vendor\\phpunit\\phpunit\\src\\TextUI\\Command.php(162): PHPUnit\\TextUI\\Command->run(Array, true)
#71 vendor\\phpunit\\phpunit\\phpunit(61): PHPUnit\\TextUI\\Command::main()
#72 {main}
"}

Related to #29858, #29860

Laravel Version: 6.0.3
PHP Version: 7.3.4
Database Driver & Version: Mysq 8.0.15
Same error with DB::table()->paginate() and JsonResource::collection().

Have the same issue after upgrading from 5.7 to 5.8
I use a ResourceCollection and tried the fix of @LastDragon-ru but it did not work.
I followed the stack trace and ended up in the illuminate/Support/helpers.php at line 1124
$callback($value);
I do not really know what to do now. Has anyone a workaround for this? Will this be fixed in future laravel solutions?
Thx

Ok, I found the solution to my problem.
In my Controller I did the following return:
return response(new LeaderboardResourceCollection($paginatedData));
$paginatedData is a LengthAwarePaginator. I changed the return into:
return response(new LeaderboardResourceCollection($paginatedData));
and now it works.
Don't ask me why it did work prior the update to 5.8...

This works for me on a fresh Laravel 5.8 installation:
<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class CustomResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return parent::toArray($request);
    }
}

Route::get('/', function () {
    $result = \DB::table('users')->paginate();

    return \App\Http\Resources\CustomResource::collection($result);
});

Since this has been fixed in Laravel 6.0 I want to ask you all to upgrade please. Thanks.

This works for me on a fresh Laravel 5.8 installation:

@driesvints , I guess your users table is empty - just add few records and it will fail. In 5.8.35 and 6.0.2. Could you please reopen this issue?
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\DB;

class CustomResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return get_object_vars($this->resource);
    }

//    Uncomment to fix
//    public function offsetExists($offset) {
//        return array_key_exists($offset, $this->resource);
//    }
}

Route::get('/', function () {
    DB::table('users')->insert([
        'name'  => 'test',
        'email' =><EMAIL_ADDRESS>        'password' => '',
    ]);

    $result = DB::table('users')->paginate();

    return CustomResource::collection($result);
});

@LastDragon-ru it wasn't empty

@driesvints , mmmm... maybe related to fetch mode and/or database? Because JsonResource::toArray() should fails if resource is stdClass (this is why I used get_object_vars).
https://github.com/laravel/framework/blob/2095b024d76d795ec811404d80cca2326426e7d8/src/Illuminate/Http/Resources/Json/JsonResource.php#L112-L121

PHP 7.3.9
MySql 8.0.15
Laravel 6.1.0
@driesvints Problem still exists

I can confirm this issue is still present.
PHP 7.2
Mysql 5.7
Laravel 6.1.0
return SearchUserResource::collection(
    DB::table(DB::raw("weird query with unions"))->paginate(10)
);

We ended up adding this lines to our Resource
/**
 * This method is necessary just to preserve backward compatibility with non-Eloquent resources.
 * The objects inside a JsonResource now must implement ArrayAccess. This means you cannot create a Resource
 * of a Collection of plain objects like we're doing here with a RAW Query.
 *
 * We're applying the changes suggested by Graham Campbell in #29860.
 *
 * More information
 *      https://github.com/laravel/framework/issues/29916
 *      https://github.com/laravel/framework/issues/29858
 *      https://github.com/laravel/framework/pull/29860
 */
public function offsetExists($offset)
{
    return (is_array($offset) || $offset instanceof ArrayAccess) && isset($this->resource[$offset]);
}

@LastDragon-ru I just realized this can't possible work because resources are eloquent specific. We don't support using it with the query builder. Because stdClass doesn't implements array access it doesn't work like that. See https://laravel.com/docs/6.x/eloquent-resources
@stsepelin @Lloople Please see the above note.

It's good for me, I just found a solution in minutes thanks to @GrahamCampbell, but I would appreciate a warning about this in the upgrade guide at the time or a clarification in the documentation.
Another inoffensive and naive question: If they were compatible with non-eloquent objects before, why removing that compatibility?

@Lloople we didn't add an notice to the upgrade guide because there weren't breaking changes.

If they were compatible with non-eloquent objects before, why removing that compatibility?

We had to make some adjustments for PHP 7.4 (see https://github.com/laravel/framework/pull/29842). Unfortunately that removed the accidental support for the query builder.
Btw, nothing says that we can't look into making it compatible again but that's a discussion for the ideas repo.

This issue is not fixed
Laravel 6.4
PHP 7.3
psql (PostgreSQL) 9.5.10

@Nilanth See the comment directly above yours. Nothing to fix but could be discussed in the ideas repo.

to fix this issue if faced you for php 7.4 :
public function offsetExists($offset) {         return property_exists($this->resource, $offset); }
and i think it must be like this in laravel files:
public function offsetExists($offset)     {         return is_array($this->resource) ? isset($this->resource[$offset]) : property_exists($this->resource, $offset);     }
I'm just saying

This works for me on a fresh Laravel 5.8 installation:
<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class CustomResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return parent::toArray($request);
    }
}

Route::get('/', function () {
    $result = \DB::table('users')->paginate();

    return \App\Http\Resources\CustomResource::collection($result);
});

Since this has been fixed as well in Laravel 6.0 I want to ask you all to upgrade please. Thanks.

Not working in Laravel 7.3 :-(


Provide a spec to create solr cloud backup

Is your feature request related to a problem? Please describe.
Right now the documentation is having very minimal information about how backup solr cloud to persistent volume.
Describe the solution you'd like
Please provide kuernetes spec to back up solr cloud data with with at least some of the available options. Right now our company is planning to go production with this solr-operator but there is documentation regarding how mount the volume which is backed up earlier. If that option is available then solr cloud can be use the same data.
Describe alternatives you've considered
I have found no alternatives so far. If you suggest any work around I can at lease implement that.

Hello @krishnachalla-hv ,
If I understand correctly, you have used the SolrBackup CRD to take backups of your Solr data and now you want to be able to restore from those backups? If so that functionality has unfortunately not been built into the operator yet.
If you just want better examples/documentation around creating backups then that is an easier thing to address in the short term. If the backup isn't working for you right now, it might be because your cloud is not using a ReadWriteMany volume for it's Spec.backupRestoreVolume. Solr requires shared storage to be able to take backups, thus you will need a separate ReadWriteMany volume to act as that shared storage.

Hi @HoustonPutman , thank you for the awesome sole-operator. May I know when the solr backup restore option will be available in the Solr Backup CRD? Is there any work around to restore the backup to Solr Cloud from official Solr REST API?

Hello @krishnachalla-hv , so sorry for the delay.
I'm not sure anyone is currently working on the functionality for restoring Solr. Contributions are always welcome though!
And as for documentation on the S3 endpoint, there is no yaml example, but you can find the API here: https://github.com/bloomberg/solr-operator/blob/master/api/v1beta1/solrbackup_types.go#L79
If you provide values for all of those then it should work.
Something like:
apiVersion: solr.bloomberg.com/v1beta1
kind: SolrBackup
metadata:
  name: solrbackup-test
  namespace: default
spec:
  persistence:
    S3:
      endpointUrl: "s3-endpoint-url.com"
      bucket: "solr-backup"
      secrets:
        fromSecret: <your secret>
        ...
  solrCloud: example
  collections:
    - example

For the secrets section you have to provide your own Kubernetes secret and the key names from the Kube Secret: https://github.com/bloomberg/solr-operator/blob/master/api/v1beta1/solrbackup_types.go#L130
If you are trying to manually do restores, it will be much easier to use the volumes than S3 though.

@HoustonPutman Sorry for the delay. I have implemented the solr backup like in the above mentioned way. I have one more question regarding solr data persistence. Can we specify storage class class in SolrCloud resource under dataPvcSpec?
I mean if want to specify use particular storage class to save my /var/solr/data.

Great, I'm glad it's working for you!
And yes, you should be able to specify a storage class. I am 99% sure that I have done that in the past. The field under dataPvcSpec should be storageClassName.

@HoustonPutman Yes, storageClassName is available under dataPvcSpec. I am closing the ticket. Thank you so much for the help.


Add the term "API Gateway" to the proxy documentation

Following a discussion in RC, when we talk about the proxy extension, we should add the term API Gateway embedded in a descriptive text to better explain what the extension does.
@wkloucek @dragonchaser

This is a long standing issue: https://github.com/owncloud/ocis/issues/1432

My view on this is, that we have multiple api-gateways:

cs3 api gateway, now called "gateway" and coming from reva
dataprovider api gateway, now part of the frontend service and coming from reva
http api gateway, now called "proxy" and coming from oCIS

One could argue about the dataprovider api gateway, because it sits behind the proxy, but still it routes requests by metadata.

As I read this, there are three different API gateway types:

http related
cs3 related
dataprovider related

The challenge is, to have a proper description what each gateway exactly does and how it differenciates from the others.

not so important before GA, other topics like backup and restore are more imporant

bumping

not stale

You are right. In this repo, the fix started with #4911 and its correspondent docs-ocis PR and will be finalized with the above referenced docs-ocis PR. Thanks for highlighting.

https://github.com/owncloud/docs-ocis/pull/301 has been merged, closing


infer interfaces that extend existing interfaces

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

Project coverage is 83.91%. Comparing base (da5ddf2) to head (d65ef8b).

Files
Patch %
Lines

src/Escalier.TypeChecker/InferGraph.fs
95.65%
1 Missing :warning:

src/Escalier.TypeChecker/Unify.fs
96.42%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #252      +/-   ##
==========================================
+ Coverage   83.90%   83.91%   +0.01%
==========================================
  Files          24       24
  Lines       10378    10447      +69
  Branches     1467     1484      +17
==========================================
+ Hits         8708     8767      +59
- Misses       1670     1680      +10

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


Support TOC per file settings

I want different TOC levels for different source files. How to do that?

Currently, it can't be set per file.
But you can set it in the workspace settings (not user settings) to affect only a certain folder.

Thanks. Will this feature be added in the future releases? Seems necessary.

Well, it depends on whether there are many requests for it. Or someone would like to help implement it 😉.

A warm tip, you can use <!-- omit in toc --> comment to ignore certain headings.

Yeah, I knew that. Thanks.


Fix bug in PREREQUISITE relationship type definitions

Simple naming correction for definition of PREREQUISITE related relationships.
These contributions are made available under the Apache 2.0 license.

Change merged to git.spdx.org - changes should be reflected on github soon


Void+Rogue Item as well as some recipe modification

Implementation of a void + rogue weapon type with example (see void coconut)
Also includes recipe modification to boss summon as listed in planned changes.
Currently included:

Rotten Chunk recipe group to make recipes able to use Blood Sample or Rotten Chunk
Recipe change for Storm Flare =>removed Talon and added Stormlion Mandible
Added Stormlion Mandible to Grand Flare Gun recipe (kept Talon as the don't have many other uses)
Added Sandstone Ingot to Desert Medallion recipe (planned changes specifies new drop called Storm Feather but Sandstone Ingots already exist as a drop from the Grand Thunder Bird)
Added Sandstone Ingot and Pearl Shard to Decapodita Sprout recipe
Added Rotten Chunk/Blood Sample to Unstable Core and Ancient Blade recipe (planned changes says to include Dracula Fangs but some kind of new item should be added as a drop from Viscount instead as they are a throwing weapon with only a 14% drop chance)

Went back and deleted the recipes from the merge as it turns out they are already added by another mod. The Void Rogue Item stuff is unchanged.


__STDC_FORMAT_MACROS for inttypes.h on libc6-dev 2.13 (Debian Wheezy)

I don't know how much this matters, but for the libc6-dev inttypes on Debian Wheezy (2.14-38+deb7u6) it is required to define __STDC_FORMAT_MACROS in the preprocessor to have PRIX64 et al. defined.
This is not the case in libc6-dev of Debian Jessie (2.19-13).
I am not an expert and can offer no rationale on why this changed.

Hi tilt12345678,
Thank you for bringing this to my attention!  Can you confirm that 04c0f9896e9f3fc7ddbec177106bd5bae4cebd5a fixes it?
Thanks!


Disable HSTS for dev server

Most other non-Slate 1.x development is via HTTP so by having HSTS on it really makes Shopify development tricky.
This repo is currently on low maintenance. See README for details
What are you trying to accomplish with this PR?
Most non-Shopify Slate 1.x development is done via HTTP. By leaving on Shopify's HSTS policy, it forces any localhost visits to happen via HTTPS. This simply removes that header from Shopify's proxied response so that HTTPS and HTTP can be used on localhost without issue.
Please provide a link to the associated GitHub issue.
https://github.com/Shopify/slate/issues/906
Checklist
For contributors:

[x] I have updated the docs to reflect these changes, if applicable.

For maintainers:

[ ] I have :tophat:'d these changes.

Brilliant! 👍


upgrade datafusion to 43.0.0

close #19

Nice work! Only some changes for the benchmarks are required it seems.


Pull Request Template

Adding a Pull Request Template
Description
In looking through some of the pull requests in the Fluid repo I noticed that there were some that lacked a lot of detail on what was going on.  By introducing a pull request template, all contributors can have a standard way in which to convey what the issue was, how they addressed it, and how the reviewer can test/validate the feature or bug fix.
I recognize it is a bit content heavy but these are things that have been helpful for teams I managed in the past, especially when it is open source or inner source with contributions from everywhere

@brockneedscoffee Thanks a lot for this contribution! I agree that a PR template or templates would be helpful. Yours is a great model to use as a starting point. Our policy thus far has been to encourage people to use issues to describe details and answer the "why," while the PR descriptions focus on the "how." That said, our hygiene is poor, and templates would help.
@skylerjokiel What do you think?

@tylerbutler @skylerjokiel I would say then at least have a template to link to the issue but for sure have instructions on how to test the PR and validate it does what it states it should do


i18n(pt-br): Add translation for guides/upgrade-to/v4.mdx

Description
Add Brazilian Portuguese translation of the upgrade guide to Astro v4.0

@Fryuni - heads up that the code sample for removing the experimental flags was changed to re-add the i18n config at the root level, so that will need updating here!  🙌


[PE-D][Tester B] add command should stack error messages

If there are multiple errors with the fields, the error message only applies to one of the fields making it harder to identify if we messed up multiple fields.

Labels: severity.High type.FeatureFlaw
original: UdhayaShan1/ped#7

to fix this bug, remove the following lines shown in the image in the UG


Reduce allocations in GetVariableItems() with 2-level cache for VariableScopeItemSearcher()

PR Summary

Reduce allocations in GetVariableItems() with 2-level cache for VariableScopeItemSearcher()
Before

After

PR Context
Related #10055

PR Checklist

[ ] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[ ] Summarized changes
[ ] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[ ] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[ ] Not Applicable
OR
[ ] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

This seems like the wrong approach to addressing frequent variable lookups. I feel like I've described a better approach elsewhere, but I'll repeat here anyway.
A better approach would:

Use the VariableAnalysis pass to assign integer indices for each dynamic lookup - one index per unique VariablePath.
Store an array of PSVariable in the FunctionContext for dynamic lookups.
On dynamic lookup, first check the function context for the given index. If the entry is not null and the variable was not deleted (Remove-Variable), you can skip the scope search.
Otherwise, proceed with a normal dynamic search. Upon a successful search, store the found PSVariable in the FunctionContext for subsequent lookups.

This is the rough approach I implemented in PowerShell V2 but never got around to implementing in the new parser. It works quite well.


Remove genid

We might not need it anymore due to changes in SuperaAtomic. Now trackid = traj_id and not file_traj_id. So there is no need for genid.
This will be done after MR6 to avoid chaos as there are too many PRs under testing in ND_CAFMaker

Fixed in https://github.com/DeepLearnPhysics/flow2supera/commit/de4420c8905894a6abefb6372ad979d0b38fc9c2


(many) Make --version indicate pre-releases in a SemVer-compliant way

Not fully happy with the weird semantics in the ProgramTest test method I added, but apart from that, it should be good to go. Might look one more time at that before merging it.

Not fully happy with the weird semantics in the ProgramTest test method I added, but apart from that, it should be good to go. Might look one more time at that before merging it.

I ended up having to fix this to make the tests pass. #108 contains the fix.


Re-engineer feature framework.

This PR implements a series of API-breaking changes to sanitize and improve the feature framework.
They will affect the mastodon-tracking code, because particle detectors and linkers generate features themselves.
Changes in the common Feature API.
The main change is that now Feature is an interface, that ships an API making it resemble a read-only version of a property map, plus commodities to play well with end-users, whether they use features to harvest quantitative data on the image analyzed, or extend Mastodon by writing Feature computers.
A Feature can directly return the values it wraps, using
public V get( O o, V ref );

where V is the type of values and O the type of objects the feature is defined for (vertices, edges, ...).
A feature should also be able to serialize itself to a file, following what we do with property maps.
public void serialize( File file, final ObjectToFileIdMap< O > idmap ) throws IOException;

Because values can be of any type and we want to let 3rd parties compute their own features, this is not super-useful for integration within Mastodon. We work around this by providing FeatureProjections. Feature projections are meant to look like the scalar projections of a feature value on several axis. For instance, the velocity vector is a feature calculated for an edge. Adequate feature projections for this feature would be:

the speed (velocity vector magnitude).
the signed velocity along X axis.
the signed velocity along Y axis.
the signed velocity along Z axis.
theta the velocity vector angle measured in the OXY plane with respect to X axis (0º to 360º).
phi the velocity vector angle measured in the OMZ plane with respect to Z axis (0º to 180º).

The last 6 quantities are scalar and real. Note that they are not orthogonal; end-user comfort should prime. Because they are always scalar and real, they can be used in a general way, e.g. to generate colors for displays or in a table.
Feature projections have physical units now. There is also a IntFeatureProjection marker interface that can be used for feature projections that return integer values, and will be used for instance to beautify the output of values.
There concrete classes to simplify generating features, covering common uses cases:

DoubleScalarFeature
DoubleArrayFeature
IntScalarFeature
IntArrayFeature

Changes in the common feature computation.
Since a FeatureComputer is like a self-contained module that can be contributed by 3rd parties, we should try to make them user-friendly.
Now they need to return a help string that explains what the feature is about and how it is calculated. For TrackMate I did not do that and still receive a lot of emails and posts in the forum about what is the exact definition of a quantity. Of course, feature values are what users make sense of their data with and they want to know what is behind a value before putting it in the paper.
Also, a FeatureComputer can return a config panel. This makes it no longer state-less, but will be useful for special features.
Changes in the Mastodon-app (Mamut) feature computation.
We want to be able to write features that depend on image data, for instance the mean intensity in spots. To do this, the Mamut feature computers need to receive the BDV data. The MamutFeatureComputer does this and should be the mother class for all Mastodon-app feature computers. It also determines the space units from the BDV data.
The DefaultMamutFeatureComputerService passes the BDV data to all feature computers before computation.
Mastodon-app feature calculation dialog.
The calculation dialog exploits all these capabilities. Here is how it looks like, with a feature computers that can be configured. Clocking on the gear icon next to a feature computer shows an info and config panel on the right pane.

It also shows dependencies when any:

The dialog is now present in the Mastodon app MainWindow

and there are a new command to toggle its visibility:
public static final String COMPUTE_FEATURE_DIALOG = "compute features";

However, the feature calculation panel is not Mastodon-app specific, and work with generic feature computers.

I would like to rename IntScalarFeature to IntFeature and DoubleScalarFeature to DoubleFeature to be more consistent with attributes (where there is IntAttribute, IntArrayAttribute, ...)

I don't like that serialization is split between Feature and FeatureComputer (with Feature doing serialization and FeatureComputer doing deserialization).
I would remove serialization for now and make a separate PR when it is improved.

I removed serialization in https://github.com/fiji/TrackMate3/pull/62 (PR to this PR...)

AbstractFeatureComputerService.getDependencyGraph() is broken.
prune() will not work as expected. Here is an example:
Mastodon (1).pdf

Regarding pruning of missing dependencies:
The user can change what features they want computed at every run. For instance they might want to compute features A and B with B depending on A.
If in a subsequent call they remove A to just compute B, we need to re-analyse dependencies to put back A.

Regarding AbstractFeatureComputerService.getDependencyGraph():
I will work on it.

Sure, but we could prune the full dependency graph before.
Which dependencies are missing and therefore which features can never be computed (whatever the user selects) can be determined at initialization.
With the pruned full dependency graph, the per-compute()-necessary getDependencyGraph() no longer has to prune anything, because everything is well-defined.

Regarding dependency graph, I would:

Add a boolean valid flag to nodes. You could make your own AbstractObjectVertex subclass, similar to ObjectVertex
build a full dependency graph of all registered FeatureComputers
if you encounter a missing dependency, add a node for it anyway, and set it's valid flag to false
after the graph is build, propagate valid==false backwards to all parents
remove all nodes that have valid==false from the graph
These FeatureComputers will never run. They can also be removed from the featureComputers map.

Same thing for loops: If there is a cyclic dependency loop, no FeatureComputer on that loop will ever run.
Then in the getDependencyGraph() you can basically do what you do now, but it will not happen that FeatureComputers are missing. And it will also never happen that there is a cyclic dependency.


Grafana do not have cluster and pods dashboards

Description
I setup Heapster, InfluxDB and Grafana within the influxdb doc, just download the kube-config files at this commit: ad3b64845fa9b2211062ba48d80cd84a46c72419
I just modify two things:

adding env name: INFLUXDB_BIND_ADDRESS and value: "<IP_ADDRESS>:8088" for localhost lookup problem.
use NodePort in grafana

After login-in Grafana UI within admin/admin, there's nothing shown (no config, no dashboard).
However, i can manually add the influxDB and cluster/pods dashboard.
Is this normal?
Output of heapster --version:
k8s.gcr.io/heapster-amd64:v1.4.2
 k8s.gcr.io/heapster-grafana-amd64:v4.4.3

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:55:54Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

I've also seen a very similar issue with newer grafana image: gcr.io/google_containers/heapster-grafana-amd64:v5.0.4

grafana starts properly
there are no Pods and Clusters dashboards
Importing the cluster.json results with and empty dashboard (without any panels or graphs)
I've managed to get importing work  by applying this patch: #1796 (which was reverted this year with commit b67384)

I've also found in grafana logs what happens when the setup_grafana script posts these 2 dashboards:

both requests end with HTTP 422 responses:

t=2018-09-06T10:48:52+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=1 uname= method=POST path=/api/dashboards/db status=422 remote_addr=[::1] time_ms=71 size=84 referer=
t=2018-09-06T10:48:52+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=1 uname= method=POST path=/api/dashboards/db status=422 remote_addr=[::1] time_ms=4 size=84 referer=

@ttarczynski I have the same problem
t=2018-09-10T15:57:05+0000 lvl=info msg="Initializing HTTP Server" logger=http.server address=<IP_ADDRESS>:3000 protocol=http subUrl= socket=
Connected to the Grafana dashboard.
The datasource for the Grafana dashboard is now set.
t=2018-09-10T15:57:07+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=1 uname= method=POST path=/api/dashboards/db status=422 remote_addr=[::1] time_ms=4 size=84 referer=
t=2018-09-10T15:57:07+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=1 uname= method=POST path=/api/dashboards/db status=422 remote_addr=[::1] time_ms=4 size=84 referer=

Use heapster-grafana-amd64:v4.4.3 can show dashboard


shearweb placement bugs?

When plotting the cross sections with web placement, the web is placed wrongly, see attached pictures.
I think this is a bug that I managed to correct by modifying some indexing in the keypoints.py module.
At line 413 for shear web placement on LP side, I added the - 2 where n is calculated.
# get shear web placement on LP side
if lp["pt"]:
try:
n = self.key_labels[le:].index(lp["pt"]) + le - 2
This seems to fix the problem. Can you verify this, please? I'm using the yaml file "\pyNuMAD\src\data\blade_yamls\BAR0_NREL_1_4_2021.yaml" for the trials. It also happened with other blade yamls.

In the internal mesher, there's also an issue with the web placement. I've added some code  in the mesh_gen.py module to export some cross sections for the purpose of using BECAS. When plotting the cross section 16 from the blade.geometry.coordinates with webs and the mesh at the same location, it's clear that the shear web positions do not coincide. You can also see this by plotting in 3D the elset "set_allShearWebEls".

It seems this has something to do with the spline definitions (splineXi, splineYi, splineZi) that are used to generate the mesh for the shearwebs. When plotting these together with the blade coordinates at the same location, they don't overlap properly (shift in y) and the splineXi points at the HP (pressure side) of the airfoil seem wrong:

In addition to the above, there's another bug in the keypoints.py module in the section where shear webs are added. In the 'elif' blocks for 'hp["pt1"]' and 'hp["pt3"]' (similar for the lp section): In the function call for the interpolator_wrap, the k_arclen and k_cpos values are not updated for each new k value. Either do this in the loops  "for k in range(num_istations):" or replace k_arclen and k_cpos by geometry.arclength[ns : nf + 1, k] and geometry.cpos[ns : nf + 1, k], respectively.


Emphasise runtime in README

Thanks so much for your experimentation in this area. This project is pretty awesome.
When trying this plugin out on a toy project, I got stuck for a while because the runtime requirement wasn't mentioned until the last half of the readme. To help others avoid this mistake, I've emphasised its requirement in the intro and setup section at the top.

Thanks, @markdalgleish, looks good! Indeed, runtime requirement should be mentioned there. Always good to get fresh eyes at a project.
Glad to merge first PR to this repo :+1:


https://docs.microsoft.com/fr-fr/azure/cloud-solution-provider/overview/azure-csp-available-services

Could you please add a note to say APSS is only for Direct CSP and Indirect CSP Provider and not available for Indirect Resellers, please ?
A lot of partner/ISV are confused by this capability

⚠ Idea migrated from UserVoice
Created By: Jean-Robert
Created On: 2018/03/05 10:22:07 +0000
Votes at Migration: 1
Supporters at Migration: 1

This is content related, so will be closed shortly. @KirillKotlyarenko @isaiahwilliams - can you help address the feedback?

We'll update it in the next version of the page, thank you.

Thanks @KirillKotlyarenko - please let us know once this is live.

Ping @KirillKotlyarenko ☺

Sent a email to  @KirillKotlyarenko to follow up.

Done.

@KirillKotlyarenko Thanks for follow up. I will close it as resolved.


eth_getBlockByHash size is incorrect, missing withdrawals

Describe the bug
In the rpc-compat test eth_getBlockByHash:

The size parameter is wrong (off by one, maybe incorrect length calculation due to withdrawals?)
The author field should not be returned
Empty withdrawals should be returned

Here is the RPC request, response, and expected response:
>>  {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2",true]}
<<  {"jsonrpc":"2.0","result":{"hash":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","parentHash":"0x1fc027d65f820d3eef441ebeec139ebe09e471cf98516dce7b5643ccb27f418c","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","author":"0x0000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","stateRoot":"0xa112033b100ca01e159de21f1bb229133c7734c616bbf34c2f51032c6da71f75","transactionsRoot":"0xbf06cffa242d5b5d567567b318fc73c54364a73827ab4cdbca7a9db1c788581a","receiptsRoot":"0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","number":"0x1","gasUsed":"0x5208","gasLimit":"0x4c4b40","extraData":"0x","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","timestamp":"0xa","difficulty":"0x0","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","totalDifficulty":"0x1","uncles":[],"transactions":[{"hash":"0x74e41d593675913d6d5521f46523f1bd396dff1891bdb35f59be47c7e5e0b34b","nonce":"0x0","blockHash":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","blockNumber":"0x1","transactionIndex":"0x0","from":"0x658bdf435d810c91414ec09147daa6db62406379","to":"0x658bdf435d810c91414ec09147daa6db62406379","value":"0x3e8","gasPrice":"0x342770c1","gas":"0x5208","input":"0x","r":"0xaf5fc351b9e457a31f37c84e5cd99dd3c5de60af3de33c6f4160177a2c786a60","s":"0x201da7a21046af55837330a2c52fc1543cd4d9ead00ddf178dd96935b607ff9b","v":"0xa95","chainId":"0x539","type":"0x0"}],"size":"0x28a","baseFeePerGas":"0x342770c0"},"id":1}
response differs from expected:
 {
   "id": 1,
   "jsonrpc": "2.0",
   "result": {
-    "author": "0x0000000000000000000000000000000000000000",
     "baseFeePerGas": "0x342770c0",
     "difficulty": "0x0",
     "extraData": "0x",
     "gasLimit": "0x4c4b40",
     "gasUsed": "0x5208",
     "hash": "0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2",
     "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
     "miner": "0x0000000000000000000000000000000000000000",
     "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
     "nonce": "0x0000000000000000",
     "number": "0x1",
     "parentHash": "0x1fc027d65f820d3eef441ebeec139ebe09e471cf98516dce7b5643ccb27f418c",
     "receiptsRoot": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2",
     "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
-    "size": "0x28a",
+    "size": "0x28b",
     "stateRoot": "0xa112033b100ca01e159de21f1bb229133c7734c616bbf34c2f51032c6da71f75",
     "timestamp": "0xa",
     "totalDifficulty": "0x1",
     "transactions": [
       : {
         "blockHash": "0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2",
         "blockNumber": "0x1",
         "chainId": "0x539",
         "from": "0x658bdf435d810c91414ec09147daa6db62406379",
         "gas": "0x5208",
         "gasPrice": "0x342770c1",
         "hash": "0x74e41d593675913d6d5521f46523f1bd396dff1891bdb35f59be47c7e5e0b34b",
         "input": "0x",
         "nonce": "0x0",
         "r": "0xaf5fc351b9e457a31f37c84e5cd99dd3c5de60af3de33c6f4160177a2c786a60",
         "s": "0x201da7a21046af55837330a2c52fc1543cd4d9ead00ddf178dd96935b607ff9b",
         "to": "0x658bdf435d810c91414ec09147daa6db62406379",
         "transactionIndex": "0x0",
         "type": "0x0",
         "v": "0xa95",
         "value": "0x3e8"
       }
     ],
     "transactionsRoot": "0xbf06cffa242d5b5d567567b318fc73c54364a73827ab4cdbca7a9db1c788581a",
     "uncles": [
     ],
     "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
+    "withdrawals": [
+    ]
   }
 }

Steps to reproduce
Run the steps in #851, but the docker image MUST be built in the dan/hive-ci branch, due to bug fixes.
Hive command:
./hive --client reth --sim ethereum/rpc-compat --sim.limit "/eth_getBlockByHash"

Node logs
No response
Platform(s)
No response
What version/commit are you on?
No response
Code of Conduct

[X] I agree to follow the Code of Conduct

missing withdrawals

I'm not convinced this is the reason, because there are no withdrawals, no?
perhaps it's:
https://github.com/paradigmxyz/reth/blob/00bcb210a0d33ec9d32e50edcc0466a835d5b7b9/crates/primitives/src/header.rs#L229-L229

#1886 fixed this issue minus the off by one on the size

oh lol


fix: remove wrong use of createRef

Details
Remove the wrong use of React.createRef
Fixed Issues
$ https://github.com/Expensify/App/issues/30935
PROPOSAL: https://github.com/Expensify/App/issues/30935#issuecomment-1797108587
Tests

Open ND and log in with any account
Open any chat
Send any message
Verify that no console error appears

[x] Verify that no errors appear in the JS console

Offline tests

Open ND and log in with any account
Open any chat
Send any message
Verify that no console error appears

QA Steps

Open ND and log in with any account
Open any chat
Send any message
Verify that no console error appears

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/126839717/c76e91ae-7144-461a-8f2b-181d5ead656c

Android: mWeb Chrome
https://github.com/Expensify/App/assets/126839717/fafa3f42-8be1-48de-9f9b-e4052afb859e

iOS: Native
https://github.com/Expensify/App/assets/126839717/1695cb2d-a207-4de3-887e-d9fc65254570

iOS: mWeb Safari
Uploading 30935_ios_safari.mp4…

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/126839717/32c7386b-5ab5-4a3a-bf78-0ff1a9769670

MacOS: Desktop
https://github.com/Expensify/App/assets/126839717/4086d1a7-d31f-4481-b3f4-f2c05fe2cc52

@robertjchen
Can you help me figure out the performance test issue?

@s-alves10 no worries about performance tests. Already happening on main

@s-alves10 can you check if this PR might fix https://github.com/Expensify/App/issues/30947 as well?

@situchan
I think so. The root cause of the issue looks same as one of this.
And New messages button works fine on both web and desktop in my solution

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to production by https://github.com/puneetlath in version: 1.3.97-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/robertjchen in version: 1.3.98-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.98-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


fix(deps): update terraform time to latest for the deployable architecture solution

This PR contains the following updates:

Package
Type
Update
Change

time (source)
required_provider
minor
0.11.2 -> 0.12.0

Release Notes

hashicorp/terraform-provider-time (time)
v0.12.0
Compare Source
ENHANCEMENTS:

resource/time_static: If the rfc3339 value is set in config and known at plan-time, all other attributes will also be known during plan. (#255)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

:tada: This issue has been resolved in version 1.16.3 :tada:
The release is available on:

GitHub release
v1.16.3

Your semantic-release bot :package::rocket:


Reloading integration test

We should have an integration test that runs a daemon, does a bunch of stuff, then closes. Then it reopens and we make sure everything loaded correctly and that all the general functions still work.

Some good improvements have been made here. Some of the modules still have a w ays to go, but in general I've started including reloading into the test suite.


(feat): swap out zarr categorical array for xarray

@ivirshup do you mind if I leave the xarray dependency for now and then we can double back to this?

Fine to leave for now. Can this get tests?


PDF and DOCX support in Write File - Feature Improvement, close #548

Description

The Write File Tool can now support writing the results and discussions in a PDF or a DOCX file, with proper formatting and images embedded.

Related Issues

#548
Solution and Design

Libraries called pdfkit and htmldocx are being leveraged to do the writing process.
The content initially used to be stored in a Txt file using the write tool is formatted and styled through an HTML file using an LLM.
Images generated by the agent are extracted and embedded in the same HTML file.
This HTML file is now stored in various formats like PDF & DOCX.

Test Plan

Asking the Agent to store the results in a PDF or DOCX file.
Navigate to the workspace folder to find the generated PDF or DOCX.

Type of change

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

Checklist

[ ] My pull request is atomic and focuses on a single change.
[ ] I have read the contributing guide and my code conforms to the guidelines.
[ ] I have documented my changes clearly and comprehensively.
[ ] I have added the required tests.

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

@TransformerOptimus  @luciferlinx101 @Fluder-Paradyne can you please review this PR. Thanx!

Hey @TransformerOptimus , @Fluder-Paradyne , @luciferlinx101 . I have fixed the image generation tool update bug. Now the images are again getting embedded whenever generated. Have checked the whole flow. Please review the current changes. Thanks a lot!

Just tested this out, tried saving files as a PDF and as DOCX. It's exporting as a HTML. I had asked the agent to save it as a PDF or DOCX but the final output was in HTML.


Improve Task Logging

Right now the same prefix is repeated many times for logging in the tasks.py file. Figure out a way to extract that prefix and place it after all the other prefixes automatically for all logging calls in the module. This is probably best done with a LoggerAdapter. You can see an example here.

This is now less relevant for the tasks module specifically but would be useful for the project as a whole. Along that note, the default format for log messages should be improved (i.e. I don't need process or thread numbers, at least in local)

I have taken a first tilt at this and failed to come up with a satisfying implementation. The issue is that, while it is probably possible to just prepend an extra string to the log message, in all the examples I saw it seems to be an unwritten rule to instead pass context arguments on to the formatter to insert them. However, I don't want to configure a format that depends on models specific to my app. I will probably fix it when I get rid of the django frontend, so I can switch the model __str__ methods to be short representations rather than display names (which now that I've written out sounds like something I might want to differentiate anyway). Once I can confidently call the object.__str__ in the log format, I can add a filter that depends on some general object being defined for the context, which feels much more sensible (e.g. it could be a request at the API level).


Update editions-and-components-of-sql-server-2017.md

Updating content for auditing

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

#sign-off


fix: ensure to use build for examples

@yisding this fixes the build problem. Issue was: examples have been type-checked with latest llamaindex release in CI - but that didn't work as the example code already references new code from the local build. This PR ensures that we're using the local build.

Note: we can't set llamaindex version in examples to workspace:*: this would use the local build for pnpm but won't work for just using npm


How can i use ajv-formats in JS ?

I'm using the minified version of ajv7 in Javascript, and i want to support other formats, which are in the ajv-formats package.
I want to import ajv-formats, which is written in typescript, to my Javascript project.
Is there a possibility to make it ?
Does a minified version of ajv-formats exist ?

I should be usable with require - please submit an example that doesn't work - possibly duplicate of #28?
closing this one - please resubmit with more details if needed.


⚠ Bofrost.com has degraded performance

In 2e21a94, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 2199 ms

Resolved: Bofrost.com performance has improved in 818ca70 after 6 minutes.


Update v1.5.x to latest version

@peknis you can find a doc build in the artifacts of the "Build documentation (relese)" action.


Dependabot, don't bump our setuptools

We need setuptools<54 because newer versions don't play nicely with our
build process.
https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates#ignore
Signed-off-by: Adam Cmiel<EMAIL_ADDRESS>Maintainers will complete the following section

[ ] Commit messages are descriptive enough
[ ] Code coverage from testing does not decrease and new code is covered
[ ] JSON/YAML configuration changes are updated in the relevant schema
[ ] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[ ] New feature can be disabled from a configuration file

Telling dependabot to ignore the major version was not enough to discourage it from bumping to the previous major version (#1704). This should hopefully do the trick

No release notes, CI config