'vmssCSE' resource still there after kamino deletes it

From a kamino job run, it appears that the vmssCSE resource was deleted as we would expect:
2021-09-22T00:49:02.822805180Z k8s-agentpool2-24293783-vmss	INFO: ===> Executing command: ['az' 'vmss' 'extension' 'delete' '--subscription' '***' '--resource-group' 'kubernetes-eastus2-75998' '--vmss-name' 'k8s-agentpool2-24293783-vmss' '--name' 'vmssCSE']

But a scale out after running the above vmss-prototype job shows that the vmssCSE resource is still present on nodes:
$ az vmss list-instances -g kubernetes-eastus2-75998 -n k8s-agentpool2-24293783-vmss | jq -r '.[] | select(.name == "k8s-agentpool2-24293783-vmss_969") | .resources'
[
  {
    "autoUpgradeMinorVersion": true,
    "enableAutomaticUpgrade": null,
    "forceUpdateTag": null,
    "id": "/subscriptions/01993b85-2035-47d7-99ad-a70e8520136f/resourceGroups/kubernetes-eastus2-75998/providers/Microsoft.Compute/virtualMachines/k8s-agentpool2-24293783-vmss_969/extensions/vmssCSE",
    "instanceView": null,
    "location": "eastus2",
    "name": "vmssCSE",
    "protectedSettings": null,
    "provisioningState": "Failed",
    "publisher": "Microsoft.Azure.Extensions",
    "resourceGroup": "kubernetes-eastus2-75998",
    "settings": {},
    "tags": null,
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "typeHandlerVersion": "2.0",
    "typePropertiesType": "CustomScript"
  },
  {
    "autoUpgradeMinorVersion": true,
    "enableAutomaticUpgrade": null,
    "forceUpdateTag": null,
    "id": "/subscriptions/01993b85-2035-47d7-99ad-a70e8520136f/resourceGroups/kubernetes-eastus2-75998/providers/Microsoft.Compute/virtualMachines/k8s-agentpool2-24293783-vmss_969/extensions/k8s-agentpool2-24293783-vmss-computeAksLinuxBilling",
    "instanceView": null,
    "location": "eastus2",
    "name": "k8s-agentpool2-24293783-vmss-computeAksLinuxBilling",
    "protectedSettings": null,
    "provisioningState": "Failed",
    "publisher": "Microsoft.AKS",
    "resourceGroup": "kubernetes-eastus2-75998",
    "settings": {},
    "tags": null,
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "typeHandlerVersion": "1.0",
    "typePropertiesType": "Compute.AKS-Engine.Linux.Billing"
  }
]

(As you can see above the provisioningState of the CSE if Failed, which is how I found this.)
Is this a bug in kamino (not retrying after failed extension delete?) or in VMSS?

From this automated run:
https://github.com/Azure/aks-engine/runs/3669479203

cc @Michael-Sinz

Interesting - based on the logs, azure claimed the extension was correctly deleted.  (It would have retried up to 3 times on failure to delete)
2021-09-22T00:49:00.797508015Z k8s-agentpool2-24293783-vmss	INFO: ===> Executing command: ['az' 'vmss' 'show' '--subscription' '***' '--resource-group' 'kubernetes-eastus2-75998' '--name' 'k8s-agentpool2-24293783-vmss']
2021-09-22T00:49:01.900907139Z k8s-agentpool2-24293783-vmss	INFO: ===> Executing command: ['az' 'vmss' 'extension' 'list' '--subscription' '***' '--resource-group' 'kubernetes-eastus2-75998' '--vmss-name' 'k8s-agentpool2-24293783-vmss']
2021-09-22T00:49:02.822805180Z k8s-agentpool2-24293783-vmss	INFO: ===> Executing command: ['az' 'vmss' 'extension' 'delete' '--subscription' '***' '--resource-group' 'kubernetes-eastus2-75998' '--vmss-name' 'k8s-agentpool2-24293783-vmss' '--name' 'vmssCSE']
2021-09-22T00:49:15.386878576Z k8s-agentpool2-24293783-vmss	INFO: ===> Executing command: ['az' 'vmss' 'show' '--subscription' '***' '--resource-group' 'kubernetes-eastus2-75998' '--name' 'k8s-agentpool2-24293783-vmss']
2021-09-22T00:49:16.531976599Z k8s-agentpool2-24293783-vmss	INFO: ===> Executing command: ['az' 'vmss' 'update' '--subscription' '***' '--resource-group' 'kubernetes-eastus2-75998' '--name' 'k8s-agentpool2-24293783-vmss' '--set' 'sku.capacity=1000' '--no-wait']

We could add a loop to list extensions again and check if we need to delete again, to validate that they really have been deleted.

Yep, I think so. :/

