[Discussion] Production ready client side generation

For every single model we going to create at least 10 client side queries as separate file. This gives 100 files for small projects containing just 10 models.
Files are really hard to manage - Some of them are not that useful in the project and may not even be imported. When removing model file will not be removed.
This brings me to the conclusion that we should also aggregate generated queries into single files for typescript and js targets. The investigation is needed how we can do that for gql files

CC @craicoverflow

CC @Eunovo

Yeah there really is no need for multiple files since they are not to be edited by user.

Challenge is that graphql documents cannot be defined as a single files so we will need to have a compiled version which forces them as js or ts files.
Then having js/ts files will prevent this format from being used by apollo-codegen and graphql-code-generator forcing us to build competitive feature for both very advanced generators that have large community.
I always though that TS files were an problem as they kinda missing the types.
We missing currently js format as well.
Challenge here is to prove value of the automatically generated client side queries vs giving people control over the what files are created - since crud is global to the server and it is being used to client we might use different crud for client only. Another challenge is nestability mentioned in separate issue.
I think to approach that properly we will need to do following investigations:

Can we settle with using thrid party client generator (like graphql-code-generator) or we want to use our own

If we use graphql-code-generator to build types do we still need graphback codegenerator for client or maybe we can simply have graphql-codegen-client that will produce the same results (I have tried it an they are actually ackward to work with multiple files that is why we created our generator in first place.

Our generator allows creating multiple files but it is actually hard to tweak what is generated or manage manual edits (rule - do not edit anything generated  (we can add comments to the top of the file)

Once we cover this we have basic plan for the client side generator.
Follow up will be to see how we can extend graphql-code-generator or anything else to expose offlineMutations from offix (as alternative to the normal mutations) and datasynchronization (so cache updates will be embedded into the client calls so people will not need to make them.
I have brief conversation with @darahayes about this while ago but we did not made any progress on that front.

Challenge is that graphql documents cannot be defined as a single files so we will need to have a >compiled version which forces them as js or ts files.

Why can't graphql documents be defined as a single file?

Because the way they are compiled into queries - each file is query. If we have all queries and mutations in single file how we can split them.
They are string basically so even if we do gqlrequire("./largefile").UserQuery most of the code generators will expect or use single files to build their types etc.

I put all the fragments and queries into a single file like this
fragment CommentFields on Comment {
   id
   text
   description

}

fragment CommentExpandedFields on Comment {
   id
   text
   description
   note {
      id
      title
      description
   }
}
// .. note fragments here

query findAllComments($limit: Int, $offset: Int) {
    findAllComments(limit: $limit, offset: $offset) {
      ...CommentExpandedFields
    }
  }

query findComments($fields: CommentInput!, $limit: Int, $offset: Int) {
    findComments(fields: $fields, limit: $limit, offset: $offset) {
      ...CommentExpandedFields
    }
  }
// ...note queries here

I ran the codegen tool. I show an abbreviated version of the output below
/**  @model  */
export type Comment = {
   __typename?: 'Comment';
  id: Scalars['ID'];
  text?: Maybe<Scalars['String']>;
  description?: Maybe<Scalars['String']>;
  /** @manyToOne field: 'comments', key: 'noteId' */
  note?: Maybe<Note>;
};

export const CommentFieldsFragmentDoc = gql`
    fragment CommentFields on Comment {
  id
  text
  description
}
    `;
export const CommentExpandedFieldsFragmentDoc = gql`
    fragment CommentExpandedFields on Comment {
  id
  text
  description
  note {
    id
    title
    description
  }
}
    `;

export function useFindAllCommentsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<FindAllCommentsQuery, FindAllCommentsQueryVariables>) {
        return ApolloReactHooks.useQuery<FindAllCommentsQuery, FindAllCommentsQueryVariables>(FindAllCommentsDocument, baseOptions);
      }
export function useFindAllCommentsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<FindAllCommentsQuery, FindAllCommentsQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<FindAllCommentsQuery, FindAllCommentsQueryVariables>(FindAllCommentsDocument, baseOptions);
        }
export type FindAllCommentsQueryHookResult = ReturnType<typeof useFindAllCommentsQuery>;
export type FindAllCommentsLazyQueryHookResult = ReturnType<typeof useFindAllCommentsLazyQuery>;
export type FindAllCommentsQueryResult = ApolloReactCommon.QueryResult<FindAllCommentsQuery, FindAllCommentsQueryVariables>;
export const FindCommentsDocument = gql`
    query findComments($fields: CommentInput!, $limit: Int, $offset: Int) {
  findComments(fields: $fields, limit: $limit, offset: $offset) {
    ...CommentExpandedFields
  }
}
    ${CommentExpandedFieldsFragmentDoc}`;
// ...continues

It appears that the types have been generated as expected.

Then.. Can we generate types from TS files?

Then.. Can we generate types from TS files?

Take a look at https://graphql-code-generator.com/docs/getting-started/documents-field/#available-formats
Graphql Code generator can detect gql strings in code files and generate types from them

Ok.. So challenge here is that if we go solid about graphql-code-generator it will be that people will rarely interact with our generated code - they will use wrapper. We also have business to contribute to that wrapper with our use cases from offix.
So would it make sense to use two generators (Ours and GraphQLCodeGen). Can we simply depend on graphql-code-generator as a whole to generate client side queries (format here is not important (it can be gql etc.) and then use existing plugins from graphql-code-generator.
Currently, you need to setup graphback generator generate client side queries, then use graphql-code-generator to generate wrappers in ts or js
Example config:
https://github.com/aerogear/OpenVolunteerPlatform/blob/master/platform/client/.graphqlrc.yml#L21-L37
This is a more convoluted approach. If we port Graphback CLient Plugin to the GraphQL-Code-Generator plugin - this can be possibly simpler and it might invalidate entire generator use case (as schema will be pointless to generate as well)
Do we see any drawbacks on this use case?
If we later come with delta sync schema queries would it be more beneficial to still keep client generator
Any feedback?
@craicoverflow
@machi1990
@darahayes
@Eunovo
@kingsleyzissou
I will need to check with Codegen maintainer if they will be happy to incorporate our generator inside their repo or we will keep this in graphback.
Note: This is not to kill plugins - they are core of the extensibility feature - this is more if we need createResources method in the plugins itself or we will keep all inmemory and delegate some of the codegen generation to apollo-codegen or graphql-code-generator

Example config that shows complexity of this:
https://github.com/aerogear/OpenVolunteerPlatform/blob/master/platform/client/.graphqlrc.yml#L21-L37

I agree with you, without a starter templates, setting up a config like that can be hard (trail and error kind of).
I have a question:
From my experience of OVP client side  as a user what interests me is the generated /src/dataFacade.tsx, I always wondered why do we need this graphql folder?  Is it purely for integrations with other codegen tools?
Can we have a js variant of the generated src/dataFacade.tsx file?

dataFacade.tsx (terrible name btw.) is generated by GraphQL-code-generator from the config. GraphQL code generator can generate facade but it needs source queries - those are usually written by developers - in our case we can generate some of them for convenience. In this issue we are trying to decide how we:

generate those - single file/multiple files.
How we connect those with user written ones
How to remove add queries that you might not need (In OVP we have separate config for that which is kinda hard to document
Is there value of generic queries and how to handle multiple cases (expanding results sets to relationships)

I don't have particularly strong opinions on this to be honest. I understand the concern of having too many files. My two cents though, with a single file for each query, it's easier to know what is in that file without having to open it and I can import it straight away. With a large file with multiple queries, I would have to go into the file, find the query name and then import that into whatever client-side query I'm trying to make.

dataFacade.tsx is generated by GraphQL-code-generator from the config. GraphQL code generator can generate facade but it needs source queries - those are usually written by developers - in our case we can generate some of them for convenience.

Thanks for the workflow.
In this issue we are trying to decide how we:

generate those - single file/multiple files.

Agreed. I'd agree with @craicoverflow above that generating a single file is the best way.  A user will not look to edit them.
To expand my question above,  I was curious to see if there is a way to make graphback-client to not generate a gql file but instead hook up with GraphQL-code-generator and generate a single facade file?
Sorry if I might be sidetracking from the original issue.

@machi1990 Your question was my question. This is possible, but ...

So would it make sense to use two generators (Ours and GraphQLCodeGen) to exist even if the queries will not be consumed directly? Technically this composes nicely - we generate non generic stuff based on our strongly opinionated model and codegen wraps that into hooks or hoc, but is that actually simpler to use?

Can we depend on graphql-code-generator only to generate client side queries (format here is not important (it can be gql etc.) and then use existing plugins from graphql-code-generator.

Files are really hard to manage - Some of them are not that useful in the project and may not even be imported. When removing model file will not be removed.

Strongly agree and was bitten by dandling generated gql files in this commit https://github.com/aerogear/OpenVolunteerPlatform/pull/61/commits/132438baf714735b623b5ca313ecd983410a09e9 and I had to manually remove them for the generation command to work again.

Plan for now:

I'm working on finalizing client side CRUD stuff - couple issues there
We going to test client side codegen in the OVP with @machi1990
We going to explore options how we can use GraphQL-Code-Generator instead of Graphback client for client side queries

@Eunovo #1268 contains some small fixes for the client side queries - still some things failing

Put on the table disabling code generation for schema/client-side as a whole in graphback (generation at runtime for schema only)

1 on this. The whole idea of having an independent CRUD specification makes it possible to build completely independent tooling that references the spec.

when in single file we would not be able to use fragments in their own queries

Why? All the generated query files do not explicitly import any fragment file

Why? All the generated query files do not explicitly import any fragment file

Actually you are right.
As long fragment will be there graphql-codegen will be able to produce wrapper

If we are talking about completely removing generated documents, it might be possible to allow users still use graphback's fragments (even though they are not in any files) if we generate the fragments at runtime. I don't fully understand all of graphql-code-generator's workings yet but it might be possible to do this with a custom loader or plugin.

@Eunovo That is amazing. GraphQL code generator has nicely documented plugin docs. Maybe we can explore that and see if there will be any limitation to move our client-side generator to graphql-codegen plugin and what possible and most developer-friendly ways we could use to do so.

Currently, GraphQL code generator plugins cannot modify documents. The only way to add our custom documents is to use a custom loader. This custom loader must be a JS/TS file so we would still have a generated file.
I have also discovered that we can keep our client generator and use codegen inside it.
See graphql-code-generator, programmatic-usage. This seems like the best option. The only output would be the generated types.

Also, using the codegen module, users will not need a codegen.yml file anymore.

@Eunovo I forgot to mention that both graphback and codegen are available as GraphQL CLI so magic can happen here.
As for not being able to edit documents - that is not limitation for us. Our plugin could create an new file crud.graphql or something based on existence of our crud stuff in schema. There is no need to edit user based documents - we just want generated ones to coexist with user ones
Looks like we might need to hack our way for codegen plugin.
@ardatan FYI We are looking into building client side graphql codegen plugin.

@wtrocki I wasn't referring to "editing user documents". We can't add to the documents being processed by codegen from the plugin. The plugin can't extend the documents the way it can extend the schema.
If we generate a crud.graphql in the plugin, how is it going to get processed? If a user constructs a query with non-existent fragments(to be generated by the plugin), codegen will reject it.

@Eunovo I forgot to mention that both graphback and codegen are available as GraphQL CLI so magic can happen here.

What magic? I don't understand what you mean

@wtrocki I wasn't referring to "editing user documents". We can't add to the documents being processed by codegen from the plugin. The plugin can't extend the documents the way it can extend the schema.

Sorry for not getting back to you early. I needed to try out this myself first to
That is fine. I did not mean to add to the existing documents. I was more about creating a new document. For that we only need schema as input

schema: ./server/src/schema/schema.graphql
documents: ./client/src/graphql/**/**.graphql
generates:
  ./client/src/graphql/crud.graphql
    plugins:
      - graphback-client
    config:
      create: false
      delete: false

  ./client/src/generated-types.tsx:
    plugins:
      - add: '/* tslint:disable */'
      - typescript
      - typescript-operations
      - typescript-react-apollo
    config:
      withComponent: false
      withHOC: false
      withHooks: true
      skipDocumentsValidation: false

There are couple problems here:

Client plugin is not working properly without schema plugin embedded as schema plugin adds the relationship fields etc. so in this case I needed to ignore model and use final schema

I could not make this work as documents are read once. So if other document will be created by the plugin it will not be appended - as you mentioned.

What magic? I don't understand what you mean

Integration between graphql-codegenerator and graphback client - whatever it will be

Conclusion - it will not be easy to merge all together so we might need two cmds and figure out the best workflow/patterns for generating clients first.

Fixed by @Eunovo
Amazing work that I have tested in OVP. Really like how simple this was to resolve.
There are still some of the issues around flexibility of the generated queries that we can address in separate issues.


It works in front of anything (see the | <blorst> below), it's just that the for statement case is special-cased.

Ah, OK. Then it should be tested anyway, right?

Well, since the lazy for .. case has its own special code path there, it'd seem especially deserving of a test. :-)


Not updated fully

This page which used to include Azure Data Factory and Azure Databricks is still referencing Azure Databricks despite being updated to use Synapse for everything.
Also, the flow no longer makes sense as the connectivity from Power BI to Synapse Analytics Spark Pools doesn't exist, instead needing to use SQL pools. In that respect the 5th data flow should be removed or clarified.

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

ID: ce9a3b79-d9cd-ec55-2e4c-751e932a3dba
Version Independent ID: 28c6b234-3905-ad1b-6a3f-6387a11f745f
Content: Architecture - Azure Architecture Center
Content Source: docs/solution-ideas/articles/enterprise-data-warehouse.md
Service: architecture-center
GitHub Login: @julieMSFT
Microsoft Alias: pnp

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 419519

Hi @dazfuller, thank you for contacting Microsoft and bring this to our attention. The fix is in process and should be visible later today. I will go ahead with closing this issue. The @notification mechanism continues to work even after an item is closed, in case further communication is needed. We hope to hear from you again.

#please-close


PitchPhase: Upon refresh, Player's coin value never reappears.

-Press the "Reconnect" button in the menu on player's screen during the Pitch phrase
-The value number of coin missing from the screen

update:
If the number will reappear after coin value is change (use for buying more time)

saw this yesterday. confirmed it is still happening!

this is happening in any phase fyi


3.2.51: Update dockerfile for restructured repo, bump version number

Looking to release 3.2.51 this week with all the slot features. Good work has been done on nested armatures but it will probably take a few weeks.

Released. Patch notes: https://www.godotdragonbones.com/post/godot-dragonbones-3-2-51


Init cleanup

Merging preinit.js with main.js - istead of binding to window we can import them properly.

Passing backend variables using envify transform for browserify instead rendering them in Jade, they are available in app/config/js and can be imported.

👍 This is fantastic. It makes a lot of sense to do it this way and I'm very glad we don't need the two separate bundles anymore.


Strip maintenance view generation comments

What about removing generation comments from maintenance views ?
Somehow they are not overwritten with force pull (which might be another way to solve the issue). But on the other hand if the history of changes is in git why need those pseudo history in comments ?

UPD:
Also. In the context of deploying products to clients. Maintenance views are regenerated from time to time for technical reasons and thus introduce those diffs at client side. Which is not supposed.

Both test repos show this issue:
https://github.com/abapGit-tests/FUGR_maintenance_view/search?q=generation
https://github.com/abapGit-tests/FUGR_maintenance_view_variant/search?q=generation
generation date/time and the generator version should be stripped

hmm

merged, closing


Add file uploader component

Issue Context
This is another carbon component to be added to the list of components in UI builder in order to enhance its usability.
Proposed solution
No response
Proposed Implementation
No response
Additional Resources
No response
Alternatives Considered
No response

@zvonimirfras  please assign me for this issue


investigate alternative to offline enrichment

possibly use docker or openwhisk

I have a Docker container -- And there is a Dockerfile in the Repo.  I never implemented the ability to load a file. The 'Re-enrich' did work if you had it running in a Docker container.  I can do this -- but it is bigger than a breadbox type of issue since it will end up involving upgrading the framework I used (most likely)
I really want to do this; it will take some architectural changes though.  Let me size it...


[ENH] - Adding Conda-Store, JupyterHub, Traefik, Keycloak Grafana Dashboards

Feature description
Currently the Grafana dashboards for these services are already added but the metrics are not being fetched. In order to fix this we need to add the prometheus scraping operators to get the configuration. Simlar to the example here. The catch is that this requires a custom resource definition. CRDs cannot be used and defined within the same step https://github.com/hashicorp/terraform-provider-kubernetes/issues/1367. Unless this issue is resolved this is complex to solve.
The most promising plan would be to use the kubectl provider
Value and/or benefit
Users can see monitoring from all their services.
Anything else?
No response

Adding a note in case it's useful.  Though a CRD sounds like a potentially better solution, we did have a workaround in the Prometheus config in the past (https://github.com/Quansight/qhub/pull/797/files).

@costrouc When adding kubectl provider, we'll need to add credentials, right?
provider "kubectl" {
  host                   = var.eks_cluster_endpoint
  cluster_ca_certificate = base64decode(var.eks_cluster_ca)
  token                  = data.aws_eks_cluster_auth.main.token
  load_config_file       = false
}

I see these outputs are output in stage 2, but we don't have a way to get them from stage 2 to stage 7, do we?


Investigate audio output

See if there is a way to run text to speech and read the generated text out loud.
Ideally, this happens in parallel to the LLM generating tokens (using the second CPU core).

Potentially useful reference: tulasiram58827/TTS_TFLite


[Val Town] Add val town

Description
Run, view, and search Vals from https://www.val.town/
Screencast
https://github.com/raycast/extensions/assets/1478421/51f601be-1f14-42e9-8f76-78e022b71140
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Some upcoming api changes required I disable the "Recent Runs" you see in the screencast. I'll re-add them after the api is updated and public.

Ah yeah right. When I had the "recent runs" stuff there it would push an EmptyView if it would error like that. I'll clean that up thanks

I re-implimented the "recent runs" feature I mentioned removing above and confirmed the empty view shows.

Users can still search other's content, but it's not really the primary use for the extension (and arguably not very useful without an account anyway) so I think it's still better to make the api token required even though some things still work.

Thanks for the update 🔥
It seems like both isLoading and isSearching is always false so it makes a weird flicker 🙂
https://github.com/raycast/extensions/assets/38033107/f1c09c40-3e53-4574-8cb0-7030f4ffd3d3

I pushed an update now if you can check it again. Thanks.
I guess it's because isLoading is false if the previous data is already there, and it takes time for the error to come in. Makes sense. I updated it to check whether profile is undefined instead.


Update to not use minified version in Bower

#21

LGTM.
Should we re-tag the 8.7.0 release?

The 8.7.0 tag has been updated.


minor corrections in mle.rst

Hi @jstac,  I have resolved the conflicts.
Please have a look at this PR. Thanks!


Style transfer between any two images - iOS App needs beta tester

Hi, I built an App that can transfer style between any two images. It uses fast-neural-style and AdaIN style transfer (https://github.com/xunhuang1995/AdaIN-style) and some of my own modification. The rendering part is implemented in pure native iOS code. No server, no internet connection is needed when you run the style.
Currently I am looking for beta tester for the App. If you are interested in trying it, please email to<EMAIL_ADDRESS>

transfer style between any two images .  ,Have you use fast-neural-style? Or only AdaIN-style?

How fast is the style transfer? Considering the README claims 17 second execution time for i7

On iphone 6, it takes about 24 seconds to process two 512x512 images. The image size is due to the memory limitation. It should be faster and able to process larger image on more recent devices.

Why not try to transfer it in GPU ,I mean if people use a app which
progress a photo need 24s,I think most of people will delete it...
2017年6月22日 00:49，"Artly"<EMAIL_ADDRESS>
On iphone 6, it takes about 24 seconds to process two 512x512 images. The
image size is due to the memory limitation. It should be faster and able to
process larger image on more recent devices.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/yusuketomoto/chainer-fast-neuralstyle/issues/93#issuecomment-310139138,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AY7E2TxEqim7zrxL5o1RoVkos57MA2F8ks5sGUmpgaJpZM4N9a1K
.

It is already using the GPU

It's from gatys' Neural style？
2017年6月22日 00:58，"Artly"<EMAIL_ADDRESS>
It is already using the GPU
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/yusuketomoto/chainer-fast-neuralstyle/issues/93#issuecomment-310141204,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AY7E2QeXXiFpvTaGw_PkbZZiFpPleVPXks5sGUuAgaJpZM4N9a1K
.


[BUG] xair connection doesn't start

Is this a bug in companion itself or a module?

[X] I believe this to be a bug in companion

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Companion 3.3.0 doesn't install xair connection, on 2.4.0 it works
Steps To Reproduce
Go to connection list, look for xair connection to add, click on add.. xair connection is added but it loops on retry and installing
Expected Behavior
No response
Environment (please complete the following information)
- OS: windows and mac
- Browser: chrome and edge
- Companion Version: 3.3.0

Additional context
No response

This has been fixed in the beta release #91


fix(sbb-sticky-bar): remove unnecessary import to container

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

:exclamation: No coverage uploaded for pull request base (main@7307d0f). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2406   +/-   ##
=======================================
  Coverage        ?   93.81%
=======================================
  Files           ?      228
  Lines           ?    23505
  Branches        ?     2074
=======================================
  Hits            ?    22052
  Misses          ?     1415
  Partials        ?       38

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


Thanks for sharing----proposal

Does your project support open source?
If possible, can the "Path of Building.exe" program source code and the use of what language to write to me? I also want to learn, I am also a favorite player for the "path of exile" game. Your software is very powerful, but the language problem, I have a lot of places do not understand.
If you don't want to, let the program read a language configuration file. Let the program select a value to read, such as:
"Key= to Resistance  ，Language1=to Resistance， Language2= 火焰抗性"
Of course, "Language2" content you can empty, it can also facilitate many countries to translate this software

The program is mostly open source; the application code is written in Lua. Only the engine isn't (it's written in C++), but I can make the source available to anyone who wants it.
Adding the ability to translate the program isn't as easy as that. As covered in #55, the engine doesn't support Unicode yet, so it can't display non-Latin text.

Thank you for your reply.
Can you and I under the software, called Lua?
Use those things to build classes, I hope to use other programming languages to do the engine, this should be able to achieve language replacement!
感谢您的答复！
您能和我分下下这个软件，调用lua吗？
用到那些组建类的东西，我希望能用其他编程语言来做引擎，这样应该能达到语言的更换！

能否把引擎的代码与我分享一下，我想尝试做汉化。
或者根据思路用别的语言做个相似的引擎。
If you can share the engine code with me, I want to try to Sinicization.
Or make a similar engine in other languages on the basis of ideas.


Feature/django2x support

We're porting our own project to Django 2.2 support, while running tests, there were errors with urlresolvers import.
In additon, travis jobs are failing because of flake8 checks for some lines I did not even touch but with,
flake8 --ignore=E501,E731,E402,E704,W503,W504,W605 daguerre everything goes well, do you want me to update travis ci yml file?

@ntuckovic I've just merged a Django 2 compatibility pr into master - I'll make a release shortly. Thanks!

See #116 for the pr mentioned above

@melinath My pleasure, thank you too!


VS 16.2: parameter pack must be expanded in this context

@Naios
Visual Studio 16.2 has introduced a bug with parameter pack expansions and this is affecting continuable.
[100%] Building CXX object test/unit-test/CMakeFiles/test-continuable-base.dir/test-continuable.cpp.obj
test-continuable.cpp
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(137): error C3520: 'Args': parameter pack must be expanded in this context
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\type_traits(290): note: see reference to function template instantiation '_Add_reference<_Ty,void>::_Rvalue std::declval(void) noexcept' being compiled
D:\Source\Projects\continuable\include\continuable/detail/operations/loop.hpp(166): note: see reference to class template instantiation 'cti::result<>' being compiled
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\chrono(591): note: see reference to class template instantiation 'std::chrono::duration<double,std::ratio<1,1>>' being compiled
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\chrono(169): note: see reference to class template instantiation 'std::chrono::duration<__int64,std::nano>' being compiled
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\chrono(570): note: see reference to class template instantiation 'std::chrono::time_point<std::chrono::steady_clock,std::chrono::steady_clock::duration>' being compiled
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(136): error C2672: 'std::declval': no matching overloaded function found
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(137): error C2893: Failed to specialize function template '_Add_reference<_Ty,void>::_Rvalue std::declval(void) noexcept'
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(137): note: With the following template arguments:
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(137): note: '_Ty=Args'
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(150): error C3520: 'Args': parameter pack must be expanded in this context
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\include\type_traits(290): note: see reference to function template instantiation '_Add_reference<_Ty,void>::_Rvalue std::declval(void) noexcept' being compiled
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(149): error C2672: 'std::declval': no matching overloaded function found
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(150): error C2893: Failed to specialize function template '_Add_reference<_Ty,void>::_Rvalue std::declval(void) noexcept'
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(150): note: With the following template arguments:
D:\Source\Projects\continuable\include\continuable/continuable-result.hpp(150): note: '_Ty=Args'

Workaround
Removing the second template parameter on line 135 and the third parameter on line 148 seems to work around the issue.
This seems to be a MSVC bug when expanding std::declval<Args>()... expressions.

Your Environment

OS: Windows 10
Compiler and version: VS 16.2 (Microsoft (R) C/C++ Optimizing Compiler Version 19.22.27905)

Thanks for your report. Could you provide a PR please, which applies the suggested fix?

Thanks for your report. Could you provide a PR please, which applies the suggested fix?

Yes, I can. But it's not really a fix, just a workaround/hack that disables the wrap signature check (done viavoid_t). I have tried to create a concise reproducible test case in which MSVC fails to compile (to report it to Microsoft) but no luck :(

This was fixed in 92d8bbad368a385fc94b775abe385dcf67af04c9


teste new token

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


Fixed links

This should reduce docfx build warnings.
Links I didn't fix:

links to stub articles that were deleted
links to images
links to api

This reduces the number of warnings in OpenPublishing.Build from ~213 (in #624) to 122.

@svick Thank you again for all the work you've done on this project.
This looks great, and really helps us as we're moving some content prior to Monday.
:shipit:

This was in my to-do list for today. Thanks @svick!!


Not Getting Heart Rate MI Band 4

I am not getting heart rate info. Can you check it once.

This project is intended to work only with Mi Band 3


Question: How to smooth out a grainy looking raster

I am doing an IDW interpolation of some points. The resulting raster is displayed as a discrete raster (see image) when it needs to be displayed as a continuous raster to produce a nice smooth surface. Is there some sort of bilinear resampling I can do to smooth it out or any other methods I could use to produce a more aesthetically pleasing raster? Thanks in advance for the help.

How do you use the IDW tool, can you show me the code?


Added the travis with awesome-bot to detect the valid links

I have created the travis file to the repo which ensures that all link that are added are valid In order to use the travis in the project login into the travis ci website with github and authorise the  Travis ci to take control of the repo so on every pull the travis ci checks for the link validation using awesome-bot

Closing in favour of #185


JSON-LD Microdata

Does Redoc support generating JSON-LD Microdata for API References?
https://schema.org/APIReference

No. What values do you want to put there?

Thanks for the fast reply!
I've been trialling slate/shins for docs generation as well and you can use widdershins to autogenerate WebAPI discovery json-ld schema data. I guess the best bet would be to match them initially.
https://pending.schema.org/WebAPI
<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "WebAPI",
  "description": "{{data.api.info.description}}",
  "documentation": "{{data.api.externalDocs.url}}",
  "termsOfService": "{{data.api.info.termsOfService}}",
  "logo": "{{data.api.info["x-logo"].url}}",
  "name": "{{data.api.info.title}}"
}
</script>

I think this question was answered already, so I'll close the issue.


evaluation_metrics_plot fails when IRA fields are in the input EvaluationRow for multiclass result

Currently, if votes is not provided to Lighthouse.evaluation_metrics_row, it outputs a row with per_class_IRA_kappas and multiclass_IRA_kappas fields defined as missing.  If this is a multiclass result, then passing in such a row to evaluation_metrics_plot fails because it doesn't expect these fields to exist when not dealing with multi-rater metrics.
For example, for a 5 class EvaluationRow, it throws:
ERROR: DimensionMismatch("arrays could not be broadcast to a common size; got a dimension with lengths 12 and 8")

oh geez. this will be an easy fix---I can make it for you asap, @alexmchan, unless you're already on it?

yet another reason that it will be exciting to do #71---plots shouldn't ask for more than they truly need/expect to plot. none of this evaluation_metrics_plot behemoth nonsense.


Closing confirmation optional, by default turned on

Flexibility for more advanced users.

fixed in https://github.com/sigmaSd/Stimulator/commit/4dcc560072d0e178f82d71e1ee79d6ccd27b1bd3


Fix drift between Prod and Staging

[ ] CSB Bucket names with hardcoded environment string
[ ] API key name in staging
[ ] TF Resource name for aws_api_gateway_account.demo (requires a manual migration)

The aws_api_gateway_account might be a good opportunity to test out https://github.com/minamijoyo/tfmigrate


How to make singleton for UserSettings?

Hi. Thank you for the library.
I have a question.
How to make singleton for UserSettings?
I'd like to set context in one place and then use UserSettings.shared.
App.kt
UserSettings.init(applicationContext)
MainActivity.kt
UserSettings.shared.property = 2

My suggestion would be to create that singleton instance using a dependency injection solution, such as Dagger 2 or Koin.
Otherwise, you can use an object as your Krate, with something like this:
object UserSettings : Krate {

    override lateinit var sharedPreferences: SharedPreferences

    fun init(context: Context) {
        check(!::sharedPreferences.isInitialized)
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
    }

    var property by stringPref("property")

}

But be aware that this is fairly error-prone, as you'll get exceptions if you use the instance before initializing it. This here is just one implementation of a singleton pattern that takes a parameter in Kotlin, based on your suggested API, you can find more here.


[AVM Module Issue]: Incorrect example usage in README

Check for previous/existing GitHub issues

[x] I have checked for previous/existing GitHub issues

Issue Type?
Bug
(Optional) Module Version
No response
(Optional) Correlation Id
No response
Description
Incorrect parameters (i.e. vm_size) and source path is shown in the README.

@sihbher Thanks. Would you pls also update the version to 0.1.3 so that terraform registry will reflect the changes as well. Thanks.

Done, next time update _header.md file pls. README.md is an autogenerated file.


templates: document current_i18n

https://github.com/inveniosoftware/invenio-i18n/blob/master/invenio_i18n/ext.py#L145

Closed by 116d9edb08ed99f1211236e40cb2afaeef478d4f


on youtube we use low quality subtitles not the high quality transcript

Describe the bug
问题描述

A clear and concise description of what the bug is.

On youtube, this extension uses subtitles not transcript. The subtitles are terrible, and lead to the llm giving poor output
To Reproduce

如何复现

go to https://www.youtube.com/watch?v=IYaNscnE7rc&t=556s
run ChatGPTBox
look at the summary
open summary in separate window
look at the inputs the summary
go back to the video, open the transcript and compare

It seems that this extension is using the subtitles, not the transcript. But the subtitles often have much poorer transcriber model and uncommon words are totally missed.
For example, for this video
Expected behavior
期望行为

A clear and concise description of what you expected to happen.

This is part of the transcript available in the UI

it is now a matter of public record that under pompeo's explicit Direction the CIA Drew up plans to kidnap and to assassinate me within the Ecuadorian Embassy in London and authorized going after my European colleagues subjecting us to theft hacking attacks and the planting of false information my wife and my infant son were also targeted a CIA asset was permanently assigned to track my wife and instructions were given to obtain DNA from my six month-old son's nappy

And this is the subtitle information received in ChatGPTBox

it is now a matter of public,kidnap and to assassinate me within the,hacking attacks and the planting of,assigned to track my wife and,nappy

As you can see it's a poor source of informaiton
Please complete the following information):
请补全以下内容

OS: linux
Browser: firefox

related: https://github.com/josStorer/chatGPTBox/issues/679

I believe there is a bug related to retrieving information about the model's context window length and some logical calculations. For example, I used the web version of ChatGPT-4o, which is probably 8k, but I received a maxLength of only 900.

I’m trying to understand how it works, but it’s quite complex.
https://github.com/josStorer/chatGPTBox/blob/0ee357d03e779a467a9ff5bd472f99aae04cc309/src/utils/crop-text.mjs#L31-L101
@josStorer  Perhaps we should simplify it by creating a new key, such as 'length.'
https://github.com/josStorer/chatGPTBox/blob/0ee357d03e779a467a9ff5bd472f99aae04cc309/src/config/index.mjs#L166-L268

Site note: I think there are two separate bugs? There's the one where it uses the transcript (I have a small example it above, the length AND contents are different), and the one you are investigating where it wrongly clips the transcript.

Site note: I think there are two separate bugs? There's the one where it uses the transcript (I have a small example it above, the length AND contents are different), and the one you are investigating where it wrongly clips the transcript.

The function cropText is cropping the transcript based on the model's context length. From what I understand, if the transcript is too long, it takes a portion from the start and a portion from the end, then performs some calculations to find a balance in between. This is likely why the transcript feels short.

By the way, if you want a temporary fix for only YouTube without considering the consequences, you can simply return the prompt here without the cropText function
https://github.com/josStorer/chatGPTBox/blob/0ee357d03e779a467a9ff5bd472f99aae04cc309/src/content-script/site-adapters/youtube/index.mjs#L56-L59

Hmm let me look in the debugger... yes I see what you mean
an extract from subtitleContent in the debugger before cropText

it is now a matter of public,record that under pompeo's explicit,Direction the CIA Drew up plans to,kidnap and to assassinate me within the,Ecuadorian Embassy in London and,authorized going after my European,colleagues subjecting us to theft,hacking attacks and the planting of,false information,my wife and my infant son were also,targeted a CIA asset was permanently,assigned to track my wife and,instructions were given to obtain DNA,from my six-month-old son's,nappy

and after applying croptext

it is now a matter of public,kidnap and to assassinate me within the,hacking attacks and the planting of,assigned to track my wife and,nappy

This does look like a wider issue, the right way to crop is not to skip random parts of sentences, that will lead to incoherent text. Its to chunk the text (https://js.langchain.com/v0.1/docs/modules/data_connection/document_transformers/), perhaps keeping the beginning and end (and to tell the model that it's incomplete too).


Use of unstable library feature 'lazy_cell' in /renderer/src/text/layout.rs

I am trying to build my own floem-linked experimental program on Fedora 40, and I get these errors:
user@localhost ~/c/r/hello_floem (master) [101]> rustc --version
rustc 1.79.0 (129f3b996 2024-06-10)
user@localhost ~/c/r/hello_floem (master)> vim ./src/main.rs
user@localhost ~/c/r/hello_floem (master)> cargo run
   Compiling wgpu-core v22.1.0
   Compiling floem_renderer v0.1.1 (https://github.com/lapce/floem.git#a207ef4b)
   Compiling sctk-adwaita v0.7.0
   Compiling smithay-clipboard v0.7.2
error[E0658]: use of unstable library feature 'lazy_cell'
 --> /home/user/.cargo/git/checkouts/floem-69eea0a757d1e3ee/a207ef4/renderer/src/text/layout.rs:1:23
  |
1 | use std::{ops::Range, sync::LazyLock};
  |                       ^^^^^^^^^^^^^^
  |
  = note: see issue #109736 <https://github.com/rust-lang/rust/issues/109736> for more information

error[E0658]: use of unstable library feature 'lazy_cell'
  --> /home/user/.cargo/git/checkouts/floem-69eea0a757d1e3ee/a207ef4/renderer/src/text/layout.rs:11:25
   |
11 | pub static FONT_SYSTEM: LazyLock<Mutex<FontSystem>> = LazyLock::new(|| {
   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #109736 <https://github.com/rust-lang/rust/issues/109736> for more information

error[E0658]: use of unstable library feature 'lazy_cell'
  --> /home/user/.cargo/git/checkouts/floem-69eea0a757d1e3ee/a207ef4/renderer/src/text/layout.rs:11:55
   |
11 | pub static FONT_SYSTEM: LazyLock<Mutex<FontSystem>> = LazyLock::new(|| {
   |                                                       ^^^^^^^^
   |
   = note: see issue #109736 <https://github.com/rust-lang/rust/issues/109736> for more information

error[E0658]: use of unstable library feature 'lazy_cell'
  --> /home/user/.cargo/git/checkouts/floem-69eea0a757d1e3ee/a207ef4/renderer/src/text/layout.rs:11:55
   |
11 | pub static FONT_SYSTEM: LazyLock<Mutex<FontSystem>> = LazyLock::new(|| {
   |                                                       ^^^^^^^^^^^^^
   |
   = note: see issue #109736 <https://github.com/rust-lang/rust/issues/109736> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `floem_renderer` (lib) due to 4 previous errors
warning: build failed, waiting for other jobs to finish...

Is it known that unstable features are being used in main currently? Note that I am using rust 1.79 atm. I decided to just switch my Cargo.toml to use floem = "0.1.1" instead of pull from the main branch here and then I get this on cargo run:
cargo run
    Updating crates.io index
error: failed to select a version for `web-sys`.
    ... required by package `wgpu v0.18.0`
    ... which satisfies dependency `wgpu = "^0.18.0"` of package `floem_vger_renderer v0.1.0`
    ... which satisfies dependency `floem_vger_renderer = "^0.1.0"` of package `floem v0.1.1`
    ... which satisfies dependency `floem = "^0.1.1"` of package `hello_floem v0.1.0 (/home/moveax41h/code/rust/hello_floem)`
versions that meet the requirements `^0.3.64` (locked to 0.3.69) are: 0.3.69

the package `wgpu` depends on `web-sys`, with features: `GpuComputePassTimestampWrite` but `web-sys` does not have these features.

failed to select a version for `web-sys` which could resolve this conflict

The actual floem-linked program is this very simple test app:
use floem::window;
use floem::view::TextView;

fn main() {
    let app = window::Window::new("Hello, Floem", 800, 600);

    app.view(TextView::new("Hello, World!"));

    app.run();
}

Is it known that unstable features are being used in main currently?

It's stable as of 1.80 which is the latest stable Rust version

Is it known that unstable features are being used in main currently?

It's stable as of 1.80 which is the latest stable Rust version

Is this always the case? E.G. that it is stable for latest rust version only at any given time?

Is this always the case? E.G. that it is stable for latest rust version only at any given time?

I don't understand what exactly you're trying to ask here.
New features are unstable until stabilised. lazy_cell was unstable until Rust 1.80. It was stabilised in 1.80. Rust 1.80 is currently the latest stable version. Features are not retro-actively stabilised in previous versions.

@panekj Sorry if I was unclear. The question was whether or not floem development typically requires the latest version of rust at any given point in time?

Since Floem is actively developed and not deemed a stable interface, there isn't much reason to keep it working with older Rust versions. This might change once it matures and there are plans for stable release, e.g. v1.
I try to keep track of MSRV but in reality there is no automated tests and main consumer of Floem is Lapce which while might compile with older Rust versions sometimes, we don't guarantee it working with anything other that current latest stable.


API Docs

Review #5 first

Pull Request Test Coverage Report for Build 883485567

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 96.619%

Totals

Change from base Build 879209380:
0%

Covered Lines:
24402

Relevant Lines:
25256

💛  - Coveralls


Can MQTTnet client connect to other mqttserver via websockets?

Describe your question
Can MQTTnet client connect to other mqttserver via websockets? such as emitter
Which project is your question related to?

Client
ManagedClient

I would say yes. Have you tried https://github.com/chkr1011/MQTTnet/wiki/Client#websocket-connection?

yes, I follow the wiki documents, my situation is : I use Uno WebAssembly to build a web with C# backend(which instead of javascript to do the emitter pub/sub), and I get MQTTnet.NETStandard from nuget, then I build a test
//Connected handler
 public class ConnectedHandler : IMqttClientConnectedHandler
        {
            public Task HandleConnectedAsync(MqttClientConnectedEventArgs eventArgs)
            {
                return Task.Run(() =>
                {

                    Console.WriteLine($"Connected Success:{eventArgs.AuthenticateResult.ToString()}");
                });
            }
        }
//Main func test connect to the emitter server
var factory = new MqttFactory();
            var mqttClient = factory.CreateMqttClient();
            var options = new MqttClientOptionsBuilder()
                .WithWebSocketServer("localhost:8080")
                .Build();
            mqttClient.ConnectedHandler=new ConnectedHandler();
           var r= mqttClient.ConnectAsync(options, CancellationToken.None).Result; // Since 3.0.5 with CancellationToken

When I run it in web, there is an exception: protocol option not supported. then I build another project with .netcore command line app  as the same code with different nuget packages (MQTTnet+MQTTnet.Extensions.WebSocket4Net), it can work.
now I want to make it work with the webassembly (with uno), but I don't know how to fix the exception, in fact, the browser supports websocket(not raw tcp), so the connection should work.

I remember that there was a similar issue somewhere...

@SeppPenner  Uno have a websocket example Uno Websocket, Maybe you are right, then maybe I can use Uno websocket to replace the MQTTnet socket channel?  is that possible?

I have no idea honestly. Maybe @JanEggers can help you here...

thank you! :) @SeppPenner

https://github.com/chkr1011/MQTTnet/blob/9302e80d7361a2f675abab4f89445655b79bdc1d/Source/MQTTnet/Implementations/MqttWebSocketChannel.cs#L12
this is the mqttnet websocket adapter you can copy it to your project and wrap it around uno websocket instead of the .net websocket

@JanEggers  great

@BenDerPan I'm closing this issue now. If you have further questions or seing some issues with the integration into your project, feel free to contact us here again :)

@SeppPenner  It works now ! thank you!


Support traverse keyword in persist/optimize

Adds support for traverse keyword to persist/optimize, and changes how this is implemented for compute.
The general gist is that we wrap all collection transforms in unpack/repack calls. The pattern is:
collections, repack = unpack(*args)  # extract all collections from arguments
results = transform(collections)     # do something with the collections
return repack(results)               # repackage the results in python collections

Supersedes #3404, fixes dask/distributed#1918.

cc @martindurant, @mrocklin.

Merged.  Thanks for handling this @jcrist !

Woops, I had to take off for a sec and didn't manage to push #3413 in time. Should be good after that.


Update clap and mysql to fix cargo audit

I did a driveby on #15 trying to find something to dunk @thwarted over (nano or bust) but then found myself fixing cargo audit once I was half way done I figured why not finish so here's some free work. I don't use this project nor do I fully know what it does. I do know how to read rust and how to read change logs though.
This PR is updates for clap, mysql and mysql_common to deal with various rustsec issues. Bumping mysql and mysql_common required no changes clap definitely did.
mysql_common somewhere along the way made uuid a non-feature flagged dependency and renamed the time03 feature flag to time in 0.30.
clap updates:

is_present replaced with contains_id
Arg::forbid_empty_values with builder::NonEmptyStringValueParser / builder::PathBufValueParser
replace value_of with get_one::<String>.

See the clap changelog for more if I missed any.
I also threw in dependabot for cargo and github actions that skip patch versions. Should you choose to merge this, you'll see that the new PRs and maybe this will be less work in the future.

I spent a non-trivial amount of time during this change poking at clap to figure out what to replace is_present with, and contains_id only seemed to make sense for more recent versions of clap and I wasn't about to do a full update and remove the use of is_present elsewhere.  There was also some oddity with using the StoreTrue value for it that I don't remember now.  And I was uncomfortable that this was a negated option but didn't have a better idiom at hand.

I spent a non-trivial amount of time during this change poking at clap to figure out what to replace is_present with, and contains_id only seemed to make sense for more recent versions of clap and I wasn't about to do a full update and remove the use of is_present elsewhere. There was also some oddity with using the StoreTrue value for it that I don't remember now. And I was uncomfortable that this was a negated option but didn't have a better idiom at hand.

Yeah. I don't know this repo well enough to say my implementation is fully correct. I recall James disliking clap's derive macro (or whatever preceeded clap's derive macro). I think this is because it increased compile times and binary sizes. I personally 🎵like big binaries and I cannot lie🎵 and would use #[derive(clap::Parser)]


Queueing notifications and using multiple database connections for $notifiable

Laravel Version: 5.4.24
PHP Version: 7.1
Database Driver & Version: MySQL 5.7.18

Description:
I am running into problems when I want to queue a notification by calling notify() on a user fetched through a custom database connection. This doesn't seem to be supported. If the notification is not queue'd everything works fine and the mail is send to the correct user.
Steps To Reproduce:
In routes/web.php I have the following test route:
$router->get('/test', function () {
    // A user with id 14 exists in the 2nd database, not in the 1st (default connection) db
    $user = \App\User::on('mysql-custom')->find(14);
    // dd($user) gives the correct user
    $user->notify(new \App\Notifications\PasswordGenerated('secret'));
});

My notification:
<?php

namespace App\Notifications;

use App\Mail\PasswordGenerated as PasswordGeneratedMailable;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;

class PasswordGenerated extends Notification implements ShouldQueue
{
    use Queueable;

    /**
     * The user's password.
     *
     * @var string
     */
    private $password;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct(string $password)
    {
        $this->password = $password;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new PasswordGeneratedMailable($this->password))->to($notifiable->email);
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

and my mailable:
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class PasswordGenerated extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * The user's password.
     *
     * @var string
     */
    private $password;

    /**
     * Create a new message instance.
     *
     * @param  User $user
     * @return void
     */
    public function __construct(string $password)
    {
        $this->password = $password;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->markdown('emails.accounts.password')
                    ->with(['password' => $this->password]);
    }
}

The email doesn't get send. However, no exceptions are thrown and the notification is processed by the queue (using the database driver) successfully.
Next, changing routes/web.php to the following:
$router->get('/test', function () {
    // A user with id 1 exists in both databases. They have different email addresses
    $user = \App\User::on('mysql-custom')->find(1);
    // dd($user) gives the correct user
    $user->notify(new \App\Notifications\PasswordGenerated('secret'));
});

Now an email does get send. However, it is send to the user with id 1 in the 1st database (default connection) instead of the user I have fetched through \App\User::on('mysql-custom')->find(1).
Once again, when App\Notifications\PasswordGenerated doesn't implement ShouldQueue there is no problem confusing the different db connections and the mail is send to the right user.

Having two different users with the same id in different databases is in itself a problem.
Better solution would be to use a different model for the second database where you set the connection manually

class SecondUser extends User {

    /**
     * The connection name for the model.
     *
     * @var string
     */
    protected $connection;

}

Hmm... I wanted to avoid having to use different user models to be honest. They're essentially identical, just from different db's so seems most logical to have one model instead of maintaining two. But perhaps that is the only option.
Why would users with the same id pose a problem? As long as you use different connections that shouldn't be an issue no? And it still doesn't explain to me why without queue'ing the notification things work perfectly fine.

The Notification class uses the SerializesModles trait which when queued wil only send the model class and the id with the queue.
https://laravel.com/docs/5.4/queues#creating-jobs

In this example, note that we were able to pass an Eloquent model directly into the queued job's constructor. Because of the SerializesModels trait that the job is using, Eloquent models will be gracefully serialized and unserialized when the job is processing. If your queued job accepts an Eloquent model in its constructor, only the identifier for the model will be serialized onto the queue. When the job is actually handled, the queue system will automatically re-retrieve the full model instance from the database. It's all totally transparent to your application and prevents issues that can arise from serializing full Eloquent model instances.

I see. That explains it. I guess I could pass along the db connection and user id to my notification class and then fetch the user from the right db in toMail(). Worth a try. If not, I'll go the two model way. Thanks for the help.

Hmm... So instead of relying on $notifiable I modified my notification by passing along a user id and then fetching the user myself in tomail() on the custom db connection, but it still doesn't work. That doesn't make sense to me. I guess the only way to find out what really is going on is by tracking each step in the notification process. I will give that a go myself. So for now I re-open this

Ok, I have traced down where it goes wrong. It has to do with the notifiable, i.e. the entity you call notify() on, in my case this is:
$user = \App\User::on('mysql-custom')->find(14);
$user->notify(new \App\Notifications\PasswordGenerated('secret'));

In NotificationSender's queueNotification() function this is passed as the first argument to SendQueuedNotifications. There it is "gracefully" serialized and so I end up with an empty Collection of $notifiables.
I am not sure if you can classify this as a bug though. Kinda feels it is in between a conscious design decision and a limitation of the current implementation. Whatever the case may be it is rather unfortunate and unexpected behavior. Personally, I think there should at least be a warning about this in the documentation for Notifications (Sending Notifications section).

Hello, this PR should fix your issue: https://github.com/laravel/framework/pull/19521
But backporting it to 5.4 would be a breaking change, so I'd say that you consider your scenario as a limitation in 5.4
Sorry :)

Ok, thanks very much.


Round off the standard deviation.

Previously, it would print out a huge number of values past the decimal
point. This seems silly to me. This change it to just 2 as a starting point.
(I think ideally in the long term, we should calculate the appropriate
number of significant figures to not be mis-leading. But we can start here.)
Before:
name                                                                   time            std                   iterations
-----------------------------------------------------------------------------------------------------------------------
NonBlockingCondition: notify one, no waiters                           49.0 ns         ±<PHONE_NUMBER>9854937  1000000
NonBlockingCondition: notify all, no waiters                           48.0 ns         ±<PHONE_NUMBER>013594   1000000
NonBlockingCondition: preWait, cancelWait                              62.0 ns         ±<PHONE_NUMBER>555278   1000000

After:
name                                                                   time            std           iterations
---------------------------------------------------------------------------------------------------------------
NonBlockingCondition: notify one, no waiters                           55.0 ns         ± 141.28      1000000
NonBlockingCondition: notify all, no waiters                           48.0 ns         ± 285.49      1000000
NonBlockingCondition: preWait, cancelWait                              63.0 ns         ± 262.61      1000000

How about we print standard deviation in % instead in XX.XX format (i.e., 19.25%) ?
This should make it less likely we round off too much.

New after:
name                                                                         time            std         iterations
-------------------------------------------------------------------------------------------------------------------
AdjacencyList: build a complete graph of size 10                             44533.5 ns      ±  22.26 %  29574
AdjacencyList: build a complete graph of size<PHONE_NUMBER>.0 ns    ±   8.74 %  329
AdjacencyList: build a complete graph of size 1000                           403153815.0 ns  ±   1.20 %  3
AdjacencyList: DFS on oneEdge graph, counting visitor                        1913199.5 ns    ±  11.25 %  766
AdjacencyList: BFS on oneEdge graph, counting visitor                        1597807.5 ns    ±   8.78 %  880
AdjacencyList: Dijkstra on oneEdge graph, counting visitor, constant weight  3328243.5 ns    ±   6.52 %  416

Much better! Just need the right-alignment from https://github.com/google/swift-benchmark/issues/25 ... :-D

LGTM, looks great! 👍


Remove Python 2 leftovers

Inspired by https://github.com/openshift/elliott/pull/320

Codecov Report

Merging #591 (375eafc) into master (1b0f5e4) will increase coverage by 0.28%.
The diff coverage is 38.68%.

@@            Coverage Diff             @@
##           master     #591      +/-   ##
==========================================
+ Coverage   29.83%   30.11%   +0.28%
==========================================
  Files          44       45       +1
  Lines       10632    10835     +203
  Branches     2339     2405      +66
==========================================
+ Hits         3172     3263      +91
- Misses       7242     7339      +97
- Partials      218      233      +15

Impacted Files
Coverage Δ

doozerlib/assertion.py
100.00% <ø> (ø)

doozerlib/brew.py
40.86% <0.00%> (-0.73%)
:arrow_down:

doozerlib/cli/__main__.py
0.00% <0.00%> (ø)

doozerlib/cli/config_plashet.py
0.00% <0.00%> (ø)

doozerlib/cli/get_nightlies.py
0.00% <0.00%> (ø)

doozerlib/cli/images_streams.py
0.00% <0.00%> (ø)

doozerlib/cli/inspect_stream.py
0.00% <0.00%> (ø)

doozerlib/exectools.py
41.14% <ø> (-0.31%)
:arrow_down:

doozerlib/gitdata.py
19.88% <0.00%> (-0.36%)
:arrow_down:

doozerlib/repos.py
40.77% <0.00%> (ø)

... and 13 more

Continue to review full report at Codecov.

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

/lgtm


Adding XMLSchema to the xmlns for the soapenvelope

Hi I was using node-soap to consume some web service using the namespace 'xsd'
but executing queries the server was responding that it doesn't recognize that namespace,
so I just needed to add the following line in the soapenvelope in lib/client.js
I don't know it is possible include it dynamically, anyway it is just a hardcoded line:
"xmlns:xsd="http://www.w3.org/2001/XMLSchema\" " +
And here is the wsdl:
https://www.integracionesqapx.com.mx/wsuniversaldummy/pxuniversal.asmx?WSDL
Thanks

I'm closing this PR as there was no activity for more than half a year now...


How to update?

Add instructions to README on how to update via Git.
If downloading from ZIP, it's a matter of removing the themes/hugo-cite folder and replacing with a fresh download + extraction.

Most likely:
cd themes/hugo-cite
git pull

Git subtree is another good way: https://www.atlassian.com/git/tutorials/git-subtree :+1:


Accessing "SDL_Window" and "SDL_Renderer" Still w/ SDL-GPU

Hi,
I am trying to integrate LibRocket (GUI library) into my engine that uses SDL-GPU.  They have code that integrates with SDL2 but it uses SDL_Window, SDL_Renderer, SDL_SetRenderDrawBlendMode, SDL_RenderDrawPoint, etc. in its implementation.
SDL-GPU seems to replace the SDL_Renderer and SDL_Window with a GPU_Target.
Is there a way to still get access to SDL_Window and SDL_Renderer to be used with SDL_SetRenderDrawBlendMode / SDL_RenderDrawPoint while using SDL-GPU?
Thank you!

Decided to use a different GUI library because I believe LibRocket doesn't support an OpenGL 3+ programmable pipeline.  Going to try and use dear imgui instead which definitely has OpenGL 3+ examples.

Integrating SDL_gpu with librocket takes a bit of work, but it certainly should be possible.  I haven't done it myself, but the rendering part would primarily use GPU_TriangleBatch().  Librocket will generate the triangle data (vertices, indices, texture coordinates...) that you need to render.  See interface docs here:
http://librocket.com/wiki/documentation/C%2B%2BManual/Interfaces#Therenderinterface
On the other hand, I already have some code to work with dear imgui that is not cleaned up yet, but just ask and I'll send it over.  When I do clean it up, it'll go into the SDL_gpu repo and I'll submit a pull request to imgui.

Yes, I have decided to use dear imgui and would love the code you have!!!
Also, dear imgui needs access to the window so the questions above may still be valid!
Thanks so much!

Alright, sent it over.
The window associated with any context target (GPU_Target that has a non-NULL context member, i.e. it renders to a window instead of an image) can be gotten like so:
SDL_Window* window = SDL_GetWindowFromID(target->context->windowID);
Since SDL_gpu does replace SDL_Renderer, it is not advised to mix with SDL_Render* functions.  SDL_gpu calls can do everything that SDL_Renderer does and much more.  See GPU_SetShapeBlending(), GPU_SetShapeBlendMode(), and GPU_Pixel().

Perfect!
I got everything working.  I ended up just using your window access code above along with the boilerplate imgui_impl_sdl_gl3.cpp provided in the imgui SDL2+OpenGL3  example code.  Everything worked perfectly the first time around which is amazing.
However, your other code helped as a comparison to see/understand everything that is going on.  Thank you for sending that over.
Thanks again so much!


Stacked Lexers

Fixed the merge conflicts from Daslch's stale branch.

I would like to see this get in as well, is there any update on when this can be merged?

I would like to see this get in as well, is there any update on when this can be merged?


Android mobile phone lock screen and then open, cant see progress

I'm also running into this same issue. @marlti7 were you able to fix it somehow?

Closing as a duplicate


Skip create step when created == true - closes #4037

Fixes: #4037

This introduced a breaking change to my use case, unfortunately : https://github.com/ansible/molecule/pull/3949/files
I use libvirt to create VMs to run tests on and since creating VMs is slow, I run converge while I develop the role (VM OS is different than my machine's OS, so I need to develop with molecule/libvirt essentially).
Since the change above, converge always runs create and tries to recreate the VMs I already have, although created: true is in the state file.
Please consider this PR to revert that change (and skip create when already created).

Same issue here. I have a molecule scenario executed with Podman. The base image doesn't not come with Python; therefore, I install it in prepare.yml. The first molecule converge worked as expected. However, during subsequent invocations, the create step would execute again but not prepare, resulting a brand-new container without Python. As a result, molecule failed. This defect was introduced by https://github.com/ansible/molecule/pull/3949 and affects version 6.x.

Hey, when can we expect a new version of molecule to be released on pipy with this fix?


Cannot provision k3s cluster using v1.22.4+k3s1

Rancher Server Setup

Rancher version: v2.6.3-rc2
Installation option (Docker install/Helm Chart): docker install

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc):

Proxy/Cert Details:

Information about the Cluster

Kubernetes version: v1.22.4+k3s1
Cluster Type (Local/Downstream):

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): k3s on digital ocean

Describe the bug

When attempting to provision a k3s cluster using v1.22.4+k3s1 (KDM=dev-v2.6-1.22) the cluster is stuck in provisioning state with: Waiting on probes: kube-controller-manager
To Reproduce

Attempt to provision k3s cluster v1.22.4+k3s1.

Result
Gets stuck in provisioning
Expected Result

Should complete
Screenshots

Additional context

If ssh into the node, the cluster appears to be up and running. rancher-system-agent logs loop with:
Nov 30 00:04:23 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:23Z" level=debug msg="[K8s] Enqueueing after 5.000000 seconds"
Nov 30 00:04:23 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:23Z" level=debug msg="[K8s] secret data/string-data did not change, not updating secret"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[K8s] Processing secret maxk122-bootstrap-template-ljjsf-machine-plan in namespace fleet-default at generation 0 with resource version 97405"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[K8s] Calculated checksum to be 8ef8b7a2c7f748cc4c131bd3d89d4ee732313dc2672f3e58535426195f13d1aa"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[K8s] Remote plan had an applied checksum value of 8ef8b7a2c7f748cc4c131bd3d89d4ee732313dc2672f3e58535426195f13d1aa"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[K8s] Applied checksum was the same as the plan from remote. Not applying."
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[K8s] needsApplied was false, not applying"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[K8s] writing an applied checksum value of 8ef8b7a2c7f748cc4c131bd3d89d4ee732313dc2672f3e58535426195f13d1aa to the remote plan"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kubelet) running probe"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kubelet) retrieving existing probe status from map if existing"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-apiserver) running probe"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-apiserver) retrieving existing probe status from map if existing"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe timeout duration: 5 seconds"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe timeout duration: 5 seconds"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-scheduler) running probe"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-scheduler) retrieving existing probe status from map if existing"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe timeout duration: 5 seconds"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-controller-manager) running probe"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-controller-manager) retrieving existing probe status from map if existing"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe timeout duration: 5 seconds"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe output was Get \"http://<IP_ADDRESS>:10252/healthz\": dial tcp <IP_ADDRESS>:10252: connect: connection refused"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting success threshold to 1"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting failure threshold to 2"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe failed"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-controller-manager) writing probe status to map"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe output was ok"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting success threshold to 1"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting failure threshold to 2"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe succeeded"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-scheduler) writing probe status to map"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe output was ok"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting success threshold to 1"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting failure threshold to 2"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe succeeded"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kubelet) writing probe status to map"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe output was ok"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting success threshold to 1"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Setting failure threshold to 2"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="Probe succeeded"
Nov 30 00:04:28 maxk122-pool1-1a015882-gbbfk rancher-system-agent[7274]: time="2021-11-30T00:04:28Z" level=debug msg="[Prober] (kube-apiserver) writing probe status to map"

It appears that since 1.22 has finally deprecated the insecure ports, we need to switch our probes to using the new secure ports.

The existing kube-controller-manager probe hits the insecure port of the kube-controller-manager for healthz on 10252. In K8s 1.22.x, they deprecated this functionality (it no longer listens insecurely on 10252) in favor of --secure-port. We are already setting it to 10257.
The issue is the certificate that is used for the --secure-port serving with kube-controller-manager is not actually exposed anywhere. You can expose it by setting --cert-dir as an argument on the kube-controller-manager, and then proceed to reference that certificate.
I have a few proposed solutions to this:

Turn off kube-controller-manager probes for 2.6.3 and revisit it in 2.6.4
Use Rancher to auto-set --kube-controller-manager-arg=cert-dir=/var/lib/rancher/%s/server/tls/kube-controller-manager so as to have kube-controller-manager write it's cert then edit the probe to reference this cert.
Fix this properly in K3s/RKE2 so that they set --cert-dir for kube-controller-manager by default
Both 2 and 3.

I am +1 on

Fix this properly in K3s/RKE2 so that they set --cert-dir for kube-controller-manager by default

we should probably see if we need to be more specific about certs for any other components, while we're at it?

I am +1 on

Fix this properly in K3s/RKE2 so that they set --cert-dir for kube-controller-manager by default

I think the end fix will have to be 2 and 3, due to release cycles + 2.6.3 being right around the corner. I don't see a problem with redundantly setting the flag, and when rancher provisioned, we expect/want the flag to be set from our source of truth i.e. Rancher so as to prevent users from being able to accidentally break that probe.

Thinking about this some more, we should probably have K3s/RKE2 sign the serving cert for the health probes and populate them into the cert-dir directory it chooses to use.

Just want to add that, as expected, rke2 definitely does hit this issue as well using v1.22.4-rc1+rke2r1

On 2.6-head commit id: e62e1ae

Able to provision EC2 node driver - 1 etcd, 1 cp, 1 worker node using k8s versions:  v1.22.4+rke2r2 and v1.22.4+k3s1
All pods come up Active (System project)


Redo Image Factory v3 transition

Due to HTTP 405 (Method not Allowed) errors apparently from Image Factory, we had to revert using the Image Factory v3 API. See #2018 for the original work and #2392 for the revert. This issue is about correcting problems in the original #2018 work such

Should avoid the aka.ms redirects for the v3 endpoint. We hit problems reaching Image Factory at all yesterday.
Should correct resource IDs for our base non-Marketplace (compute, not gallery) images. Right now, those IDs include /versions/latest but should not.

Must also ensure testing in any PR for this work covers custom images based on both Marketplace and compute images.

Release Note Category

[ ] Feature changes/additions
[ ] Bug fixes
[x] Internal Infrastructure Improvements

Release Note Description
Redid the converstion to the Image Factory v3 API for creating our custom images.

fixed in !38607

done


Hetzner CSI and Cloud Controller Manager are not being installed on v0.5.0

I get this error message at the end when I create a cluster:
Please ensure kubectl is installed and in your PATH.

(I have added enable_ipsec_encryption: true to the config file)
This started to happen on a v0.5.0, while it's working properly on v0.4.8

Uhm as the error suggests it seems that you don't have kubectl in your PATH. The change between 0.4.8 and 0.5.0 is that in 0.4.8 I was using a Ruby gem to apply the manifests for the cloud controller manager, the CSI driver and the system upgrade controller, but that gem doesn't seem to be actively maintained and caused problems with Ruby upgrades.
So I simplified things and am now just using kubectl to apply the relevant manifests. Ensure that kubectl is available in your PATH. Which OS are you on?

I'm on macOS 12.0.1 and I actually used the docker command to create the cluster. So the kubectl should be on the docker image not on my computer.

Good point, I forgot about that detail in the Docker image when building the last one. Can you use the Ruby gem for now? I will update the Docker image as soon as I have a little time.

I ended using the 0.4.8 version and it worked for my usage :)

Cool. I'll let you know when I have updated the Docker image.

Image 0.5.0 has been fixed.


Integration tests: Fix typo in test name

Signed-off-by: Till Maas<EMAIL_ADDRESS>

Coverage remained the same at ?% when pulling 0527da0fc90c5a885345d3502e74a99bc5b8eb33 on tyll:testtypo into d6224a17eaa637ac73404b3b6c764c7bc787c868 on nmstate:master.

Coverage remained the same at ?% when pulling 0527da0fc90c5a885345d3502e74a99bc5b8eb33 on tyll:testtypo into d6224a17eaa637ac73404b3b6c764c7bc787c868 on nmstate:master.

Force merging this trivial change as no other production changes occurred on master.


add PR, HI, AK to map

Maybe this will help: https://github.com/USGS-VIZLAB/gage-conditions/blob/ae2e8a6481676e081a67349ed0333b060399bdcc/scripts/map_preprocess/geo_utils.R#L69-L76

Updating progress today. In my current fork, see this commit, the code appropriately shifts, scales, rotates, and adds our 6 regions that fall outside of our CONUS map. Running scmake("src/assets/anomaly_peaks.svg") and then looking at the SVG (and changing stroke to "black" not "white"), results the following:

Remaining work:

Figure out why my lines are being drawn & connected (though, worried it is a Lindsay computer problem as we discovered here and not a real problem)
Find higher resolution data for PR, VI, GU, and AS.
Add the peaks for these 5 regions

Other thoughts: where do we want American Samoa and Guam to be shifted on our map? I currently have them in the Gulf of Mexico, but maybe that isn't the best place. I need to go glance at other maps and see what other people do.

Here is what the Drought monitor does:

Are the islands scaled to one another or on their own?

Each is scaled on their own

I think the smaller islands need to be at a higher resolution than other shapes. They are so small that when they are getting scaled up they look distorted

A few other layouts I see:

I think the smaller islands need to be at a higher resolution than other shapes. They are so small that when they are getting scaled up they look distorted

yep, totally agree! That is one of the 3 items in the remaining work I noted at the end of that first comment.

I kind of like that last layout the most (except will increase the size of VI, GU, and AS) because it puts them in locations more logical compared to their actual geographic locations relative to CONUS.

Yes I agree re: each of the insets are scaled on their own and have their own centered projection -- I think that's already how Lindsay has it set up?
As for layouts, I personally like the Drought monitor or the first grey map that separate the insets from the main map visually with a box or line, so that it's clear that the direction and distance between the main map and the insets are not meant to be accurate, and that the scale differs between the main map and each of the insets.

We can play around with placement more, but I did incorporate higher-resolution data and shifted to match that last map. I like the drought monitor except that it puts Hawaii and Alaska to the east of CONUS.
Still have those stupid line connections, but please look past those when you view this :)

Agreed that it feels weird to have AK east of CONUS

Also, I think we could simplify AK and CONUS even more to get rid of more of that crunchiness along the coastlines, but I think it's also fine as is.

I've got the points shifting! There was a lot of math that happened this morning :)
With the current state of my branch, I can run this and the following map:
library(sf)
library(dplyr)
source("3_visualize/src/sf_utils_shift.R")

albers <- "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"
usa_sf <- maps::map("usa", fill = TRUE, plot=FALSE) %>%
  sf::st_as_sf() %>%
  st_transform(albers) %>%
  st_buffer(0)
oconus_sf <- build_oconus_sf(proj_str = albers)
sites_sf <- scmake("gw_sites_sf_shifted")

par(mar = c(0,0,0,0))
plot(st_geometry(oconus_sf), col = "white", border = NA) # Get the margins set appropriately
plot(st_geometry(usa_sf), add=T, col="lightgrey", border = NA)
plot(st_geometry(oconus_sf), add=T, col="lightgrey", border = NA)
plot(st_geometry(sites_sf), add=T, pch=16, cex=0.5, col = "blue")


Examples added in the places_guide notebook (#143)

First of all, thank you for creating and maintaining this handy package! I added some examples to showcase the PlaceAPI. Let me know whether this is anywhere close to what you had in mind! Feedback and suggestions always appreciated :–)

This is super cool @chrstnbwnkl!!! Thanks for contributing. This looks good to me, the only thing I'd ask to add further is to hook the notebook into the docs by adding it to the list at:

https://github.com/geopandas/contextily/blob/master/docs/index.rst

I'd problably place it after the general intro?


Duplication in audio events from filter endpoint

Problem: duplicated audio_events returned by filter to /audio_evemts/filter.
This may be related to a bug reported that concerned the annotation download links. Not confirmed however.
POST http://staging.ecosounds.org/audio_events/filter

Body:
{"filter": {"isReference": {"eq": true}}, "paging": {"items": 10, "page": 1}}

Result:
{
    "meta": {
        "status": 200,
        "message": "OK",
        "filter": {
            "is_reference": {
                "eq": true
            }
        },
        "sorting": {
            "order_by": "created_at",
            "direction": "desc"
        },
        "paging": {
            "page": 1,
            "items": 10,
            "total": 683,
            "max_page": 69,
            "current": "http://staging.ecosounds.org/audio_events/filter?direction=desc&items=10&order_by=created_at&page=1",
            "previous": null,
            "next": "http://staging.ecosounds.org/audio_events/filter?direction=desc&items=10&order_by=created_at&page=2"
        }
    },
    "data": [
        {
            "id": 124730,
            "audio_recording_id": 234234,
            "start_time_seconds": 99.6131,
            "end_time_seconds": 103.0728,
            "low_frequency_hertz": 5900.0977,
            "high_frequency_hertz": 10034.4727,
            "is_reference": true,
            "creator_id": 1,
            "created_at": "2014-06-03T16:28:12.426+10:00",
            "updated_at": "2014-06-03T16:46:19.314+10:00",
            "taggings": [
                {
                    "id": 321097,
                    "audio_event_id": 124730,
                    "tag_id": 3905,
                    "created_at": "2014-06-03T16:46:02.170+10:00",
                    "updated_at": "2014-06-03T16:46:02.170+10:00",
                    "creator_id": 1,
                    "updater_id": 1
                }
            ]
        },
        {
            "id": 124730,
            "audio_recording_id": 234234,
            "start_time_seconds": 99.6131,
            "end_time_seconds": 103.0728,
            "low_frequency_hertz": 5900.0977,
            "high_frequency_hertz": 10034.4727,
            "is_reference": true,
            "creator_id": 1,
            "created_at": "2014-06-03T16:28:12.426+10:00",
            "updated_at": "2014-06-03T16:46:19.314+10:00",
            "taggings": [
                {
                    "id": 321097,
                    "audio_event_id": 124730,
                    "tag_id": 3905,
                    "created_at": "2014-06-03T16:46:02.170+10:00",
                    "updated_at": "2014-06-03T16:46:02.170+10:00",
                    "creator_id": 1,
                    "updater_id": 1
                }
            ]
        },
        {
            "id": 124727,
            "audio_recording_id": 234234,
            "start_time_seconds": 54.2881,
            "end_time_seconds": 54.7989,
            "low_frequency_hertz": 6503.0273,
            "high_frequency_hertz": 7967.2852,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-06-03T14:47:26.188+10:00",
            "updated_at": "2014-06-03T14:50:53.976+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124727,
            "audio_recording_id": 234234,
            "start_time_seconds": 54.2881,
            "end_time_seconds": 54.7989,
            "low_frequency_hertz": 6503.0273,
            "high_frequency_hertz": 7967.2852,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-06-03T14:47:26.188+10:00",
            "updated_at": "2014-06-03T14:50:53.976+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124725,
            "audio_recording_id": 234234,
            "start_time_seconds": 65.6889,
            "end_time_seconds": 68.8468,
            "low_frequency_hertz": 818.2617,
            "high_frequency_hertz": 2368.6523,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-06-03T14:09:24.324+10:00",
            "updated_at": "2014-06-03T14:54:08.845+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124725,
            "audio_recording_id": 234234,
            "start_time_seconds": 65.6889,
            "end_time_seconds": 68.8468,
            "low_frequency_hertz": 818.2617,
            "high_frequency_hertz": 2368.6523,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-06-03T14:09:24.324+10:00",
            "updated_at": "2014-06-03T14:54:08.845+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124724,
            "audio_recording_id": 234234,
            "start_time_seconds": 72.7478,
            "end_time_seconds": 80.5264,
            "low_frequency_hertz": 5469.4336,
            "high_frequency_hertz": 7795.0195,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-06-03T13:38:28.206+10:00",
            "updated_at": "2014-06-03T14:54:33.227+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124724,
            "audio_recording_id": 234234,
            "start_time_seconds": 72.7478,
            "end_time_seconds": 80.5264,
            "low_frequency_hertz": 5469.4336,
            "high_frequency_hertz": 7795.0195,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-06-03T13:38:28.206+10:00",
            "updated_at": "2014-06-03T14:54:33.227+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124723,
            "audio_recording_id": 234234,
            "start_time_seconds": 0.9288,
            "end_time_seconds": 5.5728,
            "low_frequency_hertz": 0,
            "high_frequency_hertz": 6158.4961,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-05-29T09:34:05.845+10:00",
            "updated_at": "2014-06-03T16:27:55.920+10:00",
            "taggings": [
            ]
        },
        {
            "id": 124723,
            "audio_recording_id": 234234,
            "start_time_seconds": 0.9288,
            "end_time_seconds": 5.5728,
            "low_frequency_hertz": 0,
            "high_frequency_hertz": 6158.4961,
            "is_reference": true,
            "creator_id": 9,
            "created_at": "2014-05-29T09:34:05.845+10:00",
            "updated_at": "2014-06-03T16:27:55.920+10:00",
            "taggings": [
            ]
        }
    ]
}

This is due to the permissions queries (e.g. https://github.com/QutBioacoustics/baw-server/blob/develop/lib/modules/access/query.rb#L196 ). Any query that joins sites to projects, where a site is in more than one project, will have as many duplicates as there are projects.
Solution is to change the permission queries so the results are not duplicated.


Same problem

Does not work, I have a greyed window. Not run as .vbs under chrome. I've tried running as administrator, no change. I have 32 Go of RAM and RTX3060.

Hi have you tried both the .vbs and .exe file? Also, where is Chrome installed? It's important for the .vbs file. Is it in 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe' ?
Thanks!