Some improvements to interfaces and performance

Purpose
This SDI proposes some clean-up of some interfaces in the current ClimaCoupler API so to improve on some of its aspects, such as type-safety and overall compiler optimization and performance.
Cost/Benefits/Risks
Costs
The costs could be shared across multiple co-authors that can concurrently work on separate files following the same improvement patterns or on the same pattern across different files.
Benefits
Benefits include:

an easier to read and follow interface
type-safety
reduced allocations
performance speed-up
dependencies stability
identification of missing interfaces in upstream packages (e.g., ClimaCore)

Risks
None identified at the moment.
People and Personnel

Lead or Co-Lead of some parts of this SDI: @valeriabarra
Potential Collaborators: @LenkaNovak , @juliasloan25 ?
Reviewers: @charleskawczynski

Components
Examples of components (not an exhaustive list) include:
In src/Utilities.jl:

[ ] Avoid abstract types in structs
[ ] Fix broken docstrings
[ ] Type-stability of functions
[ ] swap_space should or shouldn’t allocate? (Inline it and avoid parent).

In Regridder.jl:

[ ] Use using ../  to load ClimaCoupler to avoid possible conflicted versions
[ ] FT_dot is allocating and referencing to an undefined var. Can we remove this function?
[ ] nan_to_zero should throw a @warn to warn the user that NaNs were detected
[ ] Everywhere we are using directly ClimaCore internals, such as parent it means that ClimaCore is not providing that interface that users need
[ ] Make comm_ctx a required argument (not optional) to avoid possible conflicts

Specifically, an example of how to avoid abstract types in structs is, instead of having
struct CoupledSimulation{FT, ...}
...
end

we would have:
float_type(::CoupledSimulation{FT}) where {FT} = FT
FT = float_type(coupler_sim)

Inputs
These inputs were kindly provided by @charleskawczynski and can be refined/modified further as we identify more points of improvement.
Results and deliverables
Better, type-safe, and more optimized interfaces in ClimaCoupler.
Task Breakdown And Tentative Due Date
(A preliminary list of PRs and a preliminary timeline of PRs, milestones, and key results)

[ ] Documentation improvements fixing broken docstrings (week 1)
[ ] Improve on dependencies inclusions to avoid conflicted versions (week 1)
[ ] Remove abstract types in structs and type-stability of functions (week 2)
[ ] Reduction of allocations and identification of missing upstream interfaces (week 3 and 4)

Proposed Delivery Date
Since I am not going to work on this full time and there can be collaborative components it is a bit hard for me to propose a specific delivery date, but I could say it could take 4+ weeks.

Looks good, Valeria. Your timelines seem good. It would be good to pick one driver (e.g., experiments/AMIP/moist_mpi_earth and the modules in src/) and keep track  of how the performance improves with each PR (even if just manually using @btime for now). I will be implementing better performance logs this month, so when we move onto the less obvious performance improvements it will be more automated.

To answer your questions: FT_dot can be removed, and swap_space should be designed (or substituted) so it does not allocate.

As for timelines 4-6 days in total (as you suggest) seems reasonable. This estimate accounts for tricky dependency clash issues we've been encountering during the interface SDI.

Cumulatively, the work to reduce allocations and to improve type-safety in this SDI have reduced allocations of about 60% (as it can also be seen from this build log)


implement temporal averaging

Hey, thanks for this. There's currently a bug with std.AverageFrames which is blocking this PR.
Should be able to get it merged once that's fixed upstream.


[DONT MERGE]Aks preview test

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

Aks

This PR is for testing only, please just ignore this PR, thanks.


feat: include hub id in event id

What is the feature you would like to implement?
Include an id for a hub in the event id. And if a user provides a fromId with an invalid hub id via a subscribe request, reject the request with an error indicating the event id is from a different hub.
Why is this feature important?
The fact that event ids are hub-specific is confusing.
Will the protocol spec need to be updated??
Call out the sections of the protocol spec that will need to be updated (e.g. Section 4.3 - Verifications, Section 3.1 - Identity Systems)
How should this feature be built? (optional)
A design for the implementation of the feature
Additional context
Add any other context or screenshots about the feature request here.

@pfletcherhill I might take a stab at this. Was there a specific format for hub ID that you had in mind?
Proposal below, but TL;DR:

Reduce timestamp bits used from 41 to 31
Interpret timestamps as seconds since Farcaster epoch (instead of milliseconds)
Use the 10 bits we claimed above as space for the hub ID, derived from a hash of the hub's peer ID

Looking at the existing code, it seems like we'd really like to maintain the property that an event ID can be represented by a JS number, as this requires the fewest changes and no migration of existing hub data.
To avoid needing to migrate existing hub data, we can reduce the 41 bits we allocate to the millisecond timestamp by 10 bits and instead have the value represent milliseconds / 2^10 (which is ~2.3% off from seconds, since 2^10 = 1024) and then take those trailing 10 bits and repurpose them as the hub ID, starting from a particular (e.g. after the May 31st release date of hub version 1.3).
This is backwards compatible because by bit-shifting the millisecond timestamp 10 bits we'll always have a timestamp that represents an "earlier" time than the new interpretation for timestamps created by the old generator, since 2^10 > 1000, and thus the old times end up being seen as having happened earlier.
Event IDs aren't actually timestamps, so this is fine. We just want to ensure that when sorting these events when compared against events generated using the new approach, we continue to order them correctly.
Example:
epoch =<PHONE_NUMBER>000;                             // Farcaster epoch (Jan 1, 2022)
millis = new Date('2023-05-16').getTime() - epoch; //<PHONE_NUMBER>0
seconds = Math.floor(ms/1000);                     // 74736000
(millis >> 10) < seconds;                          // true

Again, the point isn't to be able to extract the original timestamp from the event—it's to ensure that we order event IDs generated using the old technique in a backwards compatible way with events generated using the new technique.
Using the 10 lowest order bits, we can insert a hub ID generated from the first 10 bits of the blake3 hash of the hub's peer ID. This won't be universally unique, but "unique enough" for the purposes of catching errors, which was the stated goal of this ticket.
The downside here is we are increasing the likelihood that we exceed the sequence ID for a given second, i.e. hit the error condition here:
https://github.com/farcasterxyz/hub-monorepo/blob/71eef0c5593956e57be1af0800c9e50142d356e9/apps/hubble/src/storage/stores/storeEventHandler.ts#L133-L135
I don't think we need to worry about this too much: 2^12 is 4096 distinct values in a single second before we overflow, and by the time we're at the scale where that becomes a problem we'll be able to make a deeper investment in a different event ID system.

,🟩🟩🟩🟩


[BUG] Freezing in foreach inserting

Version
LiteDB v5.0.3
Windows 10 (1903)
.NET Framework 4.7.2
Describe the bug
Infinite freezing occurs in foreach inserting. Sometimes it freezes at the first try, sometimes you have to click button several times before it happens.
Code to Reproduce
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        public class SimpleClass
        {
            public int id { get; set; }
            public string name { get; set; }
        }

        int generation;
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            generation++;
            List<SimpleClass> list = new List<SimpleClass>();
            for (int i = 1; i < 2000; i++)
                list.Add(new SimpleClass() { name = $"My name is {generation}-{i}" });

            using (LiteDatabase db = new LiteDatabase("test.db"))
            {
                var col = db.GetCollection<SimpleClass>("MyCollection");
                foreach (SimpleClass sc in list)
                        col.Insert(sc);
            }
        }
    }

Expected behavior
No infinite freezing.
Additional context
It doesn't freeze if you use InsertBulk() but unfortunately there're cases where you can't use it. My example is deliberately simplified.

@Delog-ru I could not replicate the issue. I created a forms project and created a button that does exactly what your example does. I presses the button probably hundreds of time and every time the operation eventually ended. I created the project on .NET Framework 4.7.2 using LiteDB v5.0.3 release and I'm running Windows 10 1803.
Is there anything else you could do to help me replicate the issue? Maybe provide a project and datafile in which the problem happens.

@lbnascimento it's pretty much standard WPF project generated by VS 2019. I tried the new version 5.0.4 you released yesterday and it looks like the problem has gone.


pkgdev commit: special commit messages for GLEP 81 users/groups

For new packages (directories) in:

acct-user: "acct-user/foo: add user UID"
acct-group: "acct-group/foo: add group GID"

Unfortunately, we can't easily determine who these new packages are for, but "... for app-misc/foo" would be nice.

I don't think we can ever guarantee have a revdep package to add to the summary template since generally it seems acct-* pkgs would be added first then the other pkgs added or modified to use them.


Add cloud kms to eclipse deps

LGTM.  Running this by Greg, who's involved in some KMS work.

LGTM
On Wed, Mar 15, 2017 at 2:49 PM Michael Muller<EMAIL_ADDRESS>wrote:

LGTM. Running this by Greg, who's involved in some KMS work.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/nomulus/pull/64#issuecomment-286890476, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAH4ssCirPT_PkjIKmGZBT_ZBS5QYxJnks5rmFzkgaJpZM4MbvlF
.

This has been merged internally and will be included in our next code sync.


Noexcept on constructor

The constructor for variant is declared noexcept which is only true if the constructor for the underlying type is noexcept. Because we don't know which type that will be we can only mark the constructor noexcept if all underlying types have a noexcept constructor.
https://github.com/mapbox/variant/blob/861faa8125ae7c2d9e41e33b3d5d97a17213c415/variant.hpp#L584-L590
There is a comment // nothrow in there. It is unclear what it means. Maybe it was meant to say that we expect the constructor to be "nothrow", but that really must be encoded in code.

If has_type</*remove_reference?*/ T, Types...> then it's simple:
noexcept(std::is_nothrow_move_constructible</*remove_reference?*/ T>::value)

If it needs conversion, then perhaps be something like:
noexcept(std::is_nothrow_constructible<
  typename detail::convertible_type_noref<T>::type,
  T&&
>::value)

To reduce clutter I just made up detail::convertible_type_noref<T>, which is:
template <typename T>
using convertible_type_noref<T> = convertible_type<typename std::remove_reference<T>::type>;

and added member ::type which should be obvious what it is and that it could be there ;)

What gets constructed is the target_type, not T. Usually this will be the same, but it doesn't have to be if there is implicit conversion going on.

That's what I said, if has_type<T, Types...> then target_type==T else target_type==convertible_type_noref<T>::type

@lightmare not sure I understand what you mean here. Maybe you can create a real pull request so we can better see what you mean.

Ok, but I'll probably need some help understanding where std::remove_reference should be applied and where not.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0086r0.pdf

variant<int&>
References are supported as alternative types. Assignment to
such a value is ill-formed.

In anthonyw and tomilov implementations, which use an actual union for storage, it's clear what that translates to. But in mapbox::variant using raw byte array and reinterpret_cast, it's difficult to grasp. I think currently it just drops the reference and stores an int.

@lightmare: We very likely will not support references at all. They have not worked in the past and it is unclear to me, why there are a few places in the code using std::remove_reference. I have added #70 to fix this.
Looking further, I do think we want proper noexcepts at some point, but this needs a lot more tests to make sure every combination of constructors, assignments, swaps, etc. is handled correctly. Extra problem here is that a wrong noexcept declaration will not be detected by the compiler.
I think the way forward is to first remove noexcept everywhere. We should only keep it on (or add it to) functions where it is a) obviously correct and b) any implementation change we might do in the future will preserve it. This way we get to a correct interface fast. Adding more noexcepts later is then backwards compatible and can be done piece by piece. The drawback is that this is an interface change so it might break something in users of variant. On the other hand the wrong noexcept were always wrong anyway and nobody noticed.

We should only keep it on (or add it to) functions where it is a) obviously correct and b) any implementation change we might do in the future will preserve it.

I'll add notes to specific lines in my previous pull req. indicating which are a), b) or neither.

Notes added to 244c3b7


Placeholder text when multiple is false

Hello,
I am using a the ng-select component as follows so  multi select is disabled.
           <ng-select
                    [options]="merchantOptions"
                    [placeholder]="'Select a Client...'"
                    [(ngModel)]="selectedMerchant">
            </ng-select>

However the placeholder text 'Select a Client...' appears but is not greyed out but black.  If [multiple]="true" then this becomes greyed out but I only require a single selection.  See the screenshot below:

That's not right indeed. I'll update that. As a temporary fix you can add a custom style rule that changes the color. It seems that I accepted a bit to much style changes in one of the pull requests, sorry about that.
As a temporary fix you could add the following rule to some global style sheet. That should fix it as well.
ng-select .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #999
}

Thank you for the update.  Do you know when this is likely to be fixed?
Thanks.

Fixed in beta version.


kvm: use ACPI and signal based reboot on KVM

This replace the legacy stop/start logic with libvirt's native reboot
operation that will use ACPI and signal based rebooting of VM on KVM
hosts.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[ ] Minor
[ ] Trivial

@rhtyd
is acpi is turned off inside vm, will it work ?
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/high_availability_add-on_reference/s1-acpi-CA#s2-bios-setting-CA

I'm ok with this.
Any modern distro has ACPI enabled and should respond to it. Nowadays it's usually systemd handling this but in older versions it's acpid.

If ACPI is off in the guest, that would apparently fail for any hypervisor that is using ACPI triggers to reboot.  I haven't checked myself but I've been told that the Xen and VMware use ACPI triggers for the reboot API as well, and I think it would be expected behavior.
If it becomes an issue for KVM users who are accustomed to the current behavior, perhaps there can be a 'forced' option like stopVirtualMachine has, and that can be a shortcut to a full stop and start, so the various plugin workflows are properly called.

If ACPI is off in the guest, that would apparently fail for any hypervisor that is using ACPI triggers to reboot. I haven't checked myself but I've been told that the Xen and VMware use ACPI triggers for the reboot API as well, and I think it would be expected behavior.
If it becomes an issue for KVM users who are accustomed to the current behavior, perhaps there can be a 'forced' option like stopVirtualMachine has, and that can be a shortcut to a full stop and start, so the various plugin workflows are properly called.

@rhtyd  it would be nice to have 'forced' option as @mlsorensen said.

That sounds sensible, thanks @mlsorensen @weizhouapache I'll update the logic to perform ACPI reboot (default), and if a forced API arg is provided do a stop + start (at the orchestration level, not in hypervisor plugin).

code here looks good, are you still implementing the stop / start in this PR @rhtyd , or is that somewhere else?

code here looks good, are you still implementing the stop / start in this PR @rhtyd , or is that somewhere else?

code here looks good, are you still implementing the stop / start in this PR @rhtyd , or is that somewhere else?

@DaanHoogland @rhtyd Addressed the suggested changes on the PR: https://github.com/apache/cloudstack/pull/4681 , which provides the forced reboot option (to stop and start VM), along with ACPI reboot for KVM VM.

Closing this old PR, in favour of the new


Parallel behaviour & performance

Hi,
I was hoping to be able to use the parallel version of parcels to speed up some experiments. I manage to install it and I can run the examples without problems. However when trying to do my real experiments, exaclty the same that runs in the serial version does not complete when in parallel. Temporary files get created but never convert into netcdfs, when I convert them tracks are a very small fraction of the total requested tracked time. I don't get any error messages. My experiments are with 2D NEMO RK4 advection only. My scripts are the simplest thing, see below. I would appreciate any help.
from parcels import FieldSet, ParticleSet, ScipyParticle, JITParticle, AdvectionRK4, ParticleFile
from argparse import ArgumentParser
import numpy as np
import pytest
from glob import glob
from datetime import timedelta as delta
from os import path
import time
from netCDF4 import Dataset
import csv
with open('/projectsa/NEMO/gmaya/RECICLE/PARCELS/AMM7s/unifNS.csv') as csvfile:
file1 = csv.reader(csvfile, delimiter=',')
LOS = []
LAS = []
for row in file1:
LO = row[0]
LA = row[1]
LOS.append(LO)
LAS.append(LA)
ts=0
tt=[ts]len(LOS)
data_path = '/projectsa/Recicle/outputs/v2/HadGEM2-ES/'
emem='HadGEM2-ES'
ufiles = sorted(glob(data_path+'HadGEM2-ES_1d_204U.nc'))
vfiles = sorted(glob(data_path+'HadGEM2-ES_1d_204*V.nc'))
grid_file = '/projectsa/Recicle/gmaya/coordinates.nc'
filenames = {'U': {'lon': grid_file,
'lat': grid_file,
'data': ufiles},
'V': {'lon': grid_file,
'lat': grid_file,
'data': vfiles}}
variables = {'U': 'uo25h', 'V': 'vo25h'}
dimensions = {'lon': 'glamf', 'lat': 'gphif','time': 'time_counter' }
field_set = FieldSet.from_nemo(filenames, variables, dimensions)
pset = ParticleSet.from_list(field_set, JITParticle, lon=LOS, lat=LAS, time=tt)
pfile = ParticleFile(emem + '2040r.1_test', pset, outputdt=delta(hours=1))
kernels = pset.Kernel(AdvectionRK4)
pset.execute(kernels, runtime=delta(days=90), dt=delta(hours=1),
output_file=pfile)

Thanks @ocgabs, for reaching out. It's hard though for us to debug this without any output. Are there really no error messages or warnings? Any extra information that you can provide is useful

No errors! so I don't know what to say. It runs very quickly indeed but then stops.
This is are some details of the machine I am using:
Intel Xeon Gold 6140 CPU 2.30GHz, CentOS7, 144 cores, no queuing system, but no exclusive use... We have a few of this, so I will try on an older one with less trafic.
I could provide the input files for this if you are willing to test on your side. I am doing a climate change thing with ensemble members, etc... Its a massive endevour, so I was really hopeful for parallel Parcels.

Hi again, I tried on a different machine, exactly same behaviour...
I have created a temprary public ftp site with all required inputs in case you have a chance to look into this. I will really appreciate your help. livftp.noc.ac.uk/noc/gmayapub/data/parPARCELSinputs/

The link to the livftp.noc.ac.uk server does not seem to be working?

It works for me... in Ecuador... just put ftp:// before the whole the provided path...

I have now been able to download the data indeed (it was not obvious that I had to put ftp in front of the url).
What if you add pfile.close() to the end of your script? Does it run then? Or, alternatively, create the pfile object inside the pset.execute():
pset.execute(k_adv + k_sample, runtime=delta(days=30), dt=delta(minutes=10), output_file=ParticleFile("recicle_nemo_particles_partest", pset, outputdt=delta(hours=24)))

Do you get an output file then?
And have you tried running without MPI? Does that work?
By the way, your simulation crashes because of the parcels.tools.error.KernelError: 0 error that was also discussed in #712. The good thing is that now I can try debugging this error, as I can run with your script/data

OK, I've now found what causes the parcels.tools.error.KernelError: 0 error. It's an error in the interpolation scheme, when in your case xsi = 1.00000 > 1. This is probably a rounding error. While we discuss here what to do about this, in the meantime it may be easiest to simply delete these particles that exactly hit a grid cell boundary. I've implemented a new ErrorCode for that (also helps with debugging) at #745. But if you don't want to use this new branch, you can also use
def DeleteParticle(particle, fieldset, time):
    particle.delete()

pset.execute(..., recovery={ErrorCode.Error: DeleteParticle})

Any particle that receives a ErrorCode.Error will then be deleted

Thanks for looking into this so promptly. Sorry about leavin out ftp:// I didn't want the link to be clickable. Always feel iffy about sharing future oceans without any warnings. For now I will try your latest option and later on look at the new branch.

/reopen

In serial mode I was susccessfully using nohup and spawning many jobs from a terminal with the following command that redirects the terminal output:
nohup python TS_AMM7_Parcels.py > /dev/null 2>&1&
The parallel version of this:
nohup mpirun -np 2 python AMM7_Parcels.py > /dev/null 2>&1&
Doesn't work...
Is there a way to omit the terminal output, in order to spawn many jobs from the same terminal?
Has anyone successfully used nohup with the parallel version?
Thanks in advance for your help.

Hi @ocgabs ,
when you run the MPI job, can you track the memory behaviour of it, eg. by using 'top' (a command line system manager under Linux). you should be able to track the process(es) that you spawned. Look at the the column called 'RES' (= 'reserved memory' -> the amount of physical memory consumed). Especially with global, high-res 3D(4D) field data, you may quickly reach the physical limit of available memory, as you don't use field chunking. That is something that may still just work for single-core runs, but without chunking the memory requirement increase by the same factor you increase the number of cores used (i.e. each MPI process will allocate the full field data). That makes even large HPC farms tap out-of-memory quickly, as each of those nodes still has a certain memory limit.
To follow up on that behaviour, some rudimentary statements on memory behaviour, overall computation time (time the process actually runs), etc., are essential to give a better hint on improvements.
Cheers,
Christian


Add some parents

Adding NH parent to a few old jam mods (Hearth's Neighbor, Survivors, Ernesto Big Day Off)
and changing the 3rd jam mods to be parented to the base mod

Ok


Issue in audit log with Azure login

I noticed that a some json output of azure login to be found in the audit log, that wasn't there before.... bug?

Thanks for raising @stefantrav.

For dev reference, Likely due to incorrect second param here: https://github.com/BookStackApp/BookStack/blob/64785ed9da0d3bac61e4b3976da2e47a804335ec/app/Auth/Access/SocialAuthService.php#L144
Should add/update test to cover.

Thanks again @stefantrav, Now patched to be part of the next patch release.


gtk.TREE_VIEW(view) is *gtk._Ctype_struct__GtkTreeView

I tried to all C.gtk_tree_view_get_path_at_pos function from my go code as:
C.gtk_tree_view_get_path_at_pos(gtk.TREE_VIEW(treeview), C.int(btn.X), C.int(btn.Y), &path.GTreePat
h, nil, nil, nil)
and got this error:
cannot use gtk.TREE_VIEW(treeview) (type *gtk._Ctype_struct__GtkTreeView) as type *_Ctype_struct__GtkTreeView in assignment
So gtk.TRE_VIEW() returns *gtk.C.GtkTreeView, not *C.GtkTreeView.
What is the correct way to call the function from Go code?

You can not use gtk.TREE_VIEW to pass C API.

You have to use C casting.


DynamicExpressionParser.ParseLambda cannot parse a Method which accepts an expression as parameter

I have a Method that accepts an Expression as Parameter. However the Parser does not recognize q and instead tries to find Foo on it.
The Exception is
System.Linq.Dynamic.Core.Exceptions.ParseException: No property or field 'Foo' exists in type 'QueryStart'

Here is a Test to verify the Problem
    [TestClass]
    public class QueryParserTests
    {
        [TestMethod]
        public void Parse_can_Select()
        {
            // Arrange
            var query = "Start.Select(q => q.Foo).ToListAsync()";

            // Act
            var exp = DynamicExpressionParser.ParseLambda<QueryStart, Task>(ParsingConfig.Default, false, query);

            // Assert no error was thrown
            Assert.IsNotNull(exp);
        }

        private class QueryTest
        {
            public int Foo { get; set; }
        }

        private class QueryStart
        {
            public IMyQuery<QueryTest> Start { get; set; }
        }

        private interface IMyQuery<T>
        {
            IMyQuery<Tnew> MySelect<Tnew>(Expression<Func<T, Tnew>> exp);

            Task<List<T>> ToListAsync();
        }
    }

Maybe related : https://github.com/StefH/System.Linq.Dynamic.Core/issues/259 ???

And why would you like to do this?

I would like to be able to give a string like "Orders.Select(o => o.Price).SumAsync()" into a Controller so I'm able to generate some kind of dynamic Report.
What I have found out so far is, that there Is a special case for the IEnumerable Extension Methods and not a generic case to handle any Kind of method invocation. The parser does not recognize q as  a symbol and therefore things e.Foo is it.Foo.

I think I did a more in detail explanation of what the issue really is in:
https://github.com/StefH/System.Linq.Dynamic.Core/issues/289
As @wertzui there seems to be some ad-hoc handling for some methods such as Sum() but there is no proper generic handling of argument type propagation or inference for lambda expressions used as method arguments.


Feature Request: Add Opt-In and fully optional Friends Server integration

Would be awesome if we can have a friends server integration, that makes hosting and joining a breeze.
The server address should be configurable and the server source code publicly available and also MIT licensed.
Project name could be: bananas-bonjour-server and a default server could be made available at: bonjour.getbananas.net.
Flow could be something like this:

Register with your E-Mail at the configured Bonjour Server
Verify Email
Add Friend request via Bananas (enter friend's Email)
Friend sees request (if on the same Bonjour server)
Friend can accept, decline or ignore user
You both see your online status from that point on
Either of you can start a call

We need a way to prevent spam.
Maybe make it configurable when a user accepts requests, so that you need to actively enable that for a short timeframe.
If this is disabled, you won't receive requests at all.

Also the documentation on this should be really clear on what data is stored and sent between parties and when.

Also: Think about a way corporate business might want to handle their users with the Bonjour server. I've no idea what that might look like on e.g. windows with e.g. Azure AD. Maybe @smood922 can chime in on that.

We use Entra/Azure AD extensively and that would be our first choice with clients. I'd think you would want to implement SAML SSO which would enable a wide variety of IdPs.


how much deviation if not doing temperature compensation?

We are conducting serious calibration tests. we wondering whether it is important to conduct such feature or not. how much deviation do you expect? tnks!

Kevin,
Typically, for high illumination power circuits, this is a must. In general, where the illumination path has large delays (>2ns) due to the use of large MOSFETS, Errors of the order of 1ft can be expected without temperature calibration in the form of hardware or software.
Regards
Bharath

Dear Bharath:
Thanks a lot for your answers!
It helps!
Bharath Patil<EMAIL_ADDRESS>於 2016年2月1日 星期一寫道：

Kevin,
Typically, for high illumination power circuits, this is a must. In
general, where the illumination path has large delays (>2ns) due to the use
of large MOSFETS, Errors of the order of 1ft can be expected without
temperature calibration in the form of hardware or software.
Regards
Bharath
—
Reply to this email directly or view it on GitHub
https://github.com/3dtof/voxelsdk/issues/60#issuecomment-177604338.

--
Kevin Liu，Ph.D
GM, eZimage Technology Inc
易積生活科技
0919377901


README: fix broken badge

Description
This PR fixes the broken integration pipeline badge in the main readme file.

/rebase

Merging without running code tests, as documentation related.


Provide tools to debug SDFs

I kept using shadertoy to debug my personal SDFs. It gets annoying to translate between GSL languages.
I'll keep working on this later, fun weekend math project. But i'm leaving it here in case anybody is tempted in using to make pixel perfect SDFs.
The biggest issues you see with the current SDFs is when you try to make the edge width much much thicker than the point.
You start to see the issues that IQ warns you about.
He would prefer a more exact definition of the heart.
https://iquilezles.org/articles/distfunctions2d/
The zoom debugging tool also shows why the pin looks cut off, and may motivate the need to ~expand the triangle vertices to accomodate for the edge thickness overall~ (my debugging shader is currently wrong and it seems that the painting does extend further than I thought. tbd).
old video demo
https://github.com/user-attachments/assets/8675181e-ad8a-4ce8-8909-42b15d756a22

https://github.com/user-attachments/assets/f6304f66-1289-40a0-918b-f037ac4617a6

ps you can also see artifacts from fonts. we'll get to a pixel perfect font shader on day ;)

I kept using shadertoy to debug my personal SDFs. It gets annoying to translate between GSL languages.

https://github.com/pygfx/shadertoy
You can use the same shader language in this shadertoy you know! :)

ps you can also see artifacts from fonts. we'll get to a pixel perfect font shader on day ;)

There will always be limits to resolution as long as we use masks or sdfs. You'd have to render directly from curve data to get truly perfect results, but that's not nearly as performant.
Right now, pygfx renders using single channel sdfs as generated by freetype. You can squeeze more information into an sdf using multiple channels, but the implementation complexity goes up an order of magnitude. See here: https://github.com/Chlumsky/msdfgen

You can use the same shader language in this shadertoy you know! :)

Thats awesome! I saw you were able to recreate his iconic 3D SDFs
https://github.com/pygfx/shadertoy/blob/main/examples/shadertoy_glsl_sdf.py
I realized that I had cloned this repo locally but didn't really understand how to write shaders.

You can squeeze more information into an sdf using multiple channels, but the implementation complexity goes up an order of magnitude.

Thanks for the reference on the text. Very interesting!
I think some of my biggest challenges on the text right now is that the font doesn't look correctly spaced out (some characters look too close together). But since I understand your code I was going to debug it first.
Some background
In short I got an SDF for our personal logo to be written, but I'm trying for the stretch goal of making it exact.
IQ's notes indicate that when you try to draw contours around the SDF and your starting SDF isn't exact, then you start to get very strange looking results. in fact, this is what I saw when I tried to turn on the "edge" and the outline showed similar artifacts as the heart does. For this, and other reasons, I had to change my personal strategy for our logo. Ultimately, its pretty hard to get parametric shapes to look good no matter what....
https://github.com/user-attachments/assets/a7ba1c9d-4dc8-42b7-855a-ad08d3bbc743
It doesn't escape me that likely nobody cares about 1-2 pixels, but ultimately this mental exercise is helping me understand some visualization tricks you and IQ have implemented in various shaders. Maybe one day I'll understand the tricks behind pristine grid....

What are people's gut feelings on this "feature"


door lock code

Added my code to device but does not work to unlock/lock , is it my personal code ?

Hi. Yes, enter the same code as you use on the numpad when you unlock the door.


[opentitanlib] Add serialization for num_de types

Because of the way we represent certain numeric types - hex integers in particular - in HJSON config files we need to do some extra work to get serde deserialization working correctly. Serializing these types is much simpler, and basically just involves delegating to the correct std::fmt trait.
This also enables the implementation of the opentitantool image manifest show command.

@mcy, @cfrantz Could you please TAL at this when you get the chance, thank you!


Fails if path_adata_out is a filename

The dsb script fails on an edge case: If the path_adata_out variable is a filename, not a directory, the following line crashes
    # Ensure the output directory exists
    os.makedirs(os.path.dirname(path_adata_out), exist_ok=True)

In order to avoid this edge case, one could run os.makedirs only if os.path.dirname is not an empty string.

solved in #8


NaN or Inf found in input tensor

Hi!
Thanks for your great work and for releasing your code!
I'm trying to run the S3DIS model on an outdoors dataset that contains one more feature and four less classes than S3DIS (i.e. 7 and 9 respectively). However, when running either pvcnn or pvcnn2, I get a warning in the terminal NaN or Inf found in input tensor after 5-120 iterations. The accuracy reported is also very low (like .08%) and everything seems to get sent to the largest class (very unbalanced dataset, but that will be handled later). This does not happen when running your Pointnet implementation.
I have looked through the h5-files (and the .npy-files) and none of them contain neither NaN or Inf. I have changed the number of extra features and dataset classes everywhere I have found them.
Any suggestions on where else to look or what could cause the issue? Could it have to do with the conversion from .npy-files to h5-files?

Hi, @Napoleongl.
Would you mind posting the complete warning information?
The first step is to figure out which tensor becomes NaN or Inf. Sometimes it may come from the normalization in the Voxelization (e.g. Line 20 in https://github.com/mit-han-lab/pvcnn/blob/master/modules/voxelization.py).
If that is the case, you may need to set "eps" to some constant like 1e-15 (e.g., Line 17 in https://github.com/mit-han-lab/pvcnn/blob/master/models/kitti/frustum/box_estimation/pointnet.py).

Thank you very much @synxlin !
Actually, the informaiton posted is all the warning I get (apart from at which iteration we are which may vary slightly from run to run).
Your suggestion seems to have done the trick though and the models now run.


Error starting up quilt!

crash-2023-03-24_<IP_ADDRESS>14-quilt_loader.txt
Hi, I just recently migrated over from fabric and wanted to know what was causing this error as many others ive asked in other discords dont know and my application is currently under review for the discord server, thank you! There are fabric mods on there but from looking it up they should work with quilt but idk fully sorry for the pain!

Hey, I already replied to you on the forums, but it's most likely just Decorative Blocks causing the crash, as it's incompatible with Quilt.

for a bit of extra information, refer to https://github.com/lilypuree/Decorative-Blocks/issues/76
this is on the mod's side

latest.log
Hi there sorry for the late response but I tried to remove it and now it crashes on startup with this log being the only thing coming out

It's an incompatibility with Combat Enchants. See https://github.com/dsfhdshdjtsb/enchantments/issues/21

Ahhh I see, I also got this log if it helps at all
crash-2023-04-15_<IP_ADDRESS>15-quilt_loader.txt

latest.log
And now its no longer giving me a crash report its just giving me a log


things changed, no longer an 'all release pipelines'

For me, I don't see an 'all release pipelines' anymore with a pulldown shortcut. Instead, I need to switch from the default 'View active release pipelines' to the folder view 'View all release pipelines'.  Then, on the right side of the pane, you should see a + New /  (3 vertical dots).  CLick on the 3 vertical dots, and there is security for all pipelines

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

ID: a8c6f274-a008-fac6-7d99-13d2ce7c8dc3
Version Independent ID: 916fef9e-d644-2114-b466-e5bda8028ee9
Content: Pipeline permissions and security roles - Azure Pipelines
Content Source: docs/pipelines/policies/permissions.md
Product: devops
Technology: devops-cicd
GitHub Login: @andyjlewis
Microsoft Alias: alewis

@marct22 -- thank you for your feedback.  We are investigating the article contents per your suggestion.
@andyjlewis -- please look into this issue.

What is the latest on this please? This is a critical issue. All devs are contributors and the permissions now mean all devs can approve releases all the way through to Production. What's the point of the Release Admin group? We have hundreds of pipelines, I need to be able to deny release approval by devs globally. This needs fixing asap.

Hi @hartywillis, I'm sorry for the late response I'm taking point on this issue. Are you still having this issue?

@vtbassmatt, Do you happen to know if this documentation is correct? It will definitely need some updates but if you have some scope to provide that would be great.

This is in RM's space - @RoopeshNair might be able to help.

@RoopeshNair Just giving this a bump.

Yes, getting to security settings for all pipelines is now few clicks away. We will look into this. However, no time lines at this point in time. We know this is important for you, we will continue to monitor this. At the moment we are prioritizing issues that impact broader set of customers


No tests found by yarn test when special characters present in parent path

Describe the bug
When a new CRA project is created under a path that contains a special character (e.g. '+'), "yarn test" doesn't find the test files to run.
Did you try recovering your dependencies?
N/A, new CRA project.
Which terms did you search for in User Guide?
cra "yarn test" "No tests found"
Environment
Environment Info:

  System:
    OS: Linux 5.3 Arch Linux
    CPU: (8) x64 Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
  Binaries:
    Node: 13.1.0 - /usr/bin/node
    Yarn: 1.21.1 - /usr/bin/yarn
    npm: 6.12.1 - /usr/bin/npm
  Browsers:
    Chrome: Not Found
    Firefox: Not Found
  npmPackages:
    react: ^16.12.0 => 16.12.0
    react-dom: ^16.12.0 => 16.12.0
    react-scripts: 3.3.0 => 3.3.0
  npmGlobalPackages:
    create-react-app: Not Found

Steps to reproduce

Create a path with special characters

mkdir c++

Create a CRA project inside the path

cd c++ && yarn create react-app frontend

Run all tests

cd frontend && yarn test --watchAll=false
yarn run v1.21.1
$ react-scripts test --watchAll=false
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In .../c++/frontend
  5 files checked.
  testMatch: .../c++/frontend/src/**/__tests__/**/*.{js,jsx,ts,tsx}, .../c++/frontend/src/**/*.{spec,test}.{js,jsx,ts,tsx} - 0 matches
  testPathIgnorePatterns: /node_modules/ - 5 matches
  testRegex:  - 0 matches
Pattern:  - 0 matches
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

(I just use --watchAll=false here in order to get a better output; the behavior is the same when run under watch)
Expected behavior
Under a path without special characters, the same steps result in the tests being run as expected:
mkdir normal && cd normal && yarn create react-app frontend

cd frontend && yarn test --watchAll=false
yarn run v1.21.1
$ react-scripts test --watchAll=false
 PASS  src/App.test.js
  ✓ renders learn react link (31ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.309s
Ran all test suites.
Done in 2.57s.

Actual behavior
(see Steps to reproduce)

Probably the same issue:
folder/src - tests are working correctly
.folder/src - no tests found


TS Interfaces/Types

We have a bunch of Interfaces/Types created on the fly.
We should first remove the export for the ones that are not exported. Secondly we must extract them into a specific file in the same dir of the file component.
TODO :

[x] #500
[ ] extract interfaces to specific files
[ ] Rework naming of different interfaces

@mazmassa assigning you so you can answer the question from Paul just above. But also, let's make sure to add more info & details in the ticket.
It's complicated for them to understand what to do and for me to prioritise if I don't have the "why" explained ;)
thank youuu 🙏

@mazmassa we need your inputs as Solene mentioned above for this issue.

Closing since we already changed the mentioned code and we have no standard for that as mentioned.


Revert "New style guide format"

Reverts mozilla-l10n/styleguides#50

Let's not revert it at this point, it's only going to make things more confused.
We can still post review in
https://github.com/mozilla-l10n/styleguides/pull/50


Support XML sources beyond Twirl templates

Some possibilities:

scala-xml (already using in Playfop Scala API for configuration XML)
Li Haoyi's ScalaTags
plain-old byte arrays/streams

With its 1.0 release, PlayFOP supports XML generated via a Play Twirl template, with the scala-xml library, or as a String.


Ticket caching done

@iamareebjamal I actually have done the caching without using relation and foreign key. If it is a really bad approach then I will close the PR :+1:

Bad approach is not the issue. There is no advantage of storing the tickets without relation to which event they belong.
How will you show tickets from DB for a particular event?

I am matching the event ids of the tickets with the id actually

@iamareebjamal Thus I am going to show the tickets for a particular event by using the event id

That is by definition called a "Foreign Key", just you haven't added a constraint, which is strange to me as why not
And by adding a relation, you won't have to manually set the ids when saving

@iamareebjamal Ohhkay ! Sounds Great ! I was really confused about the foreign key and thats why I had come up with this. Thanks :+1:

Why was this closed?

@iamareebjamal Actually @simarsingh24 wants to work on it :+1:

Could be build upon this PR


ActionTaker EJB is not ok

ActionTaker EJB is not ok in a .war, better make the NotificationsResource a stateless ejb with an async method to take actions. See details here.

Done


websocket connection should not be open when not on relevant pages

Currently ws is open when reaching index

I think we can close this ? @ia3andy please reopen if there is more ideas on this


I had another error where it just stops downloading.
i am on ubuntu, 4 fresh new installs and EVERY one does not work! Makes me wonder does the developer care more for the flashy promoting then actually testing and making sure it works?

Same problem

I downloaded the model manually and pasted it into the cache directory, then connected to high-speed internet and waited for it to complete.
Cache directory: Local: C:\Users%USERNAME%.cache\huggingface\hub\models--multimodalart--Florence-2-large-no-flash-attn\blobs Or in Pinokio, in the fluxgym folder and cache folder.

same problem here, trying to install on a bare Linux host. download goes to 90+% and hangs over repeated restarts of the app. ideally this would at least timeout.

same problem here

Same problem

I downloaded the model manually and pasted it into the cache directory, then connected to high-speed internet and waited for it to complete.
Cache directory: Local: C:\Users%USERNAME%.cache\huggingface\hub\models--multimodalart--Florence-2-large-no-flash-attn\blobs Or in Pinokio, in the fluxgym folder and cache folder.

Will anyone fix this problem?
I don't understand where the cache is and where to put the ALREADY DOWNLOADED MANUALLY file.
The file is downloaded in the browser, BUT no, the program itself has to download this file again and it can't do it and freezes.
Why do this!?

pytorch_model.bin:  99%|██████████████████████████████████████████████████████████▌| 1.53G/1.54G [07:26<00:13, 794kB/s]
Someone just makes money on endless traffic and wrote such code.
I download this file up to 99% already 20 times.


Pull IdP configuration directly from Atlas

The webpage interface should be able to access the identity provider configuration directly with a web API call, using the cookies available for Atlas. Would be interesting if we could pull that in, select the IdP configuration, and then populate the comparison values from that.
Might reserve that for the web interface, although certainly possible with the CLI if we find a way to use the web cookies.

I think it will be easier to use the Atlas CLI credentials or OAuth with the API. We can use https://github.com/clegaspi/atlas-sdk-python for it


exclude non-auction SHOW page routes from regex

Closes https://github.com/artsy/auctions/issues/308 - The issue was that while the bid form is part of the auctions_support app in force, the regex test matches on all routes like /auction/*.. It's possible this is happening in other places- the error only came up because of an inconsistency in how we make the sale object between the auction_support and auction apps (sd.SALE vs sc.AUCTION).
I used www.regex101.com to test this:
regular expression:  ^\/auction\/[^\/]+\/?$
with urls:
/auction/eriks-timed-artwork-auction
/auction/eriks-timed-artwork-auction/bid/sophie-dickens-painting?bid=1800

The error only came up because of an inconsistency in how we make the sale object between the auction_support and auction apps (sd.SALE vs sd.AUCTION)

Why not fix the root cause instead? It seems like introducing a regex into an otherwise simple route in order to filter outbound calls might make things more complex rather than less. Something is making the request erroneously; maybe go to that place and guard against calls if the context is an auction?

@damassi - the request happens at the bottom of this file, which @craigspaeth wrote as part of the force/microgravity merge:
for paths, init of routes
  for path in paths.split('\n')
    $(init) if location.pathname.match path

I'm not super confident in writing strings to be coerced into regexps though, so maybe a better intermediate option would be to avoid the complexity and just order them so we could do something like
if location.pathname.match path
  $(init)
  break

...?

@erikdstock - I agree. Lets pair on this in a little bit because I'm pretty curious to see whats going on too.

@damassi - any other thoughts? If @craigspaeth is in favor I would be down to restructure this file so we check paths in order, otherwise do we think the regex is enough?

Ah! got a bit slammed with tasks yesterday. But yeah, I'm personally not in favor or using a regex in the route since we know that the issue is one of precedence, with a route higher up the chain being erroneously triggered as the route-map is iterated over. I think it would be better to refactor.

@damassi Agreed! These regexes were a quick way to determine which app's code to run based on route. Previously we basically wrote an asset package per-app, so we didn't need to worry about it.
We could use Backbone's router or another route parsing library in place of these regexes. Alternatively, maybe there's something more clever we can wire up in locals or elsewhere so we don't have to update as many places to load client-side code. I open to ideas :)

Closing because #1163 includes this. I made a long-term solution issue - #1173.


Render plan structure

Make the tree structure of the plan clearer.

Inspired by that, but I had to reimplement it since his version was from before PlanPrinter was refactored.


Activation link in email without login.

Hi,
I like to do a administrator activation users, with the button activation in email, but i only want that the button activate the user account, but no log in.
Any idea?

@borjadevelop you could create API and generate URL with a sha256 value. Store this value and DB, find it when requested and activate the user.

Closing as it has been over a month since any activity on this occurred and we are trying to figure out what issues are still relevant. If this is still something that you would like to see through to fruition please respond and we can get the ball rolling.


Single user session not working windows 10 Pro v1803

Hi, I am unable to activate and use this feature: single user session. I have updated the rdpwarapper to the lastest version, runed it as administrator, reinstalled multiple times and even changed the regedit as suggested on another thread from 0 to 1 and still, I can't disable this and stop from having a new session each time. This is really frustrating, each time I connect, I am in a new session. I currently use the workaround of going on the taskbar and select users, but doing this every time is really frustrating and makes it impossible to use.
Please let me know if there a way to fix, I would appreciate so much and as retribution donate some Bitcoin.
Really appreciate your work developers!
Windows 10 Pro v1803
OS 17134.376
Release: 8/09/2018

this is an old bug
some users describe the problem:
https://github.com/stascorp/rdpwrap/issues/422#issuecomment-397284365
https://github.com/stascorp/rdpwrap/issues/513#issuecomment-407696493
see my post for a workaround:
https://github.com/stascorp/rdpwrap/issues/422#issuecomment-398808660

Same problem in win10 home 1809 17763.615. If you know any way to slove the probleam, please help me, THX!

Same problem in win10 home 1809 17763.615. If you know any way to slove the probleam, please help me, THX!

Problem solved in #836

Same as https://github.com/stascorp/rdpwrap/issues/422


make users' links open in a new tab

Don't encourage people to leave the site :)

Haha, good thinking! :laughing:


Read-only

Fields that are marked as read-only in the schema are not showing as read-only in ReDoc.  I also did not see a extension I could use for ReDoc to have it rendered.

readOnly and writeOnly options mean "should be shown only in responses" and "should be shown only in requests".
For example if you want to create some resource, you send fields foo and bar. But when resource created successfully, id and foo fields will be returned in response. In that case you may define request and response using only one schema, where:

id - readOnly is true
foo - readOnly is false and writeOnly is false
bar - writeOnly is true

Thanks, @neluzhin for answering!
@tatiana-perry read-only fields are not displayed in the request schema (sample) and are displayed in the response schema (sample)


Remove Semantic React's responsive components in favour of a render prop based approach

Right all cases of React elements will get rendered, but shown / hidden through the <Responsive /> component.
Implement our own, or pick one that approaches this using a render prop so we don't render unnecessary things.

See #157


added statewide Florida gathered by Mapwise/@b-may

Fixed #1633

This gives OA coverage in 44 additional counties (as far as I can tell there's little to no overlap with existing sources):
BAKER
BRADFORD
CALHOUN
COLUMBIA
DESOTO
DIXIE
DUVAL
ESCAMBIA
FLAGLER
FRANKLIN
GADSDEN
GILCHRIST
GLADES
HAMILTON
HARDEE
HERNANDO
HOLMES
INDIAN_RIVER
JACKSON
JEFFERSON
LAFAYETTE
LEVY
LIBERTY
MADISON
MARION
MARTIN
MONROE
NASSAU
OKALOOSA
OKEECHOBEE
OSCEOLA
PASCO
POLK
PUTNAM
SANTA_ROSA
SEMINOLE
ST_JOHNS
ST_LUCIE
SUMTER
SUWANNEE
TAYLOR
UNION
WAKULLA
WASHINGTON


fixed kiki corp logo on Job Listing and Blog pages #946

Pull Request Template

Please provide all of the details below. Pull requests missing any of the information below will be closed!
Providing the issue number/url helps us identify the problem being solved and keep the issues tab clean and tidy

What issue does this fix?.
Summarize what this PR fixes:-
KikiCorp Logo was missing on Job Listing and Blog pages so fixed the issue #946
What ISSUE NUMBER does this fix?
Fixes # KikiCorp Logo was missing on Job Listing and Blog pages so fixed the issue #946
Checklist
(Add an x between the brackets to check the items)

[x] I have summarize what this PR fixes above
[x] I have provided the issue ID/URL above
[x] I have not added Bootstrap or jQuery and used correct styling guide.
[x] This PR fixes only the issue mentioned above (create separate PRs for separate issues)
[x] I was the first one to claim the issue or I created the issue - I created the issue

There is a conflict with the blog.html file if you could take a look and fix that.


apollo persistent link is not working as expected

I am currently trialling this with PWA studio with using @apollo/client/link/persisted-queries
https://www.apollographql.com/docs/react/api/link/persisted-queries/
Contrary to the documentation here

in my trials the client on the missed hash response does resend the query but never includes the hash. Not sure if this is an outdated graphic or something undocumented in the apollo client.
Currently simply having the server always create the hash seems to work better
    public function afterDispatch(
        GraphQl $subject,
        ResponseInterface $result,
        RequestInterface $request
    ): ResponseInterface {
        $data = $this->getDataFromRequest($request);

        if (!isset($data['query'])) {
            return $result;
        }

        $cacheKey = $this->getCacheKeyFromQueryHash(hash('sha256', $data['query']));
        if ($this->cache->load($cacheKey) === false) {
            $this->cache->save($data['query'], $cacheKey, [Apq::CACHE_TAG]);
        }

        return $result;
    }

Keen to hear if you are seeing something different.

Interesting. I will admit that I have only run Apollo server, and fired custom queries at it using curl to check the correct responses etc. I didn't actually use @apollo/client/link/persisted-queries myself.
Not only that image shows that it sends both query and hash, Persisted Queries Link docs do so as well:

Client sends both hash and query string to Server

Do you happen to have a minimal testcase that uses @apollo/client/link/persisted-queries that I could try? (maybe with the most basic query there is).
If not that's cool, and I'll look at recreating the issue myself.

@danslo I have tried to create this
https://ggkjf.csb.app/
source here
https://codesandbox.io/s/kind-fog-ggkjf?file=/src/index.js
it's not working 100% but shows that even though the graphql back-end responds with a 500 on a post request no automatic retry is sent.
I wasn't able to actually get the proper response (probably due to some CORS issue) but am hoping it's a small enough testcase that you can point at your back-end.

Hmm the reproducer against the Magento back-end should never work as the error does not include PersistedQueryNotFound https://github.com/apollographql/apollo-client/commit/402905367dfb299ee714e5150077bd9c85d0ab10#diff-9cb38b9552043cac84bbba5a146950eeb8a7a2e4226cf26d80b4972f48d7c911R147

It should return that error though.
It's late here, I will have a look tomorrow, thanks for the testcase :)

@danslo the url in the testcase was just using Adobe's public PWA studio back-end which does not have your extension.  I have just made an update which should now make this easier to work with.
In packages.json adjust the proxy to your back-end.
 In my reading of it the subsequent request with the full query then behaves as if persisted queries aren't supported so the hash is not generated/submitted.

Apollo Server seems to unconditionally create the hash here
https://github.com/apollographql/apollo-server/blob/0aa0e4b20ef97576ce92733698a7842b61d8280e/packages/apollo-server-core/src/requestPipeline.ts#L224 but does have the hash check here https://github.com/apollographql/apollo-server/blob/0aa0e4b20ef97576ce92733698a7842b61d8280e/packages/apollo-server-core/src/requestPipeline.ts#L209 when both query and hash are given.

Thanks @fooman , just letting you know that I have not forgotten about this issue, just been really busy this week :)
Will reproduce locally ASAP and figure out what the hell is going on :)


fzf-git functions not working on MSys2 bash (Git bash)

Not sure if this is the right place to ask for help, but I want to give it a shot anyways.
While the functions themselves are bash statements, fzf' preview argument gets executed under cmd (and not bash) on Windows. This causes certain problems, listed below:

Semicolon, used in the preview argument here, is not a command separator in cmd. https://github.com/akinomyoga/blesh-contrib/blob/9e145d562348d1017300a9476b401049f3f62619/fzf-git.bash#L23
In the preview argument here, the <<< operator is used which does not exist in cmd. It also uses command substitution $(...) which cmd doesn't support. https://github.com/akinomyoga/blesh-contrib/blob/9e145d562348d1017300a9476b401049f3f62619/fzf-git.bash#L31
The <<< operator is used here too. https://github.com/akinomyoga/blesh-contrib/blob/9e145d562348d1017300a9476b401049f3f62619/fzf-git.bash#L48

It might be too much to ask, but is there a way to modify them so that they don't use such operators?

Thank you for the report! These functions are actually copied from https://gist.github.com/junegunn/8b572b8d4b5eddd8b85e5f4d40f17236, so maybe you also want to report it there.

It might be too much to ask, but is there a way to modify them so that they don't use such operators?

You can copy the file, edit it as you like and load the edited file in ~/.blerc.
$ mkdir -p ~/.local/share/blesh/local
$ cp /path/to/contrib/fzf-git.bash ~/.local/share/blesh/local/my-fzf-git.bash
$ EDIT ~/.local/share/blesh/local/my-fzf-git.bash

# blerc

ble-import -d my-fzf-git

The custom search path of ble-import can be configured by bleopt import_path whose default value is ${XDG_DATA_HOME:-$HOME/.local/share}/blesh/local. The option import_path is a colon-separated list of directory paths just like the PATH environment variable.

These functions are actually copied from https://gist.github.com/junegunn/8b572b8d4b5eddd8b85e5f4d40f17236, so maybe you also want to report it there.

Yes, I knew that but the gist interface isn't really very useful for giving feedback (and upon seeing the thread, the author doesn't seem to be very active in the comments).
Anyway, I doubt that I can edit the functions myself and make them work 😅
Thanks for quick reply. Should I close this then?

Maybe we can work around it by specifying the shell in the following way:
-    --preview 'xxxxx' |
+    --preview 'bash -c "xxxxx"' |

but I'm not sure if that is the appropriate or intended way of fzf. I have checked the source of fzf. The preview command is used in the following code of fzf.

junegunn/fzf (3f90fb4) /src/terminal.go L1950..1952

util.ExecCommand is defined for Unix and Windows differently:

junegunn/fzf (3f90fb4) /src/util/util_linux.go L12..27
junegunn/fzf (3f90fb4) /src/util/util_windows.go L13..29

We notice that we can change the executing shell through the environment variable SHELL in Unix but not in Windows. Maybe we could ask for fzf to recognize some environment variables for the executing shell also in the Windows environment. Also, I'm wondering if it is possible to build fzf targeted for MSYS2 which provides the Unix API.

So the first thing you should do is to try to build the proper fzf for the MSYS2 environment using Unix API of MSYS2. If you don't know how to do that, please ask it at fzf.
If that is technically difficult, then we can next request fzf adding the environment variable or option to change the executing shell from cmd to a user-specified one.
If that was not accepted, finally we need to edit the preview command as bash -c "xxxxx" for the MSYS2 environment though I don't think it is the proper way to solve the problem.

So the first thing you should do is to try to build the proper fzf for the MSYS2 environment using Unix API of MSYS2. If you don't know how to do that, please ask it at fzf.

I don't think this is possible. Golang only supports the native toolchain on Windows. While there are numerous Unix toolchains for Golang, they include neither Cygwin nor MSys2. The only way to do this is to build Golang itself from source by studying and defining the appropriate Go build flags (corresponding to the ones listed here) and use that to build fzf.
Surprisingly, the Cygwin repos do include a very old port of fzf. Looks like it was manually patched for Cygwin. No luck for MSys2 though. The Go compiler can be installed through pacman in MSys2, but that package is in the mingw repos so I don't think it uses the Unix APIs.

If that is technically difficult, then you can next request fzf adding the environment variable or option to change the executing shell from cmd to a user-specified one.

This is a very tricky request. Let's say we propose a variable $FZF_DEFAULT_SHELL. Most people who use Windows will likely not have bash in their path (the bash being either from Git, MSys2 or Cygwin), so this makes the option very niche.
Also, since the introduction of WSL, there actually is a bash in the path, pointing to C:\\Windows\\System32\\bash.exe, which is WSL's bash. We obviously don't want to accidentally use this bash as it will cause immense slowdowns and possibly wrong results.

If that was not accepted, finally we need to edit the preview command as bash -c "xxxxx" for the MSYS2 environment though I don't think it is the proper way to solve the problem.

This might not sound good on principle, but it might just be the simplest and most non-invasive workaround. We can specify sh -c xxxxx only for the preview window as required, and we'll also avoid unexpected problems that can arise due to the intermingling of escape sequences if bash is used as the default execution binary for fzf on Windows.


Evaluate throws exception when MB is running on two instances of VS

Train in Azure on Instance A
Train in Azure on Instance B
Evaluate on Instance A
Get Error

@beccamc ran into this. Just logging the issue so we don't forget

@JakeRadMSFT I'm putting this as a P2. I don't think many customers will run into this. Feel free to change if you disagree.

Upgrading to P0 - We'll need this fixed with re-entrancy ... I think they could hit this with only one instance of VS and multiple instances of Model Builder.

@LittleLittleCloud I think this is resolved with your stateless changes.


Data Mapping

I noticed that there were options for mapping projects and languages. Still, I would like to see this for the operating system and code editor since when I switched from wakatime to wakapi, my operating system and editor have two sections now even tho it's the same ones.
this is the issue I'm referring too

Please refer to the workaround described at #234.


extends config option works only from commandline

When employing the coffeelint API directly instead of through the commandline, passing in a config containing an extends  option, it is simply ignored.
coffeelint.lint(
    someFile
    extends: 'coffeelint-config-foobar'
    literate
)

Caught while fully expecting extends to work from grunt-coffeelint.

This was as designed because when using the app you may not have file
system access. For example, coffeelint.com uses the api.
I'm mobile, but for  what I remember I think there's an undocumented way to
solve this.
coffeelint should probably error in this case and require you to pass a
processed/complete config.
On Jul 15, 2016 8:07 AM, "David Bouman"<EMAIL_ADDRESS>wrote:

When employing the coffeelint API directly instead of through the
commandline, passing in a config containing an extends option, it is
simply ignored.
coffeelint.lint(
someFile
extends: 'coffeelint-config-foobar'
literate
)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/clutchski/coffeelint/issues/570, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAT1h4AyWdbaWT1QKgpN7YjVrubjL7lcks5qV4WLgaJpZM4JNYN_
.

Does it make sense to get different results between invoking the coffeelint cli versus, say, grunt-coffeelint when both get fed the same coffeelint.json config?
Why not turn it around; make extends work from the coffeelint.lint() API and only error on the rare (?) occasion the API finds itself in a context where it cannot resolve the base config?
To have that error would make perfect sense then and there, and you would be opening up to a very useful use-case for all the times that file system access is just a given.

configfinder is the way to handle this. Take a look at linter-coffeelint for an example.
CoffeeLint walks up the path looking for a coffeelint.json or a package.json that has a coffeeLint key. If it gets to the root of the filesystem it looks in your home directory for a coffeelint.json. configfinder does all of this work for you and when it finds a file it will flatten it by merging any extends and coffeelint.lint expects a flat configuration.


Line gaps not working in version 4.2 but work in version 3.8

Issue Description
In lightweight-charts version 3.8, using null values in the data to create line gaps works correctly. However, in version 4.2, the same approach does not produce the expected gaps. Instead, the lines connect across the null values.
Steps to Reproduce
Version 3.8 (Works as Expected):
const lineSeries = chart.addLineSeries({
lineType: 2, // LineType.WithGaps in version 3.8
});
lineSeries.setData([
{ time: '2018-12-03', value: 26 },
{ time: '2018-12-04', value: 27 },
{ time: '2018-12-05', value: 28 },
{ time: '2018-12-06', value: 29 },
{ time: '2018-12-07', value: null },
{ time: '2018-12-08', value: 31 },
{ time: '2018-12-09', value: 32 },
{ time: '2018-12-10', value: null },
{ time: '2018-12-11', value: 34 },
{ time: '2018-12-12', value: 35 },
{ time: '2018-12-13', value: 36 },
{ time: '2018-12-14', value: 32 },
{ time: '2018-12-15', value: null },
{ time: '2018-12-16', value: 30 },
{ time: '2018-12-17', value: 25 },
{ time: '2018-12-18', value: 16 },
]);
Version 4.2 (Does Not Work as Expected):
const lineSeries = chart.addLineSeries({
lineType: window.LightweightCharts.LineType.WithGaps, // Using the updated enum
});
lineSeries.setData([
{ time: '2018-12-03', value: 26 },
{ time: '2018-12-04', value: 27 },
{ time: '2018-12-05', value: 28 },
{ time: '2018-12-06', value: 29 },
{ time: '2018-12-07', value: null },
{ time: '2018-12-08', value: 31 },
{ time: '2018-12-09', value: 32 },
{ time: '2018-12-10', value: null },
{ time: '2018-12-11', value: 34 },
{ time: '2018-12-12', value: 35 },
{ time: '2018-12-13', value: 36 },
{ time: '2018-12-14', value: 32 },
{ time: '2018-12-15', value: null },
{ time: '2018-12-16', value: 30 },
{ time: '2018-12-17', value: 25 },
{ time: '2018-12-18', value: 16 },
]);
Expected Behavior
The null values should create gaps in the line chart.
Actual Behavior
In version 4.2, the null values do not create gaps; instead, the lines connect across the null values.
Additional Context
Lightweight Charts version: 4.2
Browser: [Your Browser]
Operating System: [Your OS]
Any insights or fixes for this issue would be greatly appreciated. Thank you!

It is not the expected behaviour that setting the value for a point equal to null would create a gap in the chart.
What is supported is adding whitespace data, which is where a data point only has a time value and no price values. However the library will still draw the line connecting the two points either side of the whitespace and this is extended as well.
To achieve visual gaps in the line plot you could either split your data into multiple line series,
const seriesPart1 = chart.addLineSeries();
seriesPart1.setData([
	{ time: '2018-12-03', value: 26 },
	{ time: '2018-12-04', value: 27 },
	{ time: '2018-12-05', value: 28 },
	{ time: '2018-12-06', value: 29 },
	{ time: '2018-12-07' },
]);
const seriesPart2 = chart.addLineSeries();
seriesPart2.setData([
	{ time: '2018-12-08', value: 31 },
	{ time: '2018-12-09', value: 32 },
	{ time: '2018-12-10' },
]);
const seriesPart3 = chart.addLineSeries();
seriesPart3.setData([
	{ time: '2018-12-11', value: 34 },
	{ time: '2018-12-12', value: 35 },
	{ time: '2018-12-13', value: 36 },
	{ time: '2018-12-14', value: 32 },
	{ time: '2018-12-15' },
]);
const seriesPart4 = chart.addLineSeries();
seriesPart4.setData([
	{ time: '2018-12-16', value: 30 },
	{ time: '2018-12-17', value: 25 },
	{ time: '2018-12-18', value: 16 },
]);

or you could change the color for the points before the white space gaps to be transparent. This would appear to leave gaps but there is the downside that the crosshair marker on those points will also be transparent.
mainSeries.setData([
	{ time: '2018-12-03', value: 26 },
	{ time: '2018-12-04', value: 27 },
	{ time: '2018-12-05', value: 28 },
	{ time: '2018-12-06', value: 29, color: 'transparent' },
	{ time: '2018-12-07' },
	{ time: '2018-12-08', value: 31 },
	{ time: '2018-12-09', value: 32, color: 'transparent' },
	{ time: '2018-12-10' },
	{ time: '2018-12-11', value: 34 },
	{ time: '2018-12-12', value: 35 },
	{ time: '2018-12-13', value: 36 },
	{ time: '2018-12-14', value: 32, color: 'transparent' },
	{ time: '2018-12-15' },
	{ time: '2018-12-16', value: 30 },
	{ time: '2018-12-17', value: 25 },
	{ time: '2018-12-18', value: 16 },
]);


favicon not being deployed/displayed

Microsoft Windows Version 10.0.14393 2016 Microsoft Corporation. All rights reserved.
C:\Users\Peter Ennis>ng version
angular-cli: 1.0.0-beta.14
node: 6.6.0
os: win32 x64
I have tried a number of options in the index.html file to get
the favicon showing but without success.
The localhost site and direct github link show the favicon.
The site is a masked redirect from godaddy to github gh-pages
using the ng github-pages:deploy
Some examples of favicon testing that fail, but have worked in the past
with other deploy methods:
<head>
  <meta charset="utf-8">
  <title>Adaept</title>
  <base href="/adaept/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="https://adaept.github.io/adaept/favicon.ico">
  <!-- <link rel="icon" sizes="16x16 32x32" href="favicon.ico?v=2">
       <link rel="icon" type="image/x-icon" href="favicon.ico"> -->

When I look in the dist folder and parent there is no favicon.ico file available to be deployed.
Does the file have to be manually copied? I would expect deploy to take care of this.

I had to put mine in the assets folder and change the path in the index.html

I could not find any assets folder in the system. Starting with new ...
Here: https://github.com/angular/angular-cli/issues/713
is another reference from @ustaDAH

This also seems related: https://github.com/angular/angular-cli/issues/2202

You have to create an assets folder in your src folder. By convention the CLI will copy it for you to /dist

@jbeckton @peterennis yes that worked.

How do we find out if the team still wants to have the favicon.ico file copied during build?
It appears this might have been lost in Pull Request 2056
If it should still do this, I think the following will fix it...
In packages\angular-cli\models\webpack-build-common.ts update the plugins object to include a copy of the favicon.ico file:
      new CopyWebpackPlugin([
        {
          context: path.resolve(appRoot, appConfig.assets),
          from: { glob: '**/*', dot: true },
          ignore: [ '.gitkeep' ],
          to: path.resolve(projectRoot, appConfig.outDir, appConfig.assets)
        }, {
>>        from: path.resolve(projectRoot, appConfig.root, 'favicon.ico'),
>>        to: path.resolve(projectRoot, appConfig.outDir)
        }
      ])

Paul

This works! Thanks

Dupe of https://github.com/angular/angular-cli/issues/2137

I'd be tempted to rather have favicon.ico in the assets folder and change the url in the index.html accordingly. (And of course also change ng new ... to generate seed sources as such).

It Works! Thanks!


provide profiled segment list query

Please answer these questions before submitting pull request

Why submit this pull request?

[x] Bug fix

[x] New feature provided

[ ] Improve performance

Related issues
#4104

New feature or improvement

provide GraphQL query: query profiled segment list
fix dumping thread snapshot error: ProfileTaskExecutionContext#isStartProfileable
rename snapshot record index name

javadoc failure, please recheck.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@d0fb5b3). Click here to learn what that means.
The diff coverage is 11.25%.

@@            Coverage Diff            @@
##             master    #4322   +/-   ##
=========================================
  Coverage          ?   27.05%
=========================================
  Files             ?     1177
  Lines             ?    25700
  Branches          ?     3660
=========================================
  Hits              ?     6954
  Misses            ?    18140
  Partials          ?      606

Impacted Files
Coverage Δ

...p/server/core/profile/analyze/ProfileAnalyzer.java
77.77% <ø> (ø)

...in/zipkin/elasticsearch/ZipkinTraceQueryEsDAO.java
0% <ø> (ø)

...in/jaeger/elasticsearch/JaegerTraceQueryEsDAO.java
0% <ø> (ø)

...oap/server/core/query/ProfileTaskQueryService.java
0% <0%> (ø)

...n/jdbc/h2/dao/H2ProfileThreadSnapshotQueryDAO.java
0% <0%> (ø)

...ge/plugin/elasticsearch/query/TraceQueryEsDAO.java
0% <0%> (ø)

...csearch/query/ProfileThreadSnapshotQueryEsDAO.java
0% <0%> (ø)

...er/storage/plugin/jdbc/h2/dao/H2TraceQueryDAO.java
0% <0%> (ø)

...gin/jdbc/connectionurl/parser/OracleURLParser.java
98.21% <100%> (ø)

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 d0fb5b3...82a43fa. Read the comment docs.


Refactor the Locator registration process, probably it can be done with fluent API or something...

The puzzle 4-d4ffc0ee from #4 has to be resolved:
https://github.com/nergal-perm/java-decita/blob/6b9199f9d8026ec00add73e6a04c730efd6ee628/src/main/java/ru/ewc/decita/ComputationContext.java#L71-L72
The puzzle was created by Евгений Терехов on 01-Jan-24.
role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

The puzzle 4-d4ffc0ee has disappeared from the source code, that's why I closed this issue.

Actually, it should be done later. Right now it's not required, I can move on without this refactoring.


[Event Request] Page 11309 Apply General Ledger Entries - OnAfterActionPostApplication

Please add a new publisher event to the page action PostApplication - OnAction() as follows:
.
.
PostApplication - OnAction()
TempGLEntryBuf.COPY(Rec);
Apply(TempGLEntryBuf);
ShowTotalAppliedAmount := 0;

//>> Start New Publisher Call
OnAfterActionPostApplication(Rec, TempGLEntryBuf);
//<< End New Publisher Call
.
.

New Publisher Event:
LOCAL [IntegrationEvent] OnAfterActionPostApplication(VAR Rec : Record "G/L Entry Application Buffer";VAR TempGLEntryBuf : Record "G/L Entry Application Buffer")

We need access to TempGLEntryBuf, which is not possible with the default OnActionEvent publisher.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Please add Unreal Engine 5 support

Hello,
I am using SlimeTora for my HaritoraX wireless trackers and I'd love to be able to use them within Unreal Engine 5 where I am learning VR and Vtuber stuff.
But there currently doesn't seem to be any SlimeVR support for UE at all. Please add it!
Thanks.

You can use VMC. If you need help with setting it up, join our Discord and ask in the motion-capture channel ^^


[OAuth] Github auth migration script

We're moving from Nango to our own internal service to manage OAuth connections.
Design doc: https://www.notion.so/dust-tt/Remove-Nango-72fdcee1b51a49d3bcb4dd5a2fb93bf0?pvs=4
Code:
https://github.com/dust-tt/dust/pull/6171
https://github.com/dust-tt/dust/pull/6203
The first system we're transitioning is github which was used outside of Nango (see front managed data sources and connectors):
https://github.com/dust-tt/dust/blob/main/front/lib/github_auth.ts
https://github.com/dust-tt/dust/blob/main/front/pages/github-callback.ts
https://github.com/dust-tt/dust/blob/main/front/pages/w/[wId]/builder/data-sources/managed.tsx
https://github.com/dust-tt/dust/blob/main/connectors/src/connectors/github/temporal/activities.ts
https://github.com/dust-tt/dust/blob/main/connectors/src/connectors/github/lib/github_api.ts
We need to create a migration script from our current setup to the new setup (see latest in https://github.com/dust-tt/dust/tree/main/front/migrations for scaffolding)

Some preparatory work was made here: https://github.com/dust-tt/dust/pull/6309

Following runbook here: https://www.notion.so/dust-tt/Remove-Nango-72fdcee1b51a49d3bcb4dd5a2fb93bf0?pvs=4#c0e420ef95bb4630853329613f64e537

github is live


Run tests on GitHub

probably using Kubernetes-in-Docker as this makes it easy to run the dependencies?

Fixed in #10


chore: release main

:robot: I have created a release beep boop
middleware-log-errors: 0.1.2
0.1.2 (2022-06-01)
Bug Fixes

suppress Raven error logs (9b1c9df)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Financial-Times/dotcom-reliability-kit/releases/tag/middleware-log-errors-v0.1.2 :sunflower:


Add service account name specification to workflows

#17 asked about specifying service account names. Hera does not support this specification yet. This PR adds an optional service account name to the Workflow and CronWorkflow objects. This will make all the workflow pods use the specified service account name.

@tachyus-ryan how does this look? Any chance you have a cluster with a custom service account to test it on to see if it satisfies your use case?

@flaviuvadan I can do that now.

Success! Thank you!

Success! Thank you!

Awesome! Glad it works! Let's merge it 🙂

Will you push this up to PyPI as 0.2.0?


Add more direct warnings to configure and verify git

I don't think we can make this too obvious - or can we?  Does it
de-emphasize the other verifications?
Please review: these links will work, right?

Thanks! I will also double-check links.


[SMALLFIX] Ignore flaky test

This test has been failing a lot of builds lately. A ticket has been created for investigating why it is flaky and fixing it: https://tachyon.atlassian.net/browse/TACHYON-1579

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Tachyon-Pull-Request-Builder/8016/
Test PASSed.

fixed by https://github.com/amplab/tachyon/pull/2514


Project creation

Once I had everything isntalled the tutorial sais to type "ng new tutorial" in a console, but which console? I could not find where should I type it. Then I found the option in the context menu "Open Devonfw CDM here" in tehe windows explorer and I could keep going.
Next step, "ng serve" didn't work either, then figured out that I had to go to the tutorial folder first.

Thank you for your contribution. I've fixed it in the tutorial and the change is already published.


Database Migration (upgrade from sqlite)

Feature Description
As far as I'm aware, there is currently no way to migrate away from sqlite to a bespoke database solution, at least not an officially supported one. Someone who starts with a small sqlite instance not expecting it to grow can find themselves in a situation where there's no clean upgrade path should the demand change.
Having an official migration tool or at least an outlined process would be a welcome addition.
Screenshots
No response

ESF Migration toolkit may be a solution. Just used trial version to migrate Sonar db.

So one option is to actually use the gitea dump command since the golang db library gitea uses (xorm) can interact with 4 db dialects

sqlite3
mysql/mariadb
mssql
postgresSQL

by default the dump command with DUMP in the dialect of your app.ini but it can be chosen as per https://docs.gitea.com/next/administration/command-line#dump
Example outputs of the sql file within the dump
SQLITE3 -> SQLITE3
/*Generated by xorm 2023-09-03 18:00:20, from sqlite3 to sqlite3*/

CREATE TABLE IF NOT EXISTS `oauth2_application` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `uid` INTEGER NULL, `name` TEXT NULL, `client_id` TEXT NULL, `client_secret` TEXT NULL, `confidential_client` INTEGER DEFAULT TRUE NOT NULL, `redirect_uris` TEXT NULL, `created_unix` INTEGER NULL, `updated_unix` INTEGER NULL);