It is sad since the azure CLI claimed it worked :-(
I have not noticed this happening before but it would not be hard to add that.


fix: remove prism-crypto dependency

Description:
Summarize the changes you're submitting in a few sentences, including Jira ticket ATL-xxxx if applicable.
Link to any discussion, related issues and bug reports to give the context to help the reviewer understand the PR.
Alternatives Considered (optional):
Link to existing ADR (Architecture Decision Record), if any. If relevant, describe other approaches explored and the selected approach. Documenting why the methods were not selected will create a knowledge base for future reference, helping prevent others from revisiting less optimal ideas.
Checklist:

[ ] My PR follows the contribution guidelines of this project
[ ] My PR is free of third-party dependencies that don't comply with the Allowlist
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked the PR title to follow the conventional commit specification

coverage: 49.434% (+0.09%) from 49.343%
when pulling 354913b823c3344091ec6e16b4327d7fcf297c30 on fix/remove-prism-crypto
into cf156d99690138e62c30d0a2be09f0e4e72680f0 on main.


FIX #16005 - Database & databaseSchema should not be stored in table_entity json (#16005)

Describe your changes:
Fixes 16005, make the following changes

Update TableRepository to unset databaseSchema & database before storing.
Update DatabaseSchemaRepository to unset database before storing.

The reason is that those relationship should be stored in entity_relationship.

Type of change:

[x] Bug fix
[ ] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My PR title is Fixes <issue-number>: <short explanation>
[x] I have commented on my code, particularly in hard-to-understand areas.

Thanks for the quick fix @zjffdu


Warning: Unexpected input(s) 'pagerduty-dedup-key', valid inputs are ['pagerduty-integration-key']

I see the following warning when the action is used. The alert still get sent successfully though and doesn't seem to actually break anything.
Warning: Unexpected input(s) 'pagerduty-dedup-key', valid inputs are ['pagerduty-integration-key']

@brianpham are you using v0.1.0 or v0.2.0? Support for pagerduty-dedup-key was added in 0.2.0

PR to fix this: https://github.com/Entle/action-pagerduty-alert/pull/5

Thanks @miparnisari and @andys8! Fixed in the latest version.


add sparse dot to scipy.sparse

Hi everyone,
I found that there is no adequate dot function that handles multiplication of dense and sparse matrices such as dot(dense, sparse). There is also a suggestion to convert sparse to dense first in order to multiply like so, see https://docs.scipy.org/doc/scipy/reference/sparse.html. A bit frustrating for me, especially knowing how easy it is to implement such a function. Here is my example of pure python implementation with some tests. Most of the code tests shape of the input ndarray, so that sdot behaves very similar to the numpy.dot. Also the code can be efficiently parallelized, so performance should not be the issue. Hope this helps,
best regards,
Ivan
#!/usr/bin/env python3
"""sparse dot implementation
"""
import numpy as np
import scipy
import scipy.sparse
from scipy.sparse import csr_matrix, csc_matrix, lil_matrix

def sdot(a, sb, order="C"):
    """multiply ndarray by sparse matrix

    behaves very similar to numpy.dot

    Parameters
    ----------
    a : numpy.ndarray of shape (N1,N2,...,Nj)
    sb: any scipy sparse matrix of shape (Nj,Nk)

    order : "C" or "F", optional
        internal reshaping order, should not affect the result

    Returns
    -------
    c : numpy.ndarray of shape (N1,N2,...,Nk)
        c[i1,i2,...,i{N-1},iN] = Sum_j a[i1,i2,...,i_{N-1},j]*sb[j,iN]
        i1 in {0,...,N1-1}
        i2 in {0,...,N2-1}
        ...
        i{N-1} in {0,...,N{N-1}}
        iN in {0,...,Nk-1}
    """
    ## works with all sparse matrix formats
    _Nj,Nk = sb.shape # sparse is always 2D
    jj, kk = sb.nonzero()
    N_sdata = len(jj)
    if N_sdata==0:
        raise IOError("empty sparse matrix")
        return None
    if len(a.shape)==0: # a is a number
        return a*sb.toarray()
    elif len(a.shape)==1: # a is a number or vector
        if a.shape[0]==1:
            return a[0]*sb.toarray()
        else:
            if a.shape[0]!=_Nj:
                raise IOError("wrong dimension of vector a")
                return None
            else:
                # merge data type
                _dtype = (a[0]*sb[jj[0],kk[0]]).dtype
                out = np.zeros(Nk, dtype=_dtype)
                for u in range(N_sdata):
                    j = jj[u]
                    k = kk[u]
                    out[k] += a[j]*sb[j,k]
                return out
    else: # a is an N>=2 dimensional array
        if np.prod(a.shape)==1: # a is still a number
            a_view = a.rehsape(1)
            return a_view[0]*sb.toarray()
        else: # most interesting case
            Nj = a.shape[-1]
            if Nj!=_Nj:
                raise IOError("incompatible shapes")
                return None
            # multiplication is simple for square matrices
            # so we take a view with square shape
            Ni_view = np.prod(a.shape[:-1])
            # the order can be either C or F (depends on implementation)
            a_view = a.reshape((Ni_view, Nj), order=order)
            # merge data type
            _dtype = (a_view[0,0]*sb[jj[0],kk[0]]).dtype
            # preapare output shape
            out_shape = tuple([d for d in a.shape[:-1]])
            out_shape += (Nk,)
            # prepare output view with proper shape
            out = np.zeros((Ni_view, Nk), dtype=_dtype)
            for i in range(Ni_view): # may efficiently run in parallel
                for u in range(N_sdata):
                    j = jj[u]
                    k = kk[u]
                    out[i,k] += a_view[i,j] * sb[j,k]
            return out.reshape(out_shape, order=order)

if __name__ == '__main__':
    def b2s(b):
        """nice boolean format"""
        return ("%s"%b)[0]
    # matrix of Pauli matrices
    a = np.array([[[0, 0, 1 , 0],[0, 1 , 0, 0]],
                  [[0, 0,-1j, 0],[0, 1j, 0, 0]],
                  [[0, 1, 0 , 0],[0, 0 ,-1, 0]]], complex)
    a = a[...,1:3]   # discontiguous
    ac = np.array(a) # contiguous
    print("check a contiguity")
    print("a : C cont %s, F cont %s"%
        (b2s(a.flags["C_CONTIGUOUS"]),b2s(a.flags["F_CONTIGUOUS"])))
    print("ac: C cont %s, F cont %s"%
        (b2s(ac.flags["C_CONTIGUOUS"]),b2s(ac.flags["F_CONTIGUOUS"])))
    b = lil_matrix((2,2), dtype=float)
    # sigma z
    b[0,0] = 1
    b[1,1] =-1
    # b = csc_matrix(b) # also ok
    # b = csr_matrix(b) # also ok
    c  = sdot(a, b, order="F")
    cc = sdot(ac, b, order="C")
    _c = np.dot(a, b.toarray())
    print(c.shape)
    print(np.linalg.norm(c-_c))
    print(np.linalg.norm(cc-_c))
    ## another test
    a = np.random.rand(10,10,10,10)
    b = lil_matrix(np.random.rand(10,10))
    c1 = sdot(a, b)
    c2 = np.dot(a, b.toarray())
    print(np.linalg.norm(c1-c2))

Thanks @IvanAvdeevGth! Since you already have some code. Would you like to propose a PR?

Hello,
While there is no generic dot function, __matmul__ (@) can be used and gives the expected result. It can be used in any configuration with either dense or sparse matrices, it is unfortunately not documented (see #11078).
The behavior of  dot differs from @ for higher rank tensors, but since the current scipy.sparse implementation only deals with matrices, a reshape of the dense array is enough to recover it. To me, PEP 465 also applies to sparse matrices concerning the readability improvement and @ should always be preferred.
Currently,  dense @ sparse is implemented as (s.transpose() * d.transpose()).transpose(). In my memories there was a proposition to improve it but I cannot find it.


Bug: unless block closing tag being removed by formatter

Describe the bug
{/unless} is being removed by mix surface.format
How to reproduce it

have a component render function with an {#unless}...{/unless} block in the ~F sigil.
run mix surface.format
check your component, the closing {/unless} is removed

The behavior you expected
I expect the formatter to not create compile errors.
Your Environment
Surface: v0.5.0
LiveView: v0.15.7
Elixir: v1.12.1

Thanks for reporting this @doughsay! Fixed in #33. I'll post back when this is patched.

@doughsay The fix was published just now in v0.5.1: https://hex.pm/packages/surface_formatter/0.5.1

Such fast turnaround!  Amazing, thanks a lot!


Improvement Request: Add support to TValue type converters present in Spring.ValueConverters

- if rType.GetProperty(tgtprop.Name) <> nil then tgtprop.SetValue(aTgtObj,rType.GetProperty(tgtprop.Name).GetValue(aSrcObj));
+ if rType.GetProperty(tgtprop.Name) <> nil then
+ begin
+   Value := rType.GetProperty(tgtprop.Name).GetValue(aSrcObj);
+   Value.TryConvert(tgtprop.PropertyType.Handle, vTargetValue);
+   tgtprop.SetValue(aTgtObj, vTargetValue);
+ end;

Could you explain your request?

This issue was closed because it has been open for more than 90 days with no activity.


Problem in release v0.8

Hi my firend, I found a problem in this version, tone 1750Hz not working in long press side key 1.

The 1750Hz and Alarm functions are disabled by default. If you want you can build it with ENABLE_TX1750 set to 1.
You can still send 1750 tone by pushing PTT and SIDE_KEY2 together.


Thanks @Kwoth, love you bb.

33176f894398ebe6d1b9e9c08327fd460e7d7d13

Praise the Sun @Kwoth!


New-style macro APIs and a prototype implementation for Scala 2.11.11

Def macros and macro annotations have become an integral part of the Scala 2.x ecosystem. Well-known libraries like Play, Sbt, Scala.js, ScalaTest, Shapeless, Slick, Spark, Spire and others use macros to achieve previously unreachable standards of terseness and type safety.
Unfortunately, Scala macros have also gained notoriety as an arcane and brittle technology. The most common criticisms of Scala macros concern their subpar tool support and overcomplicated metaprogramming API based on compiler internals. Even five years after their introduction, macros still can't expand in Intellij, leading to proliferation of spurious red squiggles - sometimes in pretty simple code. As a result, the language committee has decided to retire the current macro system in Scala 3.x.
During the last couple years, we've been working on a new macro system that will support both Scala 2.x and Scala 3.x. New-style macros are based on a platform-independent metaprogramming API that was designed  to be easy to use and easy to support in multiple implementations of the language.
Status
This repository contains a technology preview of the new macro system that features:

Scalameta-based syntactic and semantic APIs that cross-compile against Scala 2.10, 2.11, 2.12, 2.13 and Dotty for both JVM and JS. The corresponding library is quite slim, being less than 500Kb in size.
A prototype implementation of the new macro engine for Scala 2.11.11 that supports macro annotations and def macros.
Examples of new-style macros, including the @main annotation and a new-style materializer.

Roadmap
Our first order of business is to get a Dotty implementation up and running. Next, we will be publishing documentation, including detailed descriptions of the APIs and example projects to get started. Follow our issue tracker for more information.
Credits
Over the years, many contributors influenced the design of Scala macros. Check out Eugene Burmako's dissertation for more information.
The latest iteration of this project is the result of collaboration between:

Eugene Burmako, who led the development of new-style macros based on Scalameta, implemented the new macro APIs and prototype support for Scala 2.x.
Fengyun Liu, who experimented with the extractor-based approach to macro APIs, convincingly demonstrated its practical benefits and implemented prototype support for Scala 3.x in liufengyun/gestalt. This was a groundbreaking contribution that allowed us to deliver the new macro system much faster than initially planned.
Olafur Pall Geirsson, who worked on the converter-based approach together with Eugene, exposed and highlighted the shortcomings of the converter-based approach to macro APIs.

@adriaanm It would be great to get a review from the Lightbend compiler team. I'm looking forward to building a stable macro system together!

Agreed! We're currently at an off site meeting. Will review when back home and recovered from jet lag :)

This is a good start, and can serve as a basis for evolution.
Regarding review, I think only two things matter (Not really matter for the 1st PR of a project):

Compiler API -- contract with compilers
Programmer API -- api for macro authors

extension methods
helper methods
helper constructors

All other stuff are details that don't matter much. This PR is about 7000LOC, but the APIs in total should be about 600LOC. Maybe @xeno-by you can make it easier for review, and give some pointers?
Some initial feedback below:
Separation of User-API from Compiler-Contract
It would be good to separate them completely, as their design follow different principles and have different audience. Otherwise, the code will become messy, and difficult to manage them well.
The separation will make it very easy to figure out what are the assumptions we make on the compiler, ease compiler implementation.
Flags
Current code defines flags instead of using queries. It's against the design goal of portability.
https://github.com/scalamacros/scalamacros/pull/1/files#diff-b65270e10a64f0602e086402370a5341R17
Mirrors
I'm not sure what are mirrors, why this concept is necessary for compiler API, or user API?
type Mirror >: Null <: AnyRef

https://github.com/scalamacros/scalamacros/pull/1/files#diff-2f0948cddfb40bd8754be7e238c24c04R9

First of all, this is super exciting! Great work @xeno-by
I agree with @liufengyun that this PR is impractical for review. The build infrastructure diffs are noise that hide away the beautiful tiny core. I would propose the next steps to be

merge this PR
focus on getting dotty pipeline working in test suite, that's where rubber meets the road
discuss design/details in issue tracker, like with #6

Some general questions:

Do we need to cross-build to Scala.js? Macros only have a compile-time footprint so there won't be linking errors unless some runtime code calls the scala.macros api.
it's not clear that there is an implicit Mirror inside the scope of the meta block , which makes IDEs like IntelliJ not pick up the extension methods from the Semantic API. Even if IDEs can add special support for the synthetic implicit mirror, I don't think we should rely on it since it

taxes all tooling developers, Jetbrains may have resources to immediately accommodate these quirks but volunteer-based projects like ENSIME don't
slows adoption of early adopters like myself, who aren't half as productive without IDE support

in the serialize example, the T type parameter is used as a value T.vals inside the meta block. I think it would be more intuitive to use it type position like tpe[T].vals.

If I can propose an alternative syntax, I'd go with something like
inline def serialize[T] = meta { implicit mirror =>
  tpe[T].vals.filter(...)
  ...
  q"foo(1)"
}
//  expose some dummy
  def meta(mirror: Mirror => Tree): Nothing = ???

Separation of User-API from Compiler-Contract

Do you propose to separate the abstract interface and engine implementation into individual repos @liufengyun ? I cloned the repo locally and experimented with the new macros, it was incredibly productive to have everything in one place. At least while this project is rapidly evolving and experimentation is happening across different engines, I propose to keep everything in the same repo. Once the abstract interfaces are set in stone, it's fine to split it up.

Flags

@liufengyun Good point. Those should probably be moved to the scalac engine. Having a working Dotty pipeline will make it easier to find issues like this.

Separation of User-API from Compiler-Contract

Do you propose to separate the abstract interface and engine implementation into individual repos @liufengyun ? I cloned the repo locally and experimented with the new macros, it was incredibly productive to have everything in one place. At least while this project is rapidly evolving and experimentation is happening across different engines, I propose to keep everything in the same repo. Once the abstract interfaces are set in stone, it's fine to split it up.

@olafurpg I don't mean separate engine implementation into different repos. I mean in the following code, some are implemented, some are not:
https://github.com/scalamacros/scalamacros/pull/1/files#diff-b65270e10a64f0602e086402370a5341R50
In fact, the unimplemented are APIs/Contracts for compiler, the implemented are User APIs.
As a compiler implementation, I'd like to see all compiler contracts are concentrated in one place, not mixed with user APIs.
In Gestalt, initially we also mix them together. Later we separate them and reaped huge benefits.

@liufengyun The line you linked is in fact implemented in XtensionType, see https://github.com/scalamacros/scalamacros/pull/1/files#diff-6e6d140a987e47c0c45c526e47c0ca1cR14.
The abstract compiler-contracts are isolated from the concrete user APIs:

MirrorAbstracts: https://github.com/scalamacros/scalamacros/pull/1/files#diff-2f0948cddfb40bd8754be7e238c24c04R13 (see typeMembers)
TreeAbstracts: https://github.com/scalamacros/scalamacros/pull/1/files#diff-da17e93458fa866b7c72af44a710af36R8
ExpansionAbstracts: https://github.com/scalamacros/scalamacros/pull/1/files#diff-00d18c0364d404a1e79fb45ff550941eR11

These three are joined together in scala.macros.Universe#Abstracts: https://github.com/scalamacros/scalamacros/pull/1/files#diff-08f9237a89790db07625e9ea6f7c52d4R7

However, the user APIs are a bit mixed across several traits, for example why is it Types.XtensionType instead of Semantic.XtensionSemanticType? It's a bit hard to explore the semantic api because of the heavy usage of extension methods combined with lack of IDE intelligence inside meta blocks.

Thanks for the pointer @olafurpg . As the compiler contracts/API are in fact the most important part of the macro system, I think it's worth to put them together in a separate package & directory. From code maintenance point of view, if there were no changes to the core, we know that the assumptions on compiler are not changes. It will also make it much easier for compiler people to review the code and check the contracts.
I remember scala.meta removed modifiers from trees, but it seem they come back as constructors/extractors? Is it intentional?
 +    def ModAnnot: ModAnnotCompanion
 +    def ModPrivate: ModPrivateCompanion
 +    def ModProtected: ModProtectedCompanion
 +    def ModImplicit: ModImplicitCompanion
 +    def ModFinal: ModFinalCompanion
 +    def ModSealed: ModSealedCompanion
 +    def ModOverride: ModOverrideCompanion
 +    def ModCase: ModCaseCompanion
 +    def ModAbstract: ModAbstractCompanion
 +    def ModCovariant: ModCovariantCompanion
 +    def ModContravariant: ModContravariantCompanion
 +    def ModLazy: ModLazyCompanion
 +    def ModValParam: ModValParamCompanion
 +    def ModVarParam: ModVarParamCompanion
 +    def ModInline: ModInlineCompanion

I also see there's a constructor Template. The extractor-based approach prefers macro-structures over micro-structures, as I've I documented here: https://github.com/liufengyun/gestalt/issues/73 and in the paper. This point may be debatable.
Another merit of the extractor-based approach is that it enables us to be lazy about what constructor or extractor to provide. Not every syntactic element needs an extractor, e.g. for, all type trees, patterns. At least, it's completely fine to just delay providing them until a concrete use case surface.

Thank you, everyone, for your feedback! I'm preparing for my tomorrow's talk and catching up at work, so I'll get to replying on Thursday or Friday.

@lrytz @retronym @szeiger I'd appreciate your feedback!

I read the Gestalt paper to get started, that sounds very good. For reviewing, this PR is indeed overwhelming. Maybe we can organize a tech talk hangout where you take us through the implementation?

Great idea @lrytz I would love to attend a hangout discussing this.

@lrytz @ShaneDelmore See an invite to a private gitter room. Let's agree on a date/time.

Updated the API to be in sync with Scalameta 2.0.0-M1, limited the supported Scala versions to 2.12.x, 2.13.x and 0.2.x, and changed the new macro syntax from inline/meta to def/macro. We're ready to get started.

I've just published the current state of master to our bintray repository. See an example of using the newly published complier plugin at https://github.com/scalamacros/sbt-example-newstyle.

The link to the new style materializer example in the description at the top is is broken ... would you mind updating it?

@milessabin Please check out examples in https://github.com/scalamacros/sbt-example-newstyle.


Google Calendar Api is setting wrong time on an event (Calendar)

Hello, I want to set a specific date and time on the Google Calendar Event. So I used the Google_Service_Calendar_EventDateTime to set my starting and end time. Then I formated the time to have the accepted format that Google is asking. So instead of setting the time to 11:25 it sets it to 2:25pm for start and for end instead of 11:55 it sets it to 2:55p. If I do a var_dump to the Google_Service_Calendar_EventDateTime is shows me the correct time. Here is my code
            $eventService = new Google_Service_Calendar_Event();
            $format = 'Y-m-d\TH:i:sP';
            $starDate = new \DateTime($event->calendar_starts_datetime);
            $event->calendar_starts_datetime = $starDate->format($format);
            $endDate = new \DateTime($event->calendar_ends_datetime);
            $event->calendar_ends_datetime = $endDate->format($format);
            $start->setDateTime($event->calendar_starts_datetime);
            $end->setDateTime($event->calendar_ends_datetime);
            $start->setTimeZone('Europe/Athens');
            $end->setTimeZone('Europe/Athens');
            $eventService->setStart($start);
            $eventService->setEnd($end);

Does anyone knows how i can fix this issue? So if I put star time 10:00 and end time 20:00 to set it 10am and 8pm to calendar?

Sorry, I should have mentioned this before, with PHP DateTime, the Timezone is set to the servers default timezone if you don't set the Timezone when you instantiate DateTime.
This should work for you:
$starDate = new \DateTime($event->calendar_starts_datetime, new DateTimeZone("Europe/Athens"));
$endDate = new \DateTime($event->calendar_ends_datetime, new DateTimeZone("Europe/Athens"));
Then remove both:
$start->setTimeZone('Europe/Athens');
$end->setTimeZone('Europe/Athens');
FYI Timezone has to be set this way( i.e.)
$date->setTimeZone(new DateTimeZone("Europe/Amsterdam");

It is working thanks a lot for your help


Search files by name is very slow even for cases that could be optimised

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.59.0
OS Version: MacOs 10.15.7

Steps to Reproduce:

Do CMD-P to open the 'search files by name' dropdown
Paste in a path to a file in the current project, such as 'foo/bar/file.php'
It takes a VERY LONG TIME - 30 seconds +

Could this be optimised so that if a path is given, these are checked before the full search of the whole project is carried out:

the path from the root of the project
the relative path from the currently open file

I think we used to check exact relative path matches, I can't quite remember why we removed it. Does @TylerLeonhardt own this now?
For slow search in general, you could check tips in https://github.com/microsoft/vscode/wiki/Search-Issues

@roblourens that code still exists but is limited to when you paste the full absolute path into quick open:
https://github.com/microsoft/vscode/blob/ca28dc10d78296d10befc1df3c298a1771c5d98d/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts#L657-L657
To my knowledge we never tried to take the relative path and resolve it to one of the workspace folders, but this sounds like a reasonable enhancement to me that we could maybe look into 👍

I swear we had that like 3 years ago but I could be wrong

I cannot recall that, here is how it looked like before I rewrote quick open:
https://github.com/microsoft/vscode/blob/release/1.30/src/vs/workbench/parts/search/browser/openFileHandler.ts#L192-L200


[Mixins] Font Face Mixin

I want to add a mixin called font-face within http://foundation.zurb.com/sites/docs/sass-mixins.html
/// Generate a font-face declaration with multiple file formats.
/// @param {String} $font-name[] - Font family name
/// @param {String} $file-name[] - File name (no extension)
/// @param {String | Number} $weight [normal] - Font weight, defaults to `normal`
/// @param {String} $style [normal] - Font style, defaults to `normal`
@mixin font-face (
  $font-name,
  $file-name,
  $weight: normal,
  $style: normal
) {
  @font-face {
    font-family: quote($font-name);
    src: url($file-name + '.eot');
    src: url($file-name + '.eot?#iefix')  format('embedded-opentype'),
         url($file-name + '.woff2') format('woff2'),
         url($file-name + '.woff') format('woff'),
         url($file-name + '.ttf')  format('truetype'),
         url($file-name + '.svg##{$font-name}')  format('svg');
    font-weight: $weight;
    font-style: $style;
  }
}

Usage
@include font-face('fantasy', '/fonts/fantasy');

cc / @brettsmason @rafibomb @kball on whether i should do a PR or not !

This is a Very Nice Mixin.

Not all fonts supports various formats. So any ability to specify the type of formats would be awesome.

and the best thing can be used for both webfonts and icon fonts!
Proper maintenance @denisahac @RamanCool

Not all fonts supports various formats. So any ability to specify the type of formats would be awesome.

You are right @denisahac  ..... I agree with you
How about
@include font-face('fantasy', '/fonts/fantasy', $truetype:false);

@brettsmason ... can you help me here a bit here
I want to basically provide ability to customize the ability to specify the type of formats
Example
@include font-face('fantasy', '/fonts/fantasy', $ttf:false);

How can i go about it buddy ??

@rafibomb do you want to jump in on this one?

good examples:
https://davidtheclark.github.io/scut/font-face.html
and
https://github.com/davidtheclark/scut/blob/v1.4.0/src/typography/_font-face.scss

The links provided can actually make a great starting point for this specific implementation. @IamManchanda what's your thoughts and the status of your work with this regards? This could be great addition to the framework. Thanks @soulcreate

Interesting ... superb catch @soulcreate

Bourbon has a font-face mixin that might be worth a look.

Bourbon has a font-face mixin that might be worth a look.

Foundation Sites is also A Sass library and ships its own mixins.
We will not include another Sass / Ruby dependency.


util: Argparse separation updates

This is a cleaned-up (I hope) version of the mess in #3658.
It appears that when we create an instance of LogUtilArgParse after exporting + importing it, the various values for any unused args are set to null rather than their default values. This means we have to shift how we validate the various flags. (That is, if we invoke split_log -f logfile.log -lf, all arguments apart from -f and -lf will be null rather than their defined constant values.-lf will be -1.) It's very possible I'm missing a better way to handle all this, but as it stands this all seems to work.
--force is special-cased to be true if present, since if we don't define it as constant, it will instead have a value of force[] rather than true.
Disregard this because I'm bad at Argparse  and forgot that I changed over to using constant over default.
To expand on the reason for preferring constant over defaultValue, the Argparse documentation has it that constant values are passed into the args object only if that flag is present on the command line, while default is always passed through. Specifically:

For positional arguments with nargs equal to ? or *, the default value is used when no command-line argument was present:

Because we need to use nargs = '?', I think in our context it makes more sense for flags not present to present null values, and to have their default values only if the flag is actually there. This way we don't have to handle magic numbers in the same step as checking for which flags are present.

Alright, I think this is probably close to where we need this to be.
Once we land this and start the re-implementation of the log tools in TypeScript, are we planning to move the new utilities to the util folder, or will they permanently live in a subfolder? I don't care much either way, but if we're going to move them we'll want to do it as soon as we can. (It's not impossible to browse the history of moved files, but it really feels like a pain.)

I don't care much either way, but if we're going to move them we'll want to do it as soon as we can. (It's not impossible to browse the history of moved files, but it really feels like a pain.)

I don't feel like this is a huge issue to me, personally? git log --follow does a really good job, and it's pretty obvious when you hit a move and you need to add that arg.  I think the anonymizing / etc utilities could still live in their own folder? I was going to write an html front end for them so folks could drag and drop and split eventually.


Can I copy to clipboard?

Hi there,
First, thank you for the awesome plugin.
Is there a way to copy Tmux buffer to a clipboard with your plugin?
I'm using Tmux v3.0a on Ubuntu 20.04.
I could do it on Tmux copy-mode by set .tmux.conf like this.
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
But it does not work with your plugin.

Thanks for the encouragement!
You can do the same kind of thing with copytk using the @copytk-copy-command option; it just defaults to tmux load-buffer -, but can also be set to use xclip in the same way.  If you'd like to send it to both xclip and to a tmux buffer, it just takes a short shell script to read stdin and invoke both.  A little while back I wrote a blog post about multi-way synchronization, but it may be more than what you're looking for.

I tried a few things, but nothing worked.
echo 'test' | xclip -selection c
echo 'test' | tmux load-buffer - ; tmux save-buffer - | xclip -selection c
both work, but
set -g @copytk-copy-command "xclip -selection c"
set -g @copytk-copy-command "tmux load-buffer -; tmux save-buffer - | xclip -selection c"
do not work.
I logged every step inside the runshellcommand and the program is stuck in the
recvstdout, _ = proc.communicate(input=sendstdin)
So, I have no idea.

Fixed by PR #6 .  Thanks jaehyung-ca!


Refactor codebase to make the plugin entirely router agnostic

@oliverthomasklein Can you add some details about this PR, any important details/notes. package.js needs to be updated.
This PR needs to be tested before being merged.
I would also advocate creating a release branch and creating a PR against that.


[BUG] Numpy Error for Conda

What issues are you experiencing?
There is an  annoying issue with the conda build. Namely, when downloading CytofDR from conda, the following message is the generated:
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

Upon investigation, it has something to do the numpy behavior and perhaps this specific version of numpy.
To Reproduce
Install CytofDR from conda and using the configurations below.
Your environment:

OS: Windows 11
Python Version: 3.9.12
Python Distribution: Anaconda
Numpy version: 1.20.3 from conda forge.

Note from Kevin: The PyPI version works right now. I will try to figure this out in the meantime.

The newest update (v0.2.0) removed restrictions on numpy. This should no longer be an issue. Closing this.


CSS files should be included in the build

I am using several css files for my site made by myself.
not less file. pure CSS file.
And I know the tool of converting CSS to less.
But I want to use pure CSS files, without converting to less.
How to import them?

In the Line 170 , I have added less: above the build_css .. Still I am getting the same error..
<% styles.forEach( function ( file ) { %> <% }); %> <% scripts.forEach( function ( file ) { %> <% }); %>
/**
* grunt concat concatenates multiple source files into a single file.
*/
concat: {
  /**
  https://github.com/ngbp/ngbp/issues/57#issuecomment-45731609
  */
  less: {
    files: [ 'src/**/*.less' ],
    tasks: [ 'less:build' , 'concat:build_css']
  },
  /**
   * The `build_css` target concatenates compiled CSS and vendor CSS
   * together.
   */
  build_css: {
    src: [
      '<%= vendor_files.css %>',
      '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
    ],
    dest: '<%= build_dir %>/assets/<%= pkg.name %>-<%= pkg.version %>.css'
  },

@flocks: I'm having this same problem with select.css from ui-select.  When I try to adjust any other styling, I then get strange styling behaviour with the select dropdown (textbox showing directly below or inside the dropdown).
I tried your suggestion too, I'm assuming the changes you are referring to are on the gruntfile.js?
When I do this, it includes the select css styling in the overall .css but it still renders the textbox styling referred to above.
I know for a fact that this stylesheet is the problem because when I manually add it, all styling issues disappear, yet I cannot seem to get it working using your suggested workaround.
@flocks & @joshdmiller, do you have any suggestions for this?

@AndyBrownlie This is issue is closed as resolved through a code push. As far as I can tell, vendor CSS is included in the build. Is this a different problem, an edge case the solution doesn't cover, or confirmation that the fix doesn't work generally?
A reproducible case would be super helpful.

Thanks for the reply @joshdmiller. I'm happy to try to reproduce, but I'm struggling to think how. Its not something I can do in plunker/jsfiddle as I think its to do with the framework itself rather than individual code elements (as I say, I can get rid of the issue by manually copying the select.css file into the build/vendor/ui-select/dist folder so this suggests its something to do with the build files). Any advice is welcomed.
What I can't understand is that I definitely can get the styling from the select.css concatenated into the overall .css, but for some reason I'm still getting the following:

@AndyBrownlie I more meant steps to reproduce. E.g.:

get a fresh copy of ng-boilerplate
require a vendor css file
run the build
4 ... ?
instead of ___, I see ____

Then I can see what's happening.

Oh right, understood.
Well, I downloaded ng-boilerplate, then some time later added the ui-select
code via bower install.  (I am using the bootstrap theme on the select
dropdowns.)
I noticed immediately that the file was missing from the build/vendor dir
and producing an error when looking at the console window in the Chrome dev
tools. However, it didn't seem to be adversely affecting any of the styling
at that point.
Its only when I then wanted to add some custom styling did I then get the
style issues (captured and included in my last post).
When I manually add the select.css file after a grunt build the styling
issues immediately disappear.
As I previously said, I followed the concat instructions, and it seemed to
be working (I checked the .css file and it contained the
select.css styling and yet it didn't seem to eradicate the issue.  Could it
be an issue withe the ui-select code/build?
I'm using angular-ui-select 0.8.3, angular 1.2, angular-boostrap 0.12.0 and
ngbp 0.3.1 (I think).
Any help is gratefully received.
regards
Andy Brownlie
[image: http://]about.me/andybrownlie
http://about.me/andybrownlie?promo=email_sig
On 30 January 2015 at 04:55, Josh David Miller<EMAIL_ADDRESS>wrote:

@AndyBrownlie https://github.com/AndyBrownlie I more meant steps to
reproduce. E.g.:

get a fresh copy of ng-boilerplate
require a vendor css file
run the build 4 ... ?
instead of , I see _

Then I can see what's happening.
—
Reply to this email directly or view it on GitHub
https://github.com/ngbp/ngbp/issues/57#issuecomment-72135415.

OK Josh, so I finally figured out what was wrong here. I must have missed the patch for the gruntfile.js update.
Apologies for any time wasted.


COPY sometimes fails completely silently

Following the example to do COPY for inserts.  Sometimes this fails completely silently.  Working on a MWE, but of course this is extremely difficult because SQL.
Is there any way to get debug messages?

I think there can be a better interface for COPY using Tables that would enforce this. In the meantime, your COPY query can include a list of columns to avoid falling back to the order of the columns in the table.
As for error messages, I would have expected messages to happen at put_copy_end, but perhaps they are happening in the final result. The end of execute should probably call handle_result then.

It should be easy enough to reproduce now that we know what the problem is.  I probably don't have to explain that it is rather dangerous for this to fail silently.  Perhaps this should even throw an actual error rather than just the warning?
I wish I could be more helpful and actually debug this stuff properly, but setting up a test environment for this is such a pain.  If you have a Dockerfile for setting up an image to test this package, including it in the repo might go a long way to making it possible for us users to actually make helpful contributions.

The database does not require any setup, so using the standard postgresql docker image is fine. I just have a database service always running. The tests will not make any changes to the database which last beyond the session, even if the tests encounter unforeseen exceptions. The tests connect to the postgres database using either the postgres user or ENV["LIBPQJL_DATABASE_USER"] if that is specified.
I will add this info to the FAQ.


Rename macros

Renames the following macros:

rustler_export_nifs! => init!
rustler_atoms! => atoms!
resource_struct_init! => resource!

I have also made the old macros still available and marked them as
#[deprecated]
Here are the deprecation warnings printed when using the old macros:
warning: use of deprecated item 'rustler::rustler_atoms': Please use `atoms!` instead.
 --> rustler_tests/native/rustler_test/src/test_atom.rs:5:5
  |
5 |     rustler::rustler_atoms! {
  |     ^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(deprecated)]` on by default

warning: use of deprecated item 'rustler::resource_struct_init': Please use `resource!` instead.
  --> rustler_tests/native/rustler_test/src/test_resource.rs:16:5
   |
16 |     rustler::resource_struct_init!(TestResource, env);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated item 'rustler::rustler_export_nifs': Please use `init!` instead.
  --> rustler_tests/native/rustler_test/src/lib.rs:17:1
   |
17 | rustler::rustler_export_nifs!(
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I couldn't figure out how to forward the rustler_atoms! macro without just copying the whole implementation :/
Any ideas on how to fix that would be greatly appreciated :+1:

How about we use the renaming to also improve the macros a bit? I never really understood, why atoms would be prefixed, atoms!{ a, b, c ="d" } would work as well.

Does it make sense to keep rustler_atoms!  if the old Syntax for declaring asks does not work anymore?

Does it make sense to keep rustler_atoms!  if the old Syntax for declaring asks does not work anymore?

@evnu the rustler_atoms! version does still work (see cd64245)

How about using , instead of ; as well?

Oooh...yeah, I had that thought earlier. 👍

Unfortunately, adding the use of the deprecated macro fails the build. How do y'all feel about adding -A deprecated to the cargo clippy check?


Missing @create event documentation

The Events section does not mention the @create event.
The advanced props mention an :on-create which should be @create inside the Events section, not in props.
Also, what is the difference between @option and @create, I'm not sure to understand.

Agree with this. Having this be a prop does not make sense

They both work, the documentation is just not clear and consistant.
Anyway I needed @option for my need but it took me a while to understand since the Vue2 version use @tag as the name for the same feature.


Maybe rename --data-dir to --datadir

The extra dash is annoying, and I read it as one word anyways.

@casey I can take this one. This is a breaking change though. Is that ok?

yeah why not, should be easy enough with clap

We can leave it internally as is

Awesome, thanks @raphjaph !


Use buildx to run buildkit builds

Users will require a Kubernetes role to be bound to their service account that grants the ability to create pods in their namespace. We can create this role in our chart and recommend users bind it.


add consolidated setup & publish txns

Closes: #118
Coverage: 76.7%

Thanks! Good call out, just added


handling commands that run other commands in a different path-space (different system, chroot, vm, etc.)

I think the main questions that help tease out whether these are on resholve's turf are:

whether a given case has a safety/accuracy problem that's detectable from resholve's perspective
whether there's a meaningful/productive way for resholve to intervene to improve the situation

One (potentially worst-case) example is an ssh invocation that would run commands on another system.

resholve could in theory recognize an ssh invocation that would run remote commands (and what those commands are), but there's no perfect way to durably resolve them to stable paths on a remote system--especially not within the constraints of a Nix build.
I suspect the most-principled approach possible would require access to the remote system and some big assumptions: that the same alias/ip/hostname will always lead to the same device, and that the paths available on it won't change after resolve time.
it's probably worth weighing whether less-principled approaches are worth their weight?

resholve might be able to detect each distinct alias/user+(host|ip) and make the user supply a corresponding list of executables on the system, resolve from them, and leave consistency up to the user. Maybe resholve could emit a command or script they could use to collect all of the executables on the target PATH into a file that resholve can use at resolution time.
resholve could detect these and warn the user until they supply a directive (basically, forcing them to acknowledge that resholve has informed them that the remote system needs git on PATH, or whatever). I'm not sure if it would make sense to bother detecting precise hosts and such in this case--just make the user look at each invocation.
resholve could allow these through without any special argument, but also emit a warning that they exist
resholve could try to generate and inject code to test for and alert about these at run time (but this smells like a lot of work just to leave the user with a run-time-bomb on their hands...)

Another example is nixos-enter (brought up in https://github.com/abathur/resholve/issues/81#issuecomment-1366964535) which will run the commands in a chroot (potentially with or without a shell) on the same system. Despite being nixos-native, I suspect this case is actually very similar to the ssh case? If I'm understanding it, the chroot would contain the system packages (which could also change between invocations)?

In the best case, information available within the Nix build would be sufficient to confirm whether the paths would exist in the chroot (and it would be possible to stably map paths into the chroot form if necessary.)

I suspect this would entail the package that invokes nixos-enter having an explicit reference to the system profile and some way for resholve's Nix API to feed resholve all of the packages in that system profile? We wouldn't want these to be the inputs resholve uses for the whole script, so resholve would probably need some way to specify inputs specific to a specific command or invocation (i.e., we'd need to be able to specify a separate PATH that is just used for all instances of nixos-enter, or for a specific invocation.

Might have some corner-cutting options if the packaging case is very constrained. Say, we have a small number of invocations for nixpkgs itself and we know they only run things that will always be on a nixos PATH?

Back off entirely if the executables will always be present and the PATH set right?
Focus effort on mapping the profile part of the path?


[WARNING] VPNAzure is locked to TLS1.0!

Before:
So now I can set up personal VPN without opening a port | having global IP? Cool.
After:
Wow VPNAzure locked itself to TLS1.0.
It only supports SSTP protocol.

Expected:

VPNAzure make a secure connection between Azure(Front IP) and SEVPNServer(Backend IP) via TLS1.3.
Not only SSTP, VPNAzure shall relay OpenVPN and Wireguard connections too. (L2TP can go f**k itself)

Yeah this is a known issue. Until an Open Source implementation of VPN Azure is made it's what we're stuck with. Once people can start hosting their own VPN Azure services this is what it's going to be.
Also OpenVPN (using TCP on port 443) is likely to be implemented if we end up making an open implementation of VPN Azure. However, WireGuard uses UDP so it may not be possible to get that working.

Isn't TLS1.0 already insecure? Removing from the UI will protect unaware users.

http://www.gcd.org/sengoku/stone/
Udp from/to Tcp rediretor
stone x.x.x.x:443/tcp x.x.x.x:12345/udp

VPN azure is a proprietary service provided by SoftEther Corporation for free. There is an attempt to write an open source version.
See #1094.
Any comment should be made there.


Add timeout to read_to_prompt

It would be quite handy to have a timeout associated with the read_to_prompt call. If the timeout is reached before a prompt is encountered, control would be returned back to the caller. However, at this point the debugger is not able to be interacted with and thus subsequent operations requiring writing to the pipe should raise some exception indicating this.
Perhaps even wrap the read_to_prompt call with a function named something like wait_for_event to be more clear.

Resolved in 276211e


Doing it work with the new flutter version 3.7.0

Please see comments of issue java.lang.IncompatibleClassChangeError

Thanks for you contribution !


Optimization on montgomeryAdd

Context: EcMul.yul#L210
Description:
Update montgomeryAdd implementation for a more efficient one.
Recommendation:
function montgomeryAdd(augend, addend) -> ret {
    ret := add(augend, addend)
    if gt(ret, P()) {
        ret := sub(ret, P())
    }
}

This will be more efficient since addmod cares about overflow, but it couldn't happen in our case (253 bits long numbers)

I think the context should add ecAdd and ecPairing since we also got montgomery there


Make eth_estimateUserOperationGas result conform to bundler spec

According to the definition of bundler-spec, the validation gas result of the eth_estimateUserOperationGas should be called verificationGas, not verificationGasLimit.
I found Alchemy forked the spec and changes the response content (BTW: the dev forgot to change a part of it), but this change may prevent the wallet client from switching to use Alchemy bundler, since the other bundler implementations (e.g. stackup) conform to the spec.
(I know this maybe not the best place to address the issue, but there's no other repo suit for this, sorry for that)

Hi @kaiix, we’ve decided for now to stay consistent with the naming in ERC-4337 https://eips.ethereum.org/EIPS/eip-4337#-eth_estimateuseroperationgas, as we believe the naming in the bundler spec repo is a mistake and should be fixed. There is an open PR to do that https://github.com/eth-infinitism/bundler-spec/pull/4

got, but I found almost other implementations are using verificationGas, so maybe Alchemy API can return both verificationGas & verificationGasLimit for compatibility.

That might make sense, although I'd prefer if we just update the spec to be consistent with the ERC. I'm going to push for that and if it seems like it will take a while we may consider updating for compatibility.
Any other issues regarding Alchemy's APIs directly and not the SDK can be directed to our discord.


 For the shared case, the shared pid 1 would
reap the processes and remaining would be kiled when it is killed
Signed-off-by: Mrunal Patel<EMAIL_ADDRESS>

/test all

/test kata-containers

/test ami_rhel

LGTM

/test e2e_rhel

/test e2e_rhel

/test e2e_rhel

LGTM
Some of the tests are chirping still.  Also minor nit in the commit message "kiled" to "killed".

e2e_rhel is failing because of kernel bug.

/test e2e_rhel

rebased.

/test all

/test e2e_rhel

/test e2e_rhel

/test e2e_rhel

/test e2e

@runcom This is ready.

/test e2e

/test e2e_fedora

/lgtm


Python wrapper could benefit from utilizing Cython

Looking at the current python wrappers with direct calling of the CPython API  I put together a Cython version for comparison at :
https://gist.github.com/tenko/93ffd3d69d20ebd95522b361f90f7f16
I tried to follow the dbapi2 as closely as possible and in addition support numpy and the python datetime module. It seems to work OK with some simple manual tests.
Benefits are definitive readability and also possible correctness as reference counting is removed from the equation.
Downside is adding a dependency on Cython, but it is possible to include the generated files in the repository.
I can create a PR if this is of interest .
Runar

That looks pretty good! I wonder how we would implement fetchdf() efficiently in this context? Did you do performance comparisons by chance?

I updated the code with creation of Pandas dataframe object via numpy masked array.
Not heavy tested, but seems to work OK.
This should be fairly efficient as the python buffer protocol is utilized and therefore I
assume no data duplication should happen.
With regards to general performance I have not performed any tests, just implemented code
based on intuition of what should be efficient. For example:

Perhaps a custom cursor row object should be implemented instead of return a tuple
Check if the buffer interface is used as expected
Varchar is converted to python strings which is not optimal. Not sure if there is any
good alternative here.

Also Cython can be used directly and the Prepared class was added for that in mind.
The bind methods can be invoked with typed arguments without involving any Python
API calls and should be close to C in speed.
PS : The C Api definitions was added to the top of the file, so it is possible to build.

Thanks for the effort! I think the code looks good, but I'm not sure if DuckDB is a good target for Cython. I thought about it and I have a number of doubts:

The additional dependency as you mentioned seems like it could provide difficulties for people that want to work on the Python library
Debugging seems like it would be more difficult, as there are now multiple layers of code (the converted C code and the original Cython code) rather than only a single layer of C++ code
Your example code seems to use the C API, but as DuckDB is natively written in C++ we would prefer to interface with it using the C++ API. The C API performs a bunch of data materialization and type conversions at the border which we could avoid by interfacing directly with the C++ API. Can Cython cleanly interface with C++, including modern features such as smart pointers?
How does Cython work with Python 2/3? Can it generate files that are "Python oblivious", or do you need to generate different files for each version? If it is the latter, this is problematic because we would need to check in and maintain two different source files.

Overall I like the way that it looks but I think it introduces a number of problems and headaches. From my perspective Cython seems mainly useful for programs that are written in the other direction, i.e. programs that are mostly Python, but want a bit of C code sprinkled in for performance reasons. DuckDB is the other way around, mostly C++ code, with a small number of calls to Python for data conversions (namely C++ types to Python types and back). If I look at the Cython code I see many times more calls to the DuckDB C interface than to Python functions. To me that signifies that Cython is the wrong tool to use here.
The code definitely looks more readable, but I think a lot of readability issues can also be fixed in the C++ layer by making better use of wrapper objects and functions. That can also take care of manual reference counting there. Currently most of the messy code is inherited from the Python SQLite library.
I'm not entirely opposed to it, but my initial instinct is that it creates more problems than it solves. Thanks for all the effort and the example implementation though! It's very useful to think about the different trade-offs here.

Some comments:

The C API was chosen for simplicity. Cython have good support for C++ constructs and the code could be converted with some minor work.
Ref. https://cython.readthedocs.io/en/latest/src/userguide/wrapping_CPlusPlus.html

A single Cython source file can support both python 2 and 3. You also can support both
version from a single generated source file.

I do not have any experience in debugging Cython, but the documentation has information on this and it seem to be well developed:
Ref. https://cython.readthedocs.io/en/latest/src/userguide/debugging.html

With regards to keeping the code base C++ only, there is a header only library called pybind11 which seems to be very complete with numpy support etc. Could be a good fit.
The only downside with pybind11 is that we loose the possibility to use Cython typed construct. With Cython I can just issue a "cimport duckdb" and annotate a Python file with the relevant type definitions and recompile the code for speed.  This is fairly popular method in the to accelerate code instead of going the route through C/C++.
It is all a trade off in features and future maintenance.
I am willing to convert the Cython code to the C++ API.
This could also can be interesting for benchmark testing and general comparison.

Thanks again for the additional information! Cython indeed looks very complete, and very nice that it also supports C++. But I am still not a big fan of Cython for this use case. I think Cython is great if you are writing mostly Python code, but our code is mostly C++. That means that you are now writing tons of C++ code, but writing it using Cython cdef types and such, and to me that seems like a lot more trouble than just writing C++ code to begin with. Cython seems more useful if you are planning on writing a lot of Python code with a small amount of C++ code mixed in for performance. That is certainly a valid use case, but it is not what we are trying to do here.
I was not aware of pybind11, I think that looks excellent! We can keep the code in C++ without having to manually deal with the ugliness of the CPython interface and without having to deal with reference counting and such. I think this suits our use case extremely well, and I think it is great that it is a dependency-free library. I think it is a great idea to convert our existing Python library to one that uses pybind11. It seems like that will clean up the code a lot and make it a lot more maintainable.
Thanks again for the information and for the effort. It has been very helpful!

Glad the information and comments was useful.
I was thinking it could be a good idea to reuse the test suite for the sqlite module included in CPython if possible :
https://github.com/python/cpython/tree/master/Lib/sqlite3/test
The test suite is quite extensive and tests many corner cases. This would ensure the bindings are a drop in for the python sqlite module.

That is an excellent idea! Thanks for the link. We should certainly integrate them into our test suite.

Tracking the tests in #469 and closing here

@enko

With regards to keeping the code base C++ only, there is a header only library called pybind11 which seems to be very complete with numpy support etc. Could be a good fit.

Thanks for this tip, this was an excellent suggestion and we have started switching the Python API to pybind11. See the pybind branch if you are interested.

I will take a closer look at it as soon as I have some time. The code looks very clean and easy to read compared to the original version. I am afraid I am not fluent enough in C++ to be of any implementation help, but I can comment on the code etc.,
Looking at the fetch all method : is the size of the result set known? If so, it could be advantageous to pre-allocate the list to the correct size before the loop.
Best regards


Send is crashing

-App is crashing while scanning the receive QR.
-It crashes as soon as we paste an address on send screen.
-The app is crashing even while sending to a contact.(Only on upgraded app,upgraded from 1.3.1(64)-1.3.2(171))
-It is crashing on both dev and live app.

#2158 fixes the above, tho not all scenarios are tested(but are likely to work). @cakesoft-swati Do specifically test the send via QR scan as I've not been able to test it.

The fix is in v1.3.2 # 172

-Verified this issue on hexa live app version 1.3.2(172)


⚠ Bofrost.lu has degraded performance

In b21b366, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1340 ms

Resolved: Bofrost.lu performance has improved in 00c9b72 after 6 minutes.


Test system library modules for persistence

Make representative set, 50-60 modules, make sure save/restore tests pass. Some known have problems, ex: asyncio, datetime, random, pydoc, ctypes, sqlite3, threading.

asyncio issue is part of #1214. When we take function from a stub and it happens to return a generic type, we don't declare the respective TypeVar and end up with type that cannot be resolved. Consider
_F = TypeVar('_F', bound=Callable[..., Any])
def coroutine(func: _F) -> _F: ...

so persistence of asyncio ends up with function returning i:asyncio.coroutines:_F which cannot be resolved from the database. Declaring type is possible, but may conflict with existing types. Consider that module A may be declaring T and importing module B that has a stub that also declares T.

https://github.com/microsoft/python-language-server/pull/1429


feat(localizations): Apply deprecation warnings for localizations

Description
Show deprecation warning for deDe locale.

Checklist

[x] npm test runs as expected.
[x] npm run build runs as expected.
[x] (If applicable) JSDoc comments have been added or updated for any package exports
[x] (If applicable) Documentation has been updated

Type of change

[ ] 🐛 Bug fix
[ ] 🌟 New feature
[ ] 🔨 Breaking change
[x] 📖 Refactoring / dependency upgrade / documentation
[ ] other:

Packages affected

[ ] @clerk/clerk-js
[ ] @clerk/clerk-react
[ ] @clerk/nextjs
[ ] @clerk/remix
[ ] @clerk/types
[ ] @clerk/themes
[x] @clerk/localizations
[ ] @clerk/clerk-expo
[ ] @clerk/backend
[ ] @clerk/clerk-sdk-node
[ ] @clerk/shared
[ ] @clerk/fastify
[ ] @clerk/chrome-extension
[ ] gatsby-plugin-clerk
[ ] build/tooling/chore

Adding @clerk/shared in @clerk/localizations increases the bundle size by 5KB, that's why the Bundlewatch check fail. We need to make @clerk/share tree-shakeable before merging this PR, or we could choose one of the above solutions since the dependency of the @clerk/shared is temporary and will be removed in the next major version.

temporary copy paste code of deprecated() helper inside localizations package
increase the Bundlewatch limit from 75 KB to 80 KB until the next major version

@dimkl I don't think it's worth spending more time on this - let's add a @deprecated comment and close this one.

Closing this, since this change will be included in Changelog and the Release notes. We will proceed without adding a deprecation warning for the @clerk/localizations as @nikosdouvlis suggested in his comment

This PR has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.


Sandcastle "open in new window" broken for Development demos

None of the demos in the new "Development" subfolder work with the "Open in New Window" Sandcastle toolbar button, due to path problems.

This fix should get merged before the 1.9 release, so I'm flagging it.

Don't worry, I'll merge this later tonight.  But it's not a show stopper because we don't actually ship any of the Development examples.


fix(compiler-core): using a user-provided key in v-if template element.

close #11727
this pr playground

I just gave this a try, but it seems that the prop hoisting breaks it:

Playground - this PR

Error: $setup is not defined


Add and update endpoints for use with django

Add schedule endpoint
Add copy endpoint
Remove all manager usage (reset, create, download)
Disable update and delete for projects.
Add option to initialize version_control storage at branch or commit
Add force save option in ORM

:+1: After minor comments

:+1:


Fix tooltips on Peptide Settings dialog.

The ToolTip class gets confused if any of the controls with tooltips are no longer part of the form. The ToolTip class figures out what the top level form is by iterating through a Hashtable and taking the first Control.TopLevelControl property. If the first control in the HashTable is no longer attached to the Form, then TopLevelControl ends up being a bogus value (usually the TabPage that got removed from its parent), and the tooltips do not work in the dialog.
This is particularly likely to happen when the UIMode is Small Molecules, since several pages get removed from the TabControl.
This fix adds a method "FormUtil.RemoveTabPage" which removes the tab page and nulls out all the tooltips for the descenents.
I fixed all of the places in the code where we remove tab pages.
I found that RefineDlg was already working around this bug, so I the workaround now that it is using FormUtil.RemoveTabPage.

FormEx does not have access to the list of components
IIRC the code that does the "peptide" -> "molecule" text replacement crawls the form looking for tooltips

Thanks for the tip, Brian.
I see that PeptideToMoleculeTextMapper.TranslateForm uses reflection to enumerate the fields in the form class and finds the ToolTip objects that way.
I will look into whether I can leverage that.

Seems good. Only change I'd request is that AssertEx thing, which is obviously minor, but helps set precedent for other work.


[BUG] App returned from its main function with code 0

Describe the bug
I tried to play dragon ball legends and when I launch it by clicking on the play button it says the error in the title.
Instructions to reproduce
I don’t know lol
What version of LiveContainer are you using?
3.0.0
Other info
Also, how do I update LiveContainer from 3.0.0 to 3.1.0? I have tried to side load the 3.1.0 version in SideStore but it’s always 3.0.0 do you know how to fix this?

edit in retarded you already answering this in my other issue 🤑

If you see this message, then these apps don't want to run in LiveContainer.
Idk why you can't upgrade. Maybe check sidestore's log or check the version in settings screen.

Well, I've tested some games having this issue and they turns out to be bad ipas, which if you sideload in AltStore/SideStore results in "This app is in an invalid format." error. Can you confirm this?

Well, I've tested some games having this issue and they turns out to be bad ipas, which if you sideload in AltStore/SideStore results in "This app is in an invalid format." error. Can you confirm this?

I will try right now.


Feature/add messagepack cypher

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

Hi @PabloDelBarrioArnanz, I guess this was just wrongly opening a PR when you just wanted to merge it to your fork?
That is fine with us, but we will still be glad if you want to contribute it :)
On the other hand I have to tell you that https://github.com/grafana/xk6-amqp/issues/10 is still not done which means that this extensions still panics on regular basis as explained in that issue and the connected ones. I guess there is a use case for the extension in which this doesn't happen at all, but you might've just been lucky and not hit it yet ;).
I would recommend if you would want to use this extension to try to work on that issue first, even if you don't contribute it back.


Skybox color customization options

Current state of these options:
Adds a custom sky color picker, and a dropdown to replace the sky color in either the overworld or everywhere. I should probably change this to a toggle and custom color picker for overworld and caves separately, to accommodate both #7299 and #9159.
Old text:

Addresses #9159, although further options might still be nice and the current UX feels a bit strange.
Adds the following options to the skybox plugin:
Custom sky color - standard color picker
Mode - dropdown, "None", "Replace target sky color", "Overworld" and "Everywhere". None is the current behavior of using the sky map and making no substitutions. Replace target sky color uses the custom color in place of a specific color value, and blending between areas still works properly. Overworld uses the custom color when the player is not in an underground area, and Everywhere always uses the custom color.
Set current sky as target - checkbox, gives an "are you sure" window and then stores the sky color of the player's current chunk as the target color. Automatically resets to unchecked, but currently the config panel doesn't update to reflect this until it is reopened. Let me know if there's a way to force an update, and I'll fix this PR to do that. Alternatively, if there's a way to add a button to the config panel that triggers the onConfigChanged event or something similar, that would be exactly what I'm looking for here.
Target color - hidden option, used as storage and set by the above checkbox.
The idea with the target color feature is to allow for replacement of the most common sky color, which I personally find too gray, while still getting the special sky colors of various swamps, volcanoes, caves, and other areas which have received special attention in the skybox definition file.
I also considered a feature that would allow for several source -> replacement pairs to be set, but I couldn't think of a good way to make the UI for that. If there's interest, I'll consider revisiting that idea.

I really don't like how this abuses the config

same

I see there's a framework for adding entire panels, like the library plugin does. Would it be okay to add one of those? It seems like a pretty good solution to me, and it would also let me add functionality for multiple replacement colors instead of just the 1.
I'm thinking I would replace the "target color" mode with an "advanced" option in the dropdown, which would enable the sky color replacement panel.
The panel would then have a more sophisticated UI with a list of color pairs, and a way to add new ones.

There isn't a framework for adding custom things to the config panel, which is what this really needs. It would probably be best for this to just be a global override color that makes it not invoke Skybox entirely

I could strip this PR down to just have the global overrides and then work on the replacement pairs to make another PR later, since I really want that specific feature myself.

that would probably be best. I think the best thing for more granular overrides would be to be able to merge the config in our skybox.txt format

I'm going to change this to two toggles and custom color pickers for overworld and caves separately, to accommodate both #7299 and #9159.


Is it possible to get the table data instead of relationships through the api?

I have a few tables with keys that link to other tables. When I pull the tables through the API I get the keys linking to other tables so:
{
  success:[
    {
      value1:'from this table',
      value2: 4 //link to other table
    }
  ]
}

Can I get the actual value instead of the key?

any updates on this? thanks

implemented in #2006. use dereference=key_field_name in the query string, example in tests:
/api/patients/?dereference=favbook

(favbook is a field on patients table, key to the Books table)


update password

When tying to update password it gives an error:
The PUT method is not supported for this route. Supported methods: GET, HEAD.

fixed in master, thanks for reporting


optional property in type union leads to incorrect type inference

🔎 Search Terms
"optional union", "union optional"
🕗 Version & Regression Information

This changed between versions n/a and n/a
This is the behavior in every version I tried, and I reviewed the FAQ for entries about optional union and union optional
I was unable to test this on prior versions because i'm pretty lazy, (but I tested on 5.2.2, 5.1.6, 5.0.4, 4.9.5, 4.8.4, 4.7.4, 4.6.4, 4.5.5, 4.4.4, 4.3.5, 4.2.3, 4.1.5, 4.0.5, 3.9.7, 3.8.3, 3.7.5, 3.6.3, 3.5.1, 3.3.3, Nightly=v5.3.0-dev.20230903)

⏯ Playground Link
No response
💻 Code
interface I{
    a?: object[]
    b?: object[]
}

const test = ({a,b}: I) => {
    console.log(a)
    console.log(b)
    console.log(a || b)
    console.log((a || b).map((c)=>c)) // <-- this is wrong as expected
}

interface I1{
    a: object[]
    b?: object[]
}

interface I2{
    a?: object[]
    b: object[]
}

const testAnother = ({a,b}: I1 | I2) => {
    console.log(a)
    console.log(b)
    console.log(a || b)
    console.log((a || b).map((c)=>c)) // this should be correct, but it's giving me error
}

const testSimple = ({a,b}: I1) => {
    console.log(a)
    console.log(b)
    console.log(a || b)
    console.log((a || b).map((c)=>c)) // this is correct, and understand-able
}

🙁 Actual behavior
TypeScript infers that both a and b can be undefined, and hence throws an error on the (a || b).map() invocation.
🙂 Expected behavior
Logically a || b is can never be undefined.
Since the union type I1 | I2 guarantees that at least one of the properties (a or b) will always be present, TypeScript should infer that a || b always returns an array of objects, and thus should allow (a || b).map() without any error.
Additional information about the issue
Feel free to assign it to me

Duplicate of #30869. See also this comment: https://github.com/microsoft/TypeScript/issues/54252#issuecomment-1547984904

I was unable to test this on prior versions because i'm pretty lazy, (but I tested on 5.2.2, 5.1.6, 5.0.4, 4.9.5, 4.8.4, 4.7.4, 4.6.4, 4.5.5, 4.4.4, 4.3.5, 4.2.3, 4.1.5, 4.0.5, 3.9.7, 3.8.3, 3.7.5, 3.6.3, 3.5.1, 3.3.3, Nightly=v5.3.0-dev.20230903)

That… doesn’t sound very lazy at all. :smile:
And I don’t think anyone will fault you for not testing further back than 3.3.3.


How can i get group messages? I want to delete all of my group messages

I have tried this
     var latestMessagesSent = authenticatedUser.GetLatestMessagesSent();
But it doesnt retrieve the messages i have written in group chat
How can i do that?
The application have read write and direct messages permission
Thank you

Twitter is providing a new Direct Message API but unfortunately I did not have time yet to implement it.
At the moment, I am working on it as well as the Activity Timeline.
Please be patient or you can also extend Tweetinvi and share some pull requests.
Cheers,
Linvi


Set login shell to brew's zsh when available

Currently zsh is being installed and kept up to date by the laptop script.
But it's a toss-up whether brew's version will be used, and even when it'll get chosen some manual changes will have to be done on a newly installed El Capitan machine (only tested on El Capitan) for it to be set. This since it's not available in /etc/shells
After applying this change this is what'll be done on every run of the mac script:

Check what the current shell is
If the current shell is zsh

Check if which zsh isn't /bin/zsh (the one shipped by Apple)
If a "non-standard" zsh is available set the login shell to that one

Current shell is not zsh

Set to whichever zsh is available

There might be a point in raising whether a check of the used shell should be run last to capture this. Currently the shell will not be updated to brew's until you're running laptop the second time around.

There might be a point in raising whether a check of the used shell should be run last to capture this. Currently the shell will not be updated to brew's until you're running laptop the second time around.

What if this was executed at the end of the fancy_echo "Updating Unix tools ..." section? e.g. after brew_install_or_upgrade 'zsh'

@croaky After some more thinking I believe it should be moved to be the very last thing run, because it uses sudo. I would want to be able to start running the script before I go to lunch, and know that it's done when I get back an hour later. And typing in the password as the last thing would be fine.
Possibly making a change that greps the passwd file to check the shell line and see if a change is even necessary might be good, to not have to input the password for no reason. But that involves more code so… shrug :P

We have some other sudo stuff at the beginning now with some permissions fixes so probably don't need to worry about it with this change?

I guess I've been letting this PR sit because I'm not sure I understand the problem it solves.
Will this set the current shell to Homebrew's zsh or all future sessions to Homebrew's zsh?
If the former, what advantage does it provide that balances out the need to maintain extra code in this project?
If the latter, should this be in dotfiles instead of Laptop?
My apologies for the delay and the questions to try to understand.

@croaky this change will indeed ensure that the default login shell used is set to the zsh provided by homebrew instead of the one provided by Apple.
Basically in my mind it seems like a mismatch of intent: a custom version of zsh is being installed, but not used. :)

:+1: This fixes an error I get on rerunning the script: chsh: /usr/local/bin/zsh: non-standard shell. (#447)

Merged, thanks!


Update to bevy 0.13

Migrate from bevy 0.12 to bevy 0.13 Pending bevy_egui update.
Pending bevy_egui update.

bevy_egui is now published... and smooth camera PR is also on the correct repo.

Thanks! Will look into release a new version soon


CKAN: Download/Upload Files Run Action

Add ability to download and upload files similar to S3.

Implemented as:

output_file is optional, and can be specified to save/read the file with a different name to the local file system.
Accepts a string or list for file and output_file. If a list, must be the same length.

run:
  on_start:
     - ckan.download:
          host: https://ckan.example.com
          dataset: example
          api_key: ${CKAN_API_KEY}
          file: file.csv
          output_file: different_name.csv # optional

run:
  on_success:
     - ckan.upload:
          host: https://ckan.example.com
          dataset: example
          api_key: ${CKAN_API_KEY}
          file: file.csv
          output_file: different_name.csv # optional


How to get Buy/Sell Signal for last candle?

Hello, First of all thanks for the solution.   I am trying to develop bot on this.  The problem is, I cannot get the signal for last (recent) candle.  I tried the following code;
IndexedCandle indexedCandle = new IndexedCandle(candles, 1);
if (indexedCandle.IsMacdBullishCross(x, y, z) == true)
{
  Buy....
}

Doing something wrong?

If you're retrieving the signal of the last candle, you should set the second parameter of the indexedcandle to candles.count()-1 instead of 1

Thanks for the fast response I think the following test methods mislead me about the parameter to be set as "1" . But still "candles.count()-1" doesn't catch the "if (indexedCandle.IsMacdBullishCross(x, y, z) == true)" condition.   I will be debugging If I find anything I will share but If you have any root cause analysis result please share.
Thank you.
[TestMethod]
        public async Task TestIsBullish()
        {
            var candles = await ImportCandlesAsync();
            var indexedCandle = new IndexedCandle(candles, 1);
            var result = indexedCandle.IsBullish();
            Assert.IsFalse(result);
        }

        [TestMethod]
        public async Task TestIsBearish()
        {
            var candles = await ImportCandlesAsync();
            var indexedCandle = new IndexedCandle(candles, 1);
            var result = indexedCandle.IsBearish();
            Assert.IsTrue(result);
}

Hi again,  I found the problematic part
public static bool IsTrue(this (AnTick, AnTick, AnTick) obj, Func<AnTick, AnTick, AnTick, bool> predicate)         {             Predicate<AnTick> isValid = t => t != null && t.Tick != null && t.Tick.HasValue;             return isValid(obj.Item1) && isValid(obj.Item2) && isValid(obj.Item3) && predicate(obj.Item1, obj.Item2, obj.Item3);         }
always returns false for the following calls
`public static bool IsMacdBullishCross(this IIndexedOhlcv ic, int emaPeriodCount1, int emaPeriodCount2, int demPeriodCount)
=> ic.Get(emaPeriodCount1, emaPeriodCount2, demPeriodCount).ComputeNeighbour(ic.Index)
.IsTrue((prev, current, _) => prev.Tick.IsNegative() && current.Tick.IsPositive());
`
public static bool IsEmaBullishCross(this IIndexedOhlcv ic, int periodCount1, int periodCount2)             => ic.Get<ExponentialMovingAverageOscillator>(periodCount1, periodCount2).ComputeNeighbour(ic.Index)                  .IsTrue((prev, current, _) => prev.Tick.IsNegative() && current.Tick.IsPositive());
and for all similar calls isValid(obj.Item3) returns false.

Related to #53, this issue is closed.


The runner has to be specified separately

While running this on OS X I get java.lang.IllegalArgumentException: resource redis-server-3.0.7-darwin not found..
I think this bug was introduced in this fork, and does not exist in the original project.

Hey,
Yes, I removed all binaries from the library itself as it can be complicated to choose which version of redis the lib needs to keep in sync: latest ? 3.0 ?
So it's not really a bug per se, but I can see it being confusing.
Would that help if the mention in the README would be accentuated ? It is currently the first bullet point of the first paragraph but doesn't have its own title.
Thanks

Hey! Thanks for quick response.
If we are removing the binaries from the library, it might be helpful to add other sub projects that contain the different versions of the binaries.
This is very useful since an embedded Redis server will often be used for writing integration tests only, and adding the binary as a resource to the project does not make a lot of sense. IMHO, it is much more useful to have your library importing that with itself.

That's an interesting idea.
So with the current main package eu.monniot.redis:embedded-redis:x.y.z without redis binaries, the library would also have eu.monniot.redis:embedded-redis-3.2.8:x.y.z and a eu.monniot.redis:embedded-redis-3.0.7:x.y.z.
I would need a way to run the core lib tests' in all subproject with their own binaries and a way to easily push the lib to jCenter though. If it can be automated why not.

How about a multi project build? https://maven.apache.org/guides/mini/guide-multiple-modules.html

That looks promising. I'll take a look this weekend, I don't have much time to myself before then.

+1 on bundling binaries for integration tests - for example, Redis support was recently added to https://github.com/lukas-krecan/ShedLock and requiring users to have specific versions of Redis installed (including CI) is a barrier.

+1
I have the same situation as ChetanBhasin, we need embedded-redis for integration testing only, so this will save us a lot of work when setting it up.

Hello,
There is a version with an embedded redis 3.0.7 published on https://bintray.com/fmonniot/maven.
I didn't edit the README or made a public announced because I have some problem with Travis (see issue #7) and I won't have much time to work on it in a foreseeable future.
So yeah, if someone with some gradle/travis knowledge can take a look, it would be much appreciated. Otherwise you could just take a look at the published JAR (and the code to generate it is in this repo too)

Sorry for not answering a bit sooner.
Thank you, it seems to be working well :)


fix!: Change tag attributes to require a ' prefix

Description
Problem*
Summary*
Changes tag attributes (previously Custom attributes) to require a ' prefix. This distinguishes them from the more common Meta attributes which are expected to call a metaprogramming function.
The program:
#[not_in_scope]
fn main() {}

Now errors with:
error: Attribute function `not_in_scope` is not in scope
  ┌─ src/main.nr:1:3
  │
1 │ #[not_in_scope]
  │   ------------
  │

Additional Context

It turns out the #[deprecated = ...] attribute was not being handled previously. I'm not sure if this was expected but it's now easier to see now that we get an error if it does not get a ' prefix.
This also pointed out that derive was not working within the stdlib in the meta/ops.nr file. derive was never imported there. Moreover, after being used we get errors since derive tries to insert std::cmp::Ordering paths which are invalid within the stdlib where they should be crate::cmp::Ordering instead. So I replaced these calls with explicit impls.

Documentation*
Check one:

[x] No documentation needed.

We may possibly need to document Tag attributes, but I'm unsure who the user would be.

[ ] Documentation included in this PR.
[ ] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

It turns out the #[deprecated = ...] attribute was not being handled previously. I'm not sure if this was expected but it's now easier to see now that we get an error if it does not get a ' prefix.

I bumped into this with the new parser (well, it let me know of a bug I had back then). I think that deprecated = ... syntax is not valid because it doesn't trigger any deprecation warning. If you do #[deprecated] or #[deprecated("...")] then it does trigger the warning (though is no case it uses the string you pass to it: it seems it's completely ignored).
I wonder if we should change those deprecated = ... attributes to their correct form.

I changed each #['deprecated = ...] usage to #[deprecated]. With #[deprecated(...)] I was still getting a "deprecated function not found" error message so I assume those weren't being counted as deprecated either and just removed the message.

Ok, all attributes in tests should be fixed now.
Pinging @vezenovm for visibility on #[inline(never)] not doing anything in the inline_never test


[Port dspace-8_x] Bump http-proxy-middleware from 1.0.5 to 2.0.7

Description
Manual port of #3550 to dspace-8_x

Merging as this was already approved/merged for main and dspace-7_x.  See #3550 and #3552


TSCTestSupport: avoid dropping path components

Given that the AbsolutePath constructor invoked here is
AbsolutePath(_:relativeTo:) dropping the first component is not
meaningful for UNIX paths as an absolute path relative to root is going
be the same path as the path relative to the root being re-formed to be
relative to the root.  However, this meaningfully impacts paths on
Windows as the shared path representation currently does not include the
drive or server & share (in the UNC case) and the resulting absolute
path representation is a drive-relative path, where dropping the first
component alters the path representation.

@swift-ci please test

done have tests to make sure this still works correctly on all platforms?

The tools-support-core tests don't work on Windows (I'm tempted to spend the necessary energy towards removing the dependency).  The SPM tests will definitely exercise this heavily, and the assertion in AbsolutePath (i.e. path.pathString.utf8.first! == "/").  I think that this should be sufficiently covered.  But, if there is something that you think might be useful to add - I can try to add something blind.


Playground TLS Cert Expired

The TLS certificate for https://play.crystal-lang.org/ has expired.
I opened this earlier in jhass/carc.in#36 - but after inspecting the cert, I realized the official playground site and the carc.in site seem to be the same instance. So I figured I'd report it here too.

We are aware, thank you. It's the same problem.

This has since been resolved in jhass/carc.in#36 :3


datepicker: days of month do not fit in boundaries.

see bottom row

This is no longer an issue. Also https://github.com/callemall/material-ui/pull/3739 will resolve all these issues across browsers.


Log Level should be passed as an environment variable

Problem:
Currently log-level can only be specified in the start command via the --log-level parameter. There is no way to configure the log level in other commands.
Proposal
Instead of a cli param, we should set the log level using environment variables.
# Option 1
TAILCALL_LOG_LEVEL=DEBUG tailcall start ./main.graphql

# Option 2
TC_LOG_LEVEL=DEBUG tailcall start ./main.graphql

Technical Requirements

Log level should be read from TAILCALL_LOG_LEVEL and then from TC_LOG_LEVEL.
Drop the --log-level from the start command

/bounty 50$

Hi there, may I do this?

May I attempt this one?


Chrome 59 supports spec-constraints

Chrome 59 supports spec-constraints for getUserMedia so we should stop translating constraints.
@guidou: the release notes are quite unhelpful about saying where this was actually fixed, can you point to a bug? This might be https://bugs.chromium.org/p/chromium/issues/detail?id=682887 but that has no associated CLs so it is hard to judge what works and what is still left for https://bugs.chromium.org/p/chromium/issues/detail?id=657733

Chrome 59 supports spec-compliant video constraints for getUserMedia, but not audio constraints.
The audio work is still going on, aiming to finish in 60.
http://crbug.com/657733 tracks both, so it will be closed when the audio work lands (maybe we should have used separate bugs, but we didn't know at the time).
http://crbug.com/682887 was basically tracking ideal support for video constraints and is closed as Fixed.

I'm experiencing this as well when using getUserMedia but inconsistently between different PC's.
We are using Xsplit to screencast, and as described on the bug we are seeing 640x480 in webrtc-internals and the quality is degraded.
is there anything I can do to force the resolution for chrome users?  I've tried setting min and ideal constraints but no luck.

@fippo any update on this?  we're trying to move jitsi over to using adapter, but hitting issues when trying to specify video constraints.  i've got a fiddle here: https://jsfiddle.net/sa6pjux1/
if you use a camera which doesn't support 1080p (built-in facetime camera for example), it'll fall back to 640x480.  If you comment out including adapter, it'll get 1280x720 (which is what we want).

that sounds like a bug... @jan-ivar any idea?

@bbaldino
I tried https://jsfiddle.net/sa6pjux1/ in Chrome 62 and Firefox 55 with a webcam that has maximum 1280x720 and it works as expected with and without adapter.js. I get 1280x720 in all cases.
If you think there's an issue in Chrome, file a bug at http://crbug.com

@bbaldino Note if you "Update" and "Set as base" your fiddle after you've fixed the load type to No Wrap - in <body>, then it should be saved, and we won't have to remember to flip it (less confusion).
I can reproduce in Chrome 61 (get 640x480 when it should've been 1280x720) only with adapter. Works fine without.
This is because the adapter.js constraints polyfill is inferior to Chrome's implementation. Removing it is overdue.
@guidou Do we want the cutoff to be 59, 60 or 61? Do we still need to polyfill the audio constraints?

thanks @jan-ivar , i should have specified before that i was seeing this in chrome 61.

also @jan-ivar is there anything planned to handle the screenshare side of things?  i noticed chrome still wants the old-style constraints and chromeMediaSource/chromeMediaSourceId for screenshare.

unfortunately the webrtc product management remained silent to inquiries about the need for an extension... which is the main reason this is currently not shim-able in a good way.

@bbaldino The plan for adapter would need to be to implement the spec, which is getDisplayMedia.
Presumably, width, height, and frameRate constraints would let users downscale output.

Based on https://github.com/webrtc/adapter/issues/553#issuecomment-333539631 I think the action item here is to remove the constraints polyfill in Chrome 61.

I made a PR to remove the polyfill in Chrome61+. I think this needs to be a major version bump since the change in behaviour that is not covered by tests is unknown.


Export sqlite db to mysql during resting periods

Closing b/c I'll instead be parsing blob content during resting time instead of running two concurrent programs.


hx711_get_value_timeout suggestions

The hx711_get_value_timeout() function takes a pointer to the timeout value as an argument. I think it would be more convenient to pass by value, so you could write
bool ok = hx711_get_value_timeout(&hx, 2500, &val);
I think it might also be good to change the loop to
do {

} while (!timeReached(endTime));

This would allow calling the function with a timeout of zero and still get a value back if one is available. Alternatively, a function
bool hx711_get_value_noblock(hx711_t* const hx, int32_t* const val);
would be good and avoid the overhead of computing the timeout.
BTW, your library is great, I really appreciate you making it available on github.

The timeout type was an oversight on my part. I wanted to keep it to microsecond resolution and so decided to use a 64 bit int. But there's really no need for that. The smallest delay I measured between each value from the HX711 being read was around 12 milliseconds. So a 32 bit uint by value should be perfectly fine. I'll change that and give you an update when it's done.
As for the second suggestion, hx711_get_value_timeout is designed to obtain a value within the timeout period. A timeout of zero - to me - indicates a timeout which has already been met and hence the function should stop and use its bool return value to signal a timeout. If you always want to get a value irrespective of time, you can use hx711_get_value.
Doing this should also have no performance hit because the PIO program which acquires values executes independently.
int32_t val;
uint64_t timeout = 0;

if(!hx711_get_value_timeout(&hx, &timeout, &val)) {
    val = hx711_get_value(&hx);
}

But in any case, I can't think of a reason to have a timeout of zero anyway.
Thanks! You might also be interested in pico-scale too.

Thank you for the changes.
I am using the hx711 for a sensor in a motor control application, so I want to check if a new value is available as quickly as possible and do other things if there is not. That's why a non-blocking function with zero timeout would be nice for what I'm doing. I understand your explanation that the function is designed to provide a value within a specified timeout, and maybe a separate hx711_get_value_noblock() function would be more appropriate semantically for retrieving a value without blocking if one is available. However, checking if there is a value in the fifo before checking the timeout comes at no cost and makes the edge case work.

Thanks for your explanation. I agree with a proposed hx711_get_value_noblock() function. How about:
bool hx711_get_value_noblock(hx711_t* hx, int32_t* val)

Which sets val and returns true if a value was available?

That would be perfect.

Done! Give that a try and let me know how you go.

Works perfectly, thank you very much.


Styling ShowInputAsync ?

Is there a way to customize the styling of the dialog window(s) ? In particular the background color of the buttons, font size etc.
My app uses a color scheme from a config file, and I've managed to wire it to the rest of my Metro implementation where I need it, by doing this (for buttons):
Style x:Key="CustomButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource MetroWindowButtonStyle}"
...and then use my customs colors as property values within the style definition, and then set my custom definition as the style for my buttons in the main window.. It works great, but now I need to apply the same above custom style to the Dialogs: ShowInputAsync etc.
Please advise.

@barryBithead You can use your custom styles via MetroDialogSettings.CustomResourceDictionary

For some reason I'm not getting CustomResourceDictionary as a property of MetroDialogSettings ?

yeah, sorry for that, it's available in the alpha version.

So I'm toast ? :-)

Allo ?...:-)


Update README.md

escaping markdown

Current coverage is 70.06% (diff: 100%)

Merging #44 into master will decrease coverage by 0.07%

@@             master        #44   diff @@
==========================================
  Files            15         15
  Lines          1403       1403
  Methods        1399       1399
  Messages          0          0
  Branches          4          4
==========================================
- Hits            984        983     -1
- Misses          419        420     +1
  Partials          0          0

Powered by Codecov. Last update 0e4252b...d28715b


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1261 ms

Resolved: Bofrost.at performance has improved in 9b4056b.