SQLITE3 -> MYSQL
/*Generated by xorm 2023-09-03 18:00:25, from sqlite3 to mysql*/

SET sql_mode='NO_BACKSLASH_ESCAPES';
CREATE TABLE IF NOT EXISTS `oauth2_application` (`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT NOT NULL, `uid` BIGINT(20) NULL, `name` VARCHAR(255) NULL, `client_id` VARCHAR(255) NULL, `client_secret` VARCHAR(255) NULL, `confidential_client` TINYINT(1) DEFAULT TRUE NOT NULL, `redirect_uris` TEXT NULL, `created_unix` BIGINT(20) NULL, `updated_unix` BIGINT(20) NULL);

SQLITE3 -> MSSQL
/*Generated by xorm 2023-09-03 18:00:29, from sqlite3 to mssql*/

IF NOT EXISTS (SELECT [name] FROM sys.tables WHERE [name] = '[oauth2_application]' ) CREATE TABLE [oauth2_application] ([id] BIGINT PRIMARY KEY IDENTITY NOT NULL, [uid] BIGINT NULL, [name] VARCHAR(255) NULL, [client_id] VARCHAR(255) NULL, [client_secret] VARCHAR(255) NULL, [confidential_client] BIT DEFAULT 1 NOT NULL, [redirect_uris] VARCHAR(MAX) NULL, [created_unix] BIGINT NULL, [updated_unix] BIGINT NULL);
SET IDENTITY_INSERT [oauth2_application] ON;
CREATE INDEX [IDX_oauth2_application_uid] ON [oauth2_application] ([uid]);

SQLITE3 -> POSTGRES
/*Generated by xorm 2023-09-03 18:00:33, from sqlite3 to postgres*/

CREATE TABLE IF NOT EXISTS "public"."oauth2_application" ("id" BIGSERIAL PRIMARY KEY  NOT NULL, "uid" BIGINT NULL, "name" VARCHAR(255) NULL, "client_id" VARCHAR(255) NULL, "client_secret" VARCHAR(255) NULL, "confidential_client" BOOL DEFAULT TRUE NOT NULL, "redirect_uris" TEXT NULL, "created_unix" BIGINT NULL, "updated_unix" BIGINT NULL); ;
CREATE UNIQUE INDEX "UQE_oauth2_application_client_id" ON "oauth2_application" ("client_id");
CREATE INDEX "IDX_oauth2_application_created_unix" ON "oauth2_application" ("created_unix");

Once completed the sql file within the dump archive should be loadable into whatever db you intend to use now
NOTE: if you do use xorm as the translator please ensure you have a backup of the db in its natural format (ie copy the sqlite file, mysql dump... etc) "just in case" there is a xorm export bug.


Unused import without module prefix gives a compile error

Spec says "It is an error for a source-part to import a module using a module-prefix and then not to use that module-prefix."
In current implementation, Compiler gives an error even if we import a module without using a module prefix.
Without module prefix
import ballerina/io;
With module prefix
import ballerina/io as foo;

I guess we'll have to get this clarified in the spec.
import-decl := import [org-name /] module-name [as import-prefix] ;

When there is no import-prefix, the last part of the module-name becomes the module-prefix. IMO, the current behaviour is correct.


Validation service IDL (initial)

I still have not decided if we should report failures as failed GRPC requests or model them as regular response messages.
In case of the former approach, an error body would include some details about the failure (one generic error message type).
In case of the latter approach we would have two response types per validation request.


Allow body payload from external JSON resource

Work branch:
https://github.com/authorjapps/zerocode/tree/issue2_external_json_payload
Define the new place holder structure here.
e.g.
{
    "name": "add_500_employees_load",
    "url": "/google-emp-services/home/employees",
    "operation": "PUT",
    "request": {
        "body": "${JSON.PAYLOAD.FILE:loadtest/500_employees_each_with_5_addresses.json}"
    },
    "assertions": {
        "status": 200
    }
}

More:

Is this branch merged with master ?

Not exactly. This was not a blocker and also it was argued that - the independent-ness of the test cases and the readability will be lost if allowed this way. Also one has to traverse to n fro via the IDE to know the payload structure. So it was paused.
Are you looking for load testing ? or stress testing aka performance testing?
Framework recently developed this and enables loading the same test(s) number of times, in a particular interval of time and all these are configurable in a properties file.

I am doing Functional testing, I am also looking a way where we can parameterize a test using external data source like csv.
Having Json externalize can reduce the size of json, also it will avoid duplicate data, just a thought

@UmeshIghe , sounds good to reuse the payload from a JSON file, that's why this ticket was for 👍. But as mentioned in the earlier comment , the traversing n independentness will be lost, that's the trade-off of this approach.
Anyways, we will include this feature in our upcoming release(a week or so - will try). 👍
Please watch n follow our latest news/releases/features etc in Twitter.
Readme section - https://github.com/authorjapps/zerocode#latest-newsreleasesfeatures
Note-
Even now you can achieve this via calling a Java(Pojo), but JSON is better in my opinion in order to copy paste as it is like postman. Let's go for JSON file way.

Also this makes sense, doesn't it ?-
{
    "name": "update_address",
    "url": "/api/v1/addresses/AD-US-01",
    "operation": "PUT",
    "request": {
        "body": "${JSON.FILE:test_files/address_payload.json}"
    },
    "assertions": {
        "status": 200,
        "body"{
            "id": "AD-US-01"
         }
    }
}

and if you make a GET call(which of course is necessary to verify the result)
then it should allow to assert from a file too ?
{
    "name": "Get the address",
    "url": "/api/v1/addresses/${$.update_address.response.id}",
    "operation": "GET",
    "request": {
    },
    "assertions": {
        "status": 200,
        "body": "${JSON.FILE:test_files/address_response.json}"
    }
}

What you think @UmeshIghe @macrocks @nirmalchandra @officiallysameer ?
Better ?
If we are allowing body JSON file, we should allow the response JSON file ?
I am leaving it open for discussion.

@UmeshIghe @albertosipov  .Yes it is a good feature to be pick it as an enhancement. It will help everyone to reuse json in multiple test cases.

Yeah, also the following too makes sense,

Here, only the 'addresses' part of it is common and can be read from a Json file.

{
    "name": "update_addresses",
    "url": "/api/v1/addresses/emp_001",
    "operation": "PUT",
    "request": {
        "body": {
            "updatedDate": "2018-10-10",
            "addresses": "${JSON.FILE:test_files/common_addressses.json}"
        }
    },
    "assertions": {
        "status": 200,
        "body": {
            "addresses": "${JSON.FILE:test_files/common_addressses.json}"
        }
    }
}

and the common_addressses.json can be like below,
[
    {
        "type":"corp-office",
        "city":"Texas"
    },
    {
        "type":"hr-office",
        "city":"Newark"
    }
]

Basically, resolve the JSON.FILE in request and response(ie assertion) node by deep traversing.
Also JSON.FILE sounds meaningful than JSON.PAYLOAD.FILE.
I will update the description if there is no objections from anyone.
@UmeshIghe, are you happy for these implementations?

fyi - PR raised n under review, PR No- https://github.com/authorjapps/zerocode/pull/138
Things pending-

Update README file
Add a wiki page for this feature

Yeah, also the following too makes sense,

Here, only the 'addresses' part of it is common(not the entire body payload) and can be read from a Json file.

{
    "name": "update_addresses",
    "url": "/api/v1/addresses/emp_001",
    "operation": "PUT",
    "request": {
        "body": {
            "updatedDate": "2018-10-10",
            "addresses": "${JSON.FILE:test_files/common_addressses.json}"
        }
    },
    "assertions": {
        "status": 200,
        "body": {
            "addresses": "${JSON.FILE:test_files/common_addressses.json}"
        }
    }
}

and the common_addressses.json can be like below,
[
    {
        "type":"corp-office",
        "city":"Texas"
    },
    {
        "type":"hr-office",
        "city":"Newark"
    }
]

Basically, resolve the JSON.FILE in request and response(ie assertion) node by deep traversing.
Also JSON.FILE sounds meaningful than JSON.PAYLOAD.FILE.
I will update the description if there are no objections from anyone.
@UmeshIghe, are you happy for these implementations?

Yes , this is also good

Hello mate @UmeshIghe, When u get chance, can you say Hello in gitter chat room please? 🙏
Gitter link: https://gitter.im/zerocode-testing/help-and-usage
Sounds like you are doing something interesting and will be nice if you publish a small write-up/article as a blog.


no package.json

npm install

The above command won't work because there is no package.json file.

try this command before running the npm install
$ npm create vite@latest ./

Happy coding :)

this will get fixed soon.


Controling location device lon/lat

Is there a way to control the presumed location for PlutoTV? I've been using IPTV Merge witht the PlutoTV plugin, where you can choose which country channels to consume. With cabenet I'm getting local channels only.
10x

Country code is not used currently in the URLs to PlutoTV.  I will take a look at IPTV Merge and see if there is a way to incorporate the CCs.

Reviewed the IPTV Merge PlutoTV plugin.  It uses the M3U files from https://i.mjh.nz/PlutoTV and does not get the data from PlutoTV.  Using the M3U plugin on Cabernet is the equivalent to this plugin.  No change to the plutotv plugin is needed.