Reintroduce the NFT Application with Native Assets

Type of change

New Application

Changes
The following changes have been made:

Reintroduces the NFT App using Fuel Native Assets
Uses the newly introduced standards
Implements the new token library
Documents the use of libraries and standards for developers to get an understanding of their use
CI now runs forc test as well as cargo test

Notes

A separate application for a simple native token is also in development

Related Issues

Closes #713

CI is not having a good time today

CI is not having a good time today

CI picked a fight with the wrong dev today 💪


story-joe-reviewed.txt

make-retina-avatars

From b271484b60be64433cdc340a0c147eeea3e559e4 Mon Sep 17 00:00:00 2001
From<EMAIL_ADDRESS><EMAIL_ADDRESS>Date: Sat, 17 Feb 2018 15:54:00 +0400
Subject: [PATCH 1/4] Create CODE_OF_CONDUCT.md

CODE_OF_CONDUCT.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 CODE_OF_CONDUCT.md
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..415d320
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,46 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at<EMAIL_ADDRESS>The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
From 8735e3ce5419c4ae0066da7a336a433706f5efb3 Mon Sep 17 00:00:00 2001
From<EMAIL_ADDRESS><EMAIL_ADDRESS>Date: Sat, 17 Feb 2018 15:56:45 +0400
Subject: [PATCH 2/4] Create LICENSE

LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 201 insertions(+)
create mode 100644 LICENSE
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@

                            Apache License

                      Version 2.0, January 2004

                   http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

Definitions.

 "License" shall mean the terms and conditions for use, reproduction,

 and distribution as defined by Sections 1 through 9 of this document.

 "Licensor" shall mean the copyright owner or entity authorized by

 the copyright owner that is granting the License.

 "Legal Entity" shall mean the union of the acting entity and all

 other entities that control, are controlled by, or are under common

 control with that entity. For the purposes of this definition,

 "control" means (i) the power, direct or indirect, to cause the

 direction or management of such entity, whether by contract or

 otherwise, or (ii) ownership of fifty percent (50%) or more of the

 outstanding shares, or (iii) beneficial ownership of such entity.

 "You" (or "Your") shall mean an individual or Legal Entity

 exercising permissions granted by this License.

 "Source" form shall mean the preferred form for making modifications,

 including but not limited to software source code, documentation

 source, and configuration files.

 "Object" form shall mean any form resulting from mechanical

 transformation or translation of a Source form, including but

 not limited to compiled object code, generated documentation,

 and conversions to other media types.

 "Work" shall mean the work of authorship, whether in Source or

 Object form, made available under the License, as indicated by a

 copyright notice that is included in or attached to the work

 (an example is provided in the Appendix below).

 "Derivative Works" shall mean any work, whether in Source or Object

 form, that is based on (or derived from) the Work and for which the

 editorial revisions, annotations, elaborations, or other modifications

 represent, as a whole, an original work of authorship. For the purposes

 of this License, Derivative Works shall not include works that remain

 separable from, or merely link (or bind by name) to the interfaces of,

 the Work and Derivative Works thereof.

 "Contribution" shall mean any work of authorship, including

 the original version of the Work and any modifications or additions

 to that Work or Derivative Works thereof, that is intentionally

 submitted to Licensor for inclusion in the Work by the copyright owner

 or by an individual or Legal Entity authorized to submit on behalf of

 the copyright owner. For the purposes of this definition, "submitted"

 means any form of electronic, verbal, or written communication sent

 to the Licensor or its representatives, including but not limited to

 communication on electronic mailing lists, source code control systems,

 and issue tracking systems that are managed by, or on behalf of, the

 Licensor for the purpose of discussing and improving the Work, but

 excluding communication that is conspicuously marked or otherwise

 designated in writing by the copyright owner as "Not a Contribution."

 "Contributor" shall mean Licensor and any individual or Legal Entity

 on behalf of whom a Contribution has been received by Licensor and

 subsequently incorporated within the Work.

Grant of Copyright License. Subject to the terms and conditions of

 this License, each Contributor hereby grants to You a perpetual,

 worldwide, non-exclusive, no-charge, royalty-free, irrevocable

 copyright license to reproduce, prepare Derivative Works of,

 publicly display, publicly perform, sublicense, and distribute the

 Work and such Derivative Works in Source or Object form.

Grant of Patent License. Subject to the terms and conditions of

 this License, each Contributor hereby grants to You a perpetual,

 worldwide, non-exclusive, no-charge, royalty-free, irrevocable

 (except as stated in this section) patent license to make, have made,

 use, offer to sell, sell, import, and otherwise transfer the Work,

 where such license applies only to those patent claims licensable

 by such Contributor that are necessarily infringed by their

 Contribution(s) alone or by combination of their Contribution(s)

 with the Work to which such Contribution(s) was submitted. If You

 institute patent litigation against any entity (including a

 cross-claim or counterclaim in a lawsuit) alleging that the Work

 or a Contribution incorporated within the Work constitutes direct

 or contributory patent infringement, then any patent licenses

 granted to You under this License for that Work shall terminate

 as of the date such litigation is filed.

Redistribution. You may reproduce and distribute copies of the

 Work or Derivative Works thereof in any medium, with or without

 modifications, and in Source or Object form, provided that You

 meet the following conditions:

 (a) You must give any other recipients of the Work or

     Derivative Works a copy of this License; and

 (b) You must cause any modified files to carry prominent notices

     stating that You changed the files; and

 (c) You must retain, in the Source form of any Derivative Works

     that You distribute, all copyright, patent, trademark, and

     attribution notices from the Source form of the Work,

     excluding those notices that do not pertain to any part of

     the Derivative Works; and

 (d) If the Work includes a "NOTICE" text file as part of its

     distribution, then any Derivative Works that You distribute must

     include a readable copy of the attribution notices contained

     within such NOTICE file, excluding those notices that do not

     pertain to any part of the Derivative Works, in at least one

     of the following places: within a NOTICE text file distributed

     as part of the Derivative Works; within the Source form or

     documentation, if provided along with the Derivative Works; or,

     within a display generated by the Derivative Works, if and

     wherever such third-party notices normally appear. The contents

     of the NOTICE file are for informational purposes only and

     do not modify the License. You may add Your own attribution

     notices within Derivative Works that You distribute, alongside

     or as an addendum to the NOTICE text from the Work, provided

     that such additional attribution notices cannot be construed

     as modifying the License.

 You may add Your own copyright statement to Your modifications and

 may provide additional or different license terms and conditions

 for use, reproduction, or distribution of Your modifications, or

 for any such Derivative Works as a whole, provided Your use,

 reproduction, and distribution of the Work otherwise complies with

 the conditions stated in this License.

Submission of Contributions. Unless You explicitly state otherwise,

 any Contribution intentionally submitted for inclusion in the Work

 by You to the Licensor shall be under the terms and conditions of

 this License, without any additional terms or conditions.

 Notwithstanding the above, nothing herein shall supersede or modify

 the terms of any separate license agreement you may have executed

 with Licensor regarding such Contributions.

Trademarks. This License does not grant permission to use the trade

 names, trademarks, service marks, or product names of the Licensor,

 except as required for reasonable and customary use in describing the

 origin of the Work and reproducing the content of the NOTICE file.

Disclaimer of Warranty. Unless required by applicable law or

 agreed to in writing, Licensor provides the Work (and each

 Contributor provides its Contributions) on an "AS IS" BASIS,

 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

 implied, including, without limitation, any warranties or conditions

 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

 PARTICULAR PURPOSE. You are solely responsible for determining the

 appropriateness of using or redistributing the Work and assume any

 risks associated with Your exercise of permissions under this License.

Limitation of Liability. In no event and under no legal theory,

 whether in tort (including negligence), contract, or otherwise,

 unless required by applicable law (such as deliberate and grossly

 negligent acts) or agreed to in writing, shall any Contributor be

 liable to You for damages, including any direct, indirect, special,

 incidental, or consequential damages of any character arising as a

 result of this License or out of the use or inability to use the

 Work (including but not limited to damages for loss of goodwill,

 work stoppage, computer failure or malfunction, or any and all

 other commercial damages or losses), even if such Contributor

 has been advised of the possibility of such damages.

Accepting Warranty or Additional Liability. While redistributing

 the Work or Derivative Works thereof, You may choose to offer,

 and charge a fee for, acceptance of support, warranty, indemnity,

 or other liability obligations and/or rights consistent with this

 License. However, in accepting such obligations, You may act only

 on Your own behalf and on Your sole responsibility, not on behalf

 of any other Contributor, and only if You agree to indemnify,

 defend, and hold each Contributor harmless for any liability

 incurred by, or claims asserted against, such Contributor by reason

 of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

 To apply the Apache License to your work, attach the following

 boilerplate notice, with the fields enclosed by brackets "[]"

 replaced with your own identifying information. (Don't include

 the brackets!)  The text should be enclosed in the appropriate

 comment syntax for the file format. We also recommend that a

 file or class name and description of purpose be included on the

 same "printed page" as the copyright notice for easier

 identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

From 3d667b041018f0b55a25e45856c7dbc96060b064 Mon Sep 17 00:00:00 2001
From<EMAIL_ADDRESS><EMAIL_ADDRESS>Date: Sat, 17 Feb 2018 15:59:49 +0400
Subject: [PATCH 3/4] Create CONTRIBUTING.md

CONTRIBUTING.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..23dcc70
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1 @@
+#make-retina-avatars
From 13c86ff91f1ec5a684ab876fd792fc6716e5c25e Mon Sep 17 00:00:00 2001
From<EMAIL_ADDRESS><EMAIL_ADDRESS>Date: Sat, 17 Feb 2018 21:15:51 +0400
Subject: [PATCH 4/4] Create PULL_REQUEST_TEMPLATE.md

PULL_REQUEST_TEMPLATE.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 PULL_REQUEST_TEMPLATE.md
diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..0337147
--- /dev/null
+++ b/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1 @@
+# make-retina-avatars

Hello-World


User Authentication + Dashboard Access with Improved Navigation and Display

Key Changes:

User Access Control:

Configured URL patterns for user registration and login endpoints.
Restricted access to the patient dashboard using the @login-required decorator so that only authenticated users can view sensitive HIPAA information.
Improved session management for secure user interactions.

Improved User Experience:

Modified the navigation bar to display 'Logout' after user login.
Changed 'Log In/Register' to 'Logout' when authenticated, redirecting to home on logout.
Created a welcome message that displays the username with the first letter capitalized on log-in
Updated the login page to provide clear error handling for failed login attempts.

Closing PR, splitting into two separate PRs (styling and auth)


Future Road Map

Hi everyone!
Since the inception of pdfminer.six, a lot of improvements have been made, and several issues have been fixed. I would first like to thank every contributor for having kept this project alive! We are all well aware of the difficulties of parsing PDF documents, and I am sure pdfminer.six has made it easier  for developers to extract information from PDFs.
But, there are more issues cropping up, and a lot of PRs are pending as well. Documentation, too, is pending. With the increase in these incomplete tasks, it is time that we decide on how to take this project forward. There needs to be a road map created for the future development of this project. It is not necessary to have people completely dedicated to it, but we at least need to create some specific targets / goals, so that the project becomes more concrete and we can ensure its stability.
For starters, I have reached out to an audience through the dev.to platform - dev.to  so that more people can become aware of this wonderful project, and start contributing.
I myself am new to open source, and I have been the admin of this project for sometime. Sadly, I haven't been able to give it much time, but I am sure that if we can make a good plan for the future of this project, the quality of the project can be improved. I would LOVE to hear your thoughts on this!
Update - I have created a Gitter chatroom for having discussions regarding the project.

Things we could focus on
This is just a list of major things we can do.

Fix bugs and add tests
Most open issues are about bugs in pdfminer (59). Most of them are small, specific and disjoint. It is also a great opportunity to extend the test suite and consequently making it easier to add new features. The goal is to zero known bugs!

Improve documentation for users
Some of the issues are about adding documentation (5) or are actually questions on how to use pdfminer (17). StackOverflow also has many questions on how to use pdfminer. I know from my own experience that using pdfminer is confusing at first. Creating a place with up-to-date documentation for most basic usage scenario's will help enormously. The goal is to make it pleasant for developpers that are new to pdfminer to do basic things with it!

Define stable high-level entry points (i.e. an API)
Currently, pdfminer does not have a stable and easy-to-use API. Most code examples show the use of five or more classes from pdfminer to something simple as extracting text from a pdf. I think that having a set of well-defined functions/classes that can handle most basic tasks, make using pdfminer easier and also more consistent (through time, and by different people). The goal is to create an API that is stable so that we can change the internals with no (or less) people noticing it.

Add new features
Some of the issues are about "enhancing" pdfminer (20), e.g. adding new features or changing default values. I think pdfminer already has many features and that most feature request can wait a while.

Improve code documentation
...

Drop Python2 support
...

Introduce best open-source practices
Like using semver, keeping the changelog up to date, use git large-file-storage, automate release process using travis

Where to start
....
(I will finish this post later on)

This week I will work on README.md and read-the-docs documentation.

Since python 2 is dead, is there a way to merge this project with pdfminer and pdfminer3, to prevent duplicate work?

A quote from @igormp:

we've discussed it before, and sadly it doesn't seem like it's possible. pdfminer3 seems to be abandoned, and euske seems to have no interest in merging both projects.

A small addition to what @pietermarsman already mentioned
I think documenting the code and improving read-the-docs is one of the most important things.
After using this library for more than a year, I noticed most people are using the library (including myself) by Frankenstein-ing the code from read-the-docs tutorials and StackOverflow answers without completely understanding what each class/method is doing.
We should start by explaining all the methods and classes used in the Tutorial demos. That will solve many problems people face by relating the errors and their understanding of the library.
Being new to open source and this code base, I'll start contributing by helping with the issues and trying to improve the documentation.

I myself am new to open source, and I have been the admin of this project for sometime. Sadly, I haven't been able to give it much time, but I am sure that if we can make a good plan for the future of this project, the quality of the project can be improved. I would LOVE to hear your thoughts on this! Update - I have created a Gitter chatroom for having discussions regarding the project.

I would much prefer using github discussions instead of a chatroom. That way the discussions are part of the project. The wiki could also be used to capture the results of the discussion and the resulting roadmap.

I would much prefer using github discussions instead of a chatroom. That way the discussions are part of the project. The wiki could also be used to capture the results of the discussion and the resulting roadmap.

IIRC, the discussions feature wasn't a thing back then. Seeing how the gitter isn't that active, I guess that would be a good idea in order to properly organize any discussion into threads without needing to search through all of the chatroom history.

I would like to update the current documentation of pdf miner, but whom should I tag for PR approval? it seems this repo is dormant for months... if anybody is maintaining it, please mention them

Hi @vilabho,
I'm the dormant maintainer with merge permissions. I've been meaning to do some work last months / year but haven't got to it. Help on proper documentation is very much appreciated.

IIRC, the discussions feature wasn't a thing back then. Seeing how the gitter isn't that active, I guess that would be a good idea in order to properly organize any discussion into threads without needing to search through all of the chatroom history.

The chatroom doesn't actually seem to exist anymore! So searching its history is no longer an option :(
But more on topic ... I have been submitting PRs to pdfplumber  to properly support tagged PDFs that should really be features in pdfminer.six, e.g. https://github.com/jsvine/pdfplumber/pull/961 and https://github.com/jsvine/pdfplumber/pull/963.  The reason I haven't done this is that it doesn't appear that pdfminer.six will be maintained at this point, so it doesn't seem worthwhile to put in the extra effort to create a fork/PR that can't actually be depended upon in the foreseeable future.
Is there any possibility that bugfixes, optimizations, and documentation enhancements will be merged at any point soon, let alone new features?

Long story short: we are looking for new maintainers
@dhdaines I am sorry that I was not more active in the last years. Unfortunately, I cannot be as active as I was when I started as a maintainer op pdfminer.six. The current situation is much like when I took over from @goulu.
For the future of pdfminer.six it would be very beneficial if we had a maintainer again with time and energy to guide this project. I'm tagging all potential candidates below. But feel free to respond here as well if you are not in the list.
Right now there are 4 owners:

@euske, the original creator of https://github.com/euske/pdfminer
@pudo
@goulu
and me

There are also 5 other members of the pdfminer.six organization:

@Daniel-KM
@jcushman
@jstockwin
@side2k
@tataganesh

There are also some people that contributed more than once (all 3 commits or more):

@Cybjit
@fakabbir
@cathalgarvey
@timb07
@0xabu
@mduggan
@pquentin
@vstoykov
@jsvine
@estshorter
@igormp
@sergei-maertens
@orangain
@tongbaojia
@sschuberth

(Have not thought of a procedure for picking a new maintainer yet).

I'm sorry, but I don't use the project anymore nor do I have time to step in. Good luck finding a candidate though!

Long story short: we are looking for new maintainers
@dhdaines I am sorry that I was not more active in the last years. Unfortunately, I cannot be as active as I was when I started as a maintainer op pdfminer.six. The current situation is much like when I took over from @goulu.

Thank you for the quick reply... as the maintainer of a rather old project I totally understand!
I think the underlying question is whether the project is still relevant enough and used enough to be maintained - I have to admit that I only actually use it via pdfplumber which has a somewhat more Pythonic API while still giving low-level access to the PDF structure.
Since there are a variety of other options for high-level manipulation and text extraction (if you only want text...) from PDFs, I wonder if it would make sense to simply merge the two projects.

FWIW, I use pdfminer every day; it's still been the only PDF library I've encountered which attempts to account accurately for whitespace and actual page position of text elements.

Hi happy to say it's still incredibly relevant pdfminer.six is incredibly useful for pdf parsing with a permissive license which most other libraries don't have, we still use it daily

FWIW, I use pdfminer every day; it's still been the only PDF library I've encountered which attempts to account accurately for whitespace and actual page position of text elements in a consistent way. Sometimes the structured data you need is buried in a PDF, and you don't have an alternative source...

Yes, exactly - from what I've seen most PDF libraries work hard to hide the hideous, horrible complexity of the PDF format from you, which is fine if you just want to dump a load of text into a large language model, not so great if you want to use layout information.  This, plus pure-Python and permissive license, make pdfminer (and by extension pdfplumber) relevant in my opinion.
I would be willing to help out with maintenance as well.  I could also definitely contribute some improvements to documentation and performance.

The CI is currently broken - this might be the first area of improvement to make sure committing may be done in a way that doesn't break the current state of affairs see https://github.com/pdfminer/pdfminer.six/actions/runs/6793184760.  If you invite me i might try some fixes that get the CI working again e.g. simple things such as code formatting.

Getting the CI working again should be something which can be ensured on a fork and then submitted as a PR. If there really is some ongoing activity on this repository, merging the CI fixes first from the maintainer side is still possible - no need to directly grant you write permissions.

Getting the CI working again should be something which can be ensured on a fork and then submitted as a PR. If there really is some ongoing activity on this repository, merging the CI fixes first from the maintainer side is still possible - no need to directly grant you write permissions.

Looks like it's mainly a case of looking for obsolete Python versions on Ubuntu latest.  I'll take a look right now on my fork.

Well, it's a bit more than just Python versions, because there's an unversioned dependency on black among other things.  Working on this now here: https://github.com/pdfminer/pdfminer.six/pull/921

And now CI passes: https://github.com/pdfminer/pdfminer.six/actions/runs/6883805593?pr=921
I did this with the minimal amount of code changes, but there are things that will need to be fixed so we can actually use the latest pip and setuptools for instance.  They should go in a separate PR.
Now the $921 question!  Can someone merge this? @pietermarsman ?

A secondary PR to also fix building with current pip/setuptools (in Python 3.12): #923

Thanks @dhdaines for the work! I merged #921 and will try to look at #923 in the coming days.

@WolfgangFahl I'm positive to new contributors, but hesitant to handing out permissions quickly. I see you did not contribute to issues or PR's, that's a great start for any contributor. From your profile it looks like you are an active coder, and we could definitely benefit from your knowledge when triaging issues and PR's.
For PR's I prefer to have at least one review, and not commit directly to master.

@pietermarsman thanks for looking into my offer again. It was an if sentence and the decision was not to invite me. I accepted that decision.

Yes, I can build setuptools integration and also with new python pypi trusted publishers It's now very easy to build python packages with github workflow automations. But for a change we eliminate setuptools and implement python new standard packaging procedures using hatchling. From now on I will give my hand and support this package and make sure this as a new standard for python pdf users.

A secondary PR to also fix building with current pip/setuptools (in Python 3.12): #923

Yes, I can build setuptools integration and also with new python pypi trusted publishers It's now very easy to build python packages with github workflow automations. But for a change we eliminate setuptools and implement python new standard packaging procedures using hatchling. From now on I will give my hand and support this package and make sure this sets a new standard for python pdf users.

Hi, I want to check if pdfminer.six is using any API under the hood for processing PDF, or does everything happen in local code? Please comment if someone knows. I appreciate any help you can provide.

As you can see from having a look at the dependencies and the code, pdfminer.six implements its own PDF parser and API. No remote tools are required to run it, although it has some dependencies of course.

Thank you @FriedrichFroebel for your quick response. I am thinking in terms of production, I do not want my PDF or PDF data to go anywhere for processing, expecting to happen everything within my environment.


fix: skip sources when their parent source failed

Fix #285
When a source, referenced through a template function {{ source `<source id>` }} on another source, is failing,
then the "children" sources are now skipped with an error message.
No worry for conditions: if any source fail, then the condition are never run.
Test
To test this pull request, you can run the following commands:
$ cat .tmp/updatecli.yaml
sources:
  parentSource:
    kind: shell
    spec:
      command: ls /titi
  childSource:
    kind: shell
    depends_on:
      - parentSource
    spec:
      command: echo CHILD-{{ source "parentSource" }}
target:
  printResult:
    kind: shell
    sourceID: childSource
    spec:
      command: echo

$ go build -o ./dist/updatecli && ./dist/updatecli --debug diff -c .tmp/updatecli.yaml

example of output:
SOURCES
=======

parentSource
------------
The shell 🐚 command "ls /titi" exited on error (exit code 1) with the following output:
----
----

command stderr output was:
----
ls: /titi: No such file or directory

----
ERROR: ✗ Shell command exited on error.
Pipeline "UPDATECLI.YAML" failed
Skipping due to:
        "sources stage:\t\"template: cfg:25:35: executing \\\"cfg\\\" at <source \\\"parentSource\\\">: error calling source: Parent source \\\"parentSource\\\" failed\"\n"
sources stage:  "template: cfg:25:35: executing \"cfg\" at <source \"parentSource\">: error calling source: Parent source \"parentSource\" failed"

=============================

REPORTS:

✗ UPDATECLI.YAML:
        Sources:
                - [childSource] (shell)
                ✗ [parentSource] (shell)
        Target:

Additional Information
Tradeoff

Potential improvement

I think you are solving half of the problem here. I see two scenarios that we need to cover

Source B that depends on Source A with templating involved which is solved by this PR 🎉
Source B that depends on Source A without templating.

In the second scenario, I think before executing a source, we need to validate that sources listed in the dependency list succeeded.
Just before this line
Something like
for _, dependedSource := range s.dependsOn {
    if p.Sources[dependencySource].Result == result.Failure {
    // skipping source as depended source already failed
   }
}

I think you are solving half of the problem here. I see two scenarios that we need to cover
1. Source B that depends on Source A with templating involved which is solved by this PR 🎉

2. Source B that depends on Source A without templating.

In the second scenario, I think before executing a source, we need to validate that sources listed in the dependency list succeeded. Just before this line
Something like
for _, dependedSource := range s.dependsOn {
    if p.Sources[dependencySource].Result == result.Failure {
    // skipping source as depended source already failed
   }
}

Good catch, thanks! Implemented (same idea with the loop, sligthly different if cases) WDYT?

Let me rebase @olblak (in the next 5 min)

@olblak ready to review :)

@olblak thanks for the review. I've answered to your 2 elements: both are outside of the scope of the PR but are legit questions (and worth an issue).
I'm merging (as it's expected to be minor) since I got your approval, don't hesitate to open issues on the topic, or revert the PR if you see something we missed :)


Questions about training casia-webface dataset

I'm using your InceptionResnet.yaml to train clean casia-webface, but got 0% acc, and 50%~55% acc when only using 50 num_classes of the same casia-webface dataset. Is the resullts reasonable?

That is not reasonable. If you are still facing the problem, please share more details.


Add context values to clients

Add context values to clients. This adds support for ContextValues in clients via CallOptions and Interceptors:
import { ElizaService } from "gen/...";
import { createPromiseClient } from "@connectrpc/connect";
import transport from "./transport.js";
import kUser from "user-context.js";

const client = createPromiseClient(ElizeService, trasport);

await client.say({ sentence: "Hi" }, { values: createContextValues().set(kUser, { ... }) });

Which can be accessed in an interceptor:
const tokenInterceptor = (next) => {
    return (req) => {
           req.header.set("Authorization", `Bearer ${req.values.get(kUser).token}`);
           return next(req);
    };
};

Love the simplicity. My one tiny nitpick is that the key on the Request object is just values, which on first read feels like it's some dictionary representation of the content of the request. Perhaps calling it context instead? I guess values just feels a touch generic.

Perhaps calling it context instead? I guess values just feels a touch generic.

I also prefer that, but a potential problem I see is that when we implement server-side interceptors, one of the possible designs is to just reuse the interceptor types that we use on the client. context could be confusing to users as they might expect HandlerContext.
If an alternate design for interceptors is possible then I don't see a problem with naming this context. My efforts to get TS to work have been unsuccessful so far I tried a couple of designs and the ones we have for the client seem the most promising but nevertheless we can wait until at least we finalize the design

I changed the name to contextValues I also updated UniversalServerRequest. The only place it is called values is on HandlerContext.


[Android Studio] Unthemed composable preview

Hi,
In Android studio there's the ability to preview composable functions. The window the previews are displayed on appears to be missed by the catppuccin theme.

Hiya 👋
Unfortunately, I'm in the same situation as @nekowinston as described in https://github.com/catppuccin/jetbrains/issues/51#issuecomment-1422265638. I'd really appreciate it if someone else (or yourself) is able to figure out how to theme Android Studio properly.


#146, query for fetching organization tasks

Code is good, but we have already merged this feature from another PR.


Traceback (most recent call last):   File "C:\Downloads\skribbl-spambot-template-main\skribbl-spambot-template-main\bot.py", line 1, in      import pyppeteer ModuleNotFoundError: No module named 'pyppeteer'

Traceback (most recent call last):
File "C:\Downloads\skribbl-spambot-template-main\skribbl-spambot-template-main\bot.py", line 1, in
import pyppeteer
ModuleNotFoundError: No module named 'pyppeteer'  But i have the module, all of them.

are you using pycharm or any IDE? do you have any other versions of python installed? in some cases, pip installs python packages in the wrong python directory.

this isnt a problem with my script. it's probably a python configuration issue that can be solved with a few google searches.


MQTT RawMessage update

What does this do?
It fixes MQTT RawMessage, caused by #567
Which issue(s) does this PR fix/relate to?
Related to  #519  should close #586
List any changes that modify/break current functionality
NA
Have you included tests for your changes?
No
Did you document any new/modified functionality?
NA
Notes

Codecov Report

Merging #587 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #587      +/-   ##
==========================================
- Coverage   87.13%   87.11%   -0.03%
==========================================
  Files          62       62
  Lines        3437     3391      -46
==========================================
- Hits         2995     2954      -41
+ Misses        300      298       -2
+ Partials      142      139       -3

Impacted Files
Coverage Δ

bootstrap/postgres/configs.go
75.77% <0%> (-2.97%)
:arrow_down:

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 94574e3...532851c. Read the comment docs.


Enable regeneration after a user generates a client or plugin and without closing the description

Plugins and API Clients are very much live context that can be edited at any time to add new feature. If it's still selected in the API explorer, I'd love to be able to add a new path and simply regen, like I can with the code lens.

After generating the client/plugin I would also expect that the "API Explorer" would be "reloaded" and the name of the client/plugin would be shown there. Related and maybe dependent of the https://github.com/microsoft/kiota/issues/4720


[BUG] showAllIps not showing all IPs

General description of bug:

What happened: when i connect to vpn using openvpn command i dont see my ip in localip and when i'm using the kali network manneger to connect to the vpn i do see it but every time i see only 1 ip even when i configured the showallips like:

        {
            "type": "localip",
            "showPrefixLen": false,
            "showAllIps": true,
            "compact": true,
            "outputColor": "cyan"
        },

Also tried with and without the '"compact": true,'

What should happen: show all IPs including the vpn ip

Fastfetch version used: Version: fastfetch 2.31.0 (x86_64)

Where did you get the binary: GitHub release

Output of fastfetch -c ci.jsonc --format json:
...
  {
    "type": "PublicIp",
    "error": "ffNetworkingSendHttpRequest() failed",
    "stat":<PHONE_NUMBER>999985
  },
  {
    "type": "LocalIp",
    "result": [
      {
        "name": "tun1",
        "defaultRoute": true,
        "ipv4": "<IP_ADDRESS>/16",
        "ipv6": "fe80::7f5b:6d7:9c68:3e00/64",
        "mac": "",
        "mtu": 1500,
        "speed": 10000,
        "flags": "UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,LOWER_UP"
      }
    ],
    "stat": 0.30129999993368983
  },
  {
    "type": "DNS",
    "result": [
      "<IP_ADDRESS>"
    ],
    "stat": 0.036700000055134296
  },
  {
    "type": "Wifi",
    "result": [],
    "stat": 0.16580000007525086
  },
...

Output of fastfetch --list-features:
threads
vulkan
wayland
xcb-randr
xrandr
drm
drm_amdgpu
gio
dconf
dbus
imagemagick7
imagemagick6
chafa
zlib
xfconf
sqlite3
rpm
egl
glx
osmesa
opencl
libpulse
libddcutil
libelf
libzfs
Directx Headers
linux/videodev2
linux/wireless
Embedded pciids

Didn't find anything more to try in docs
If you need more info please tell me
fastfetch showing only one ip at a time like:
-#         Local IP: <IP_ADDRESS>
@         DNS: <IP_ADDRESS>

"defaultRouteOnly": false


Inference with multiple GPU

Hi, thank you for your amazing work.
I was trying to run inference with multiple GPUs. Where should I modify to let the inference run with multiple GPUs?
Thanks

Hi, I also have same question. Have you find the solution?


Duplicate h1 - homepage and speaking

◦	The Able Player videos (homepage only) has a built-in off-screen H1, “Media Player”. Makes for two H1s on the page

Cannot replicate. Ideally heading structure should be spot on. Realistically, as long as headings are there it's useful. Since I can't replicate, and the text Media Player appears to me as a <h3>, I'm closing.


#11405 fix tablespace statistics refreshing

Please check refreshing of the properties folder and refreshing of one tablespace element

verified

verified


Adding link to article in Russian

Hi there! 👋
Hope it would be considered as useful addition!
In my article in Russian I covered how to:

get familiar with FastAPI framework
set up tests
connect to async Tortoise ORM
make async test for the previous feature

Sorry in advance for the ugly link :( Gatsby generates it based on Russian headline and I still hadn't fix this.

Thank you for noticing @ArcLightSlavik seems like I fixed images from postman and slugs -- the whole time I thought it requires much more work than it actually was.
on third point I'll change that according to recommendation, but wondering why? Making separate in and out models and also separate ORM Model seems like a tons of code repeating almost the same thing every time. Is there any way to avoid this?

Your confusing orm model and pydantic model. Orm model should include every single field in a table, but you wouldn't want to return every piece of information in the response all the time, this is where pydantic comes in.
Say you have 100 fields in your table but you only want to return 2, your response_model_exclude would have to include every field in there and then it would be repeated for any other endpoint you might make(!). By making multiple pydantic models you don't have to duplicate it. For me response_model_exclude is more of only **this** endpoint doesn't need this field.
In tortoise it would be something like this? (pseudo code)
SoftwareEngineer_Pydantic = pydantic_model_creator(
    SoftwareEngineers, name="SoftwareEngineer"
)
SoftwareEngineer_Out_Pydantic = pydantic_model_creator(
    SoftwareEngineers, name="SoftwareEngineerOut", exclude=('password')
)

https://github.com/tortoise/tortoise-orm/blob/develop/tortoise/contrib/pydantic/creator.py#L117

Thanks for the help and suggestions @ArcLightSlavik !
Thanks for the article @trkohler ! :nerd_face:
Nevertheless, when I try to access it I'm getting a 404. Maybe you updated the URL?

yes, I have!
Sorry, forgot about it. Let me update the url in PR!
While I'm in process, this is a new url which should work

I fixed the link in PR, should work correctly now

Great, thanks! :coffee:


Influence of get_root_dir on startup time.

I've been playing around with rust-tools.nvim, trying to see why my startuptime for rust projects is significantly higher than for example with cpp projects. It seems that the invocation to cargo to get the root dir is the culprit.
Without any modifications I get the following:
$ hyperfine "nvim src/error.rs -c qall"
Benchmark 1: nvim src/error.rs -c qall
  Time (mean ± σ):     294.8 ms ±  42.0 ms    [User: 224.9 ms, System: 62.9 ms]
  Range (min … max):   213.5 ms … 362.1 ms    10 runs

If I change these lines with:
local function get_root_dir(filename)
	local fname = filename or vim.api.nvim_buf_get_name(0)
	local cargo_crate_dir = lspconfig_utils.root_pattern("Cargo.toml")(fname)
	return cargo_crate_dir
		or lspconfig_utils.root_pattern("rust-project.json")(fname)
		or lspconfig_utils.find_git_ancestor(fname)
end

I get the following:
$ hyperfine "nvim src/error.rs -c qall"
Benchmark 1: nvim src/error.rs -c qall
  Time (mean ± σ):     165.2 ms ±  10.7 ms    [User: 114.9 ms, System: 44.5 ms]
  Range (min … max):   139.8 ms … 180.1 ms    16 runs

That's a pretty significant ~130msec difference. I am aware that lspconfig is doing something similar for getting the root dir.
Is there some way we can work around this issue? Alternatively, would it be possible to override root_dir, like in lspconfig, so that I can define a simpler method for getting the root dir? It will likely fail on standalone files then, but I'm okay with that.
Something else I noticed while debugging is that the get_root_dir function seems to be called twice, once by rust-tools and once by lspconfig. For an 'expensive' function like this, maybe it is an idea to cache the results?

Yeah I will make it configurable.
As for caching, I don't think we should do that because lspconfig might have to use that function when the cwd changes, i'm not too sure about that actually

Also I could add an option to check for standalone files on start, so if you don't use that feature you can skip the overhead

Should be faster now, with server.standalone = false

Should be faster now, with server.standalone = false

Thank you for the update, much appreciated! My startuptime is reduced from ~480msec to ~140msec by adding this configuration:
		standalone = false,
		root_dir = require('lspconfig').util.find_git_ancestor,

Thank you for the update, much appreciated! My startuptime is reduced from ~480msec to ~140msec by adding this configuration:
		standalone = false,
		root_dir = require('lspconfig').util.find_git_ancestor,


HOSTEDCP-1088: Hypershift e2e framework

What this PR does / why we need it:

get rid of all cleanup sub tests
have a better structure of the sequence of common validations/subtests we execute for each test. Each test will have the following sequence :
a. Test/Validate: validates cluster is operational and in good state (executed automatically)
b. Test/Main: this is the main part of the test, created by the user of the framework
c. Test/Teardown: destroys the cluster and namespace
d. Test/PostTeardown: common validations/subtests for all tests that need to run after the cluster has been destroyed (e.g validateMetrics)
make sure we stop the test immediately if it fails, currently we continue execution and do more validations

Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/test e2e-aws

/test e2e-aws

Thanks!
I'm not seeing where ValidateMetricsAreExposed is run in the new workflow?
Can you update the PR desc with goals/problems this PR is addressing?
Can you also provide a snapshot of the new resulting output and now it compares/improve the existing one use cases?
Then I think we'd want to make sure this would be suitable for the more elaborated test cases like upgrade, private clusters... I'm not seeing the SwitchFromPrivateToPublic / SwitchFromPublicToPrivate validations in the new workflow? would that go into the "main" test func?
Also another thing that I'd like to address is to have more granular t.run output for the steps within ValidatePrivateCluster, e.g WaitForNodePoolDesiredNodes/WaitForImageRollout/validateHostedClusterConditions so it's immediately clear at a glance at the output which step failed. This can be addressed separately though.

I'm not seeing where ValidateMetricsAreExposed is run in the new workflow?

This would go in tthe postTeardown() func, I will add it there, I just didn't want to copy that code yet.

Then I think we'd want to make sure this would be suitable for the more elaborated test cases like upgrade, private clusters... I'm not seeing the SwitchFromPrivateToPublic / SwitchFromPublicToPrivate validations in the new workflow? would that go into the "main" test func?

yes, any logic specific to a particular test would go in the Main test func passed to the NewHypershifTest().
I just changed the TestCreateCluster for now to make it clear how the new worklflow works.

old output
<name="TestCreateCluster/EnsureNodeCountMatchesNodePoolReplicas" time="0.040000"/>
<name="TestCreateCluster/EnsureNoCrashingPods" time="0.020000"/>
<name="TestCreateCluster/EnsureNodeCommunication" time="0.120000"/>
<name="TestCreateCluster/EnsurePSANotPrivileged" time="0.130000"/>
<name="TestCreateCluster/EnsureNetworkPolicies/EnsureComponentsHaveNeedManagementKASAccessLabel" time="0.020000"/>
<name="TestCreateCluster/EnsureNetworkPolicies/EnsureEgressTrafficToManagementKAS" time="2.440000"/>
<name="TestCreateCluster/EnsureNetworkPolicies" time="2.470000"/>
<name="TestCreateCluster/EnsureAllRoutesUseHCPRouter" time="0.010000"/>
<name="TestCreateCluster/NoticePreemptionOrFailedScheduling" time="0.020000"/>
<name="TestCreateCluster/EnsureNoPodsWithTooHighPriority" time="0.020000"/>
<name="TestCreateCluster/EnsureHCPContainersHaveResourceRequests" time="0.020000"/>
<name="TestCreateCluster/EnsureAllContainersHavePullPolicyIfNotPresent" time="0.020000"/>
<name="TestCreateCluster/EnsurePodsWithEmptyDirPVsHaveSafeToEvictAnnotations" time="0.020000"/>
<name="TestCreateCluster/PreTeardownClusterDump" time="164.240000"/>
<name="TestCreateCluster/DestroyCluster_1" time="421.060000"/>
<name="TestCreateCluster/EnsureAPIBudget/control-plane-operator_read" time="0.020000"/>
<name="TestCreateCluster/EnsureAPIBudget/control-plane-operator_mutate" time="0.000000"/>
<name="TestCreateCluster/EnsureAPIBudget" time="0.050000"/>
<name="TestCreateCluster/DeleteTestNamespace" time="0.000000"/>
<name="TestCreateCluster/ValidateMetricsAreExposed" time="0.090000"/>
<name="TestCreateCluster" time="1339.690000"/>

new output
<name="TestCreateCluster/Validate/EnsureNodeCountMatchesNodePoolReplicas" time="0.010000"/>
<name="TestCreateCluster/Validate/EnsureNoCrashingPods" time="0.010000"/>
<name="TestCreateCluster/Validate/EnsureNodeCommunication" time="0.060000"/>
<name="TestCreateCluster/Validate/EnsurePSANotPrivileged" time="0.140000"/>
<name="TestCreateCluster/Validate" time="1297.380000"/>
<name="TestCreateCluster/Main" time="0.000000"/>
<name="TestCreateCluster/After/EnsurePodsWithEmptyDirPVsHaveSafeToEvictAnnotations" time="0.020000"/>
<name="TestCreateCluster/After/EnsureAllContainersHavePullPolicyIfNotPresent" time="0.020000"/>
<name="TestCreateCluster/After/EnsureHCPContainersHaveResourceRequests" time="0.010000"/>
<name="TestCreateCluster/After/EnsureNoPodsWithTooHighPriority" time="0.020000"/>
<name="TestCreateCluster/After/NoticePreemptionOrFailedScheduling" time="0.020000"/>
<name="TestCreateCluster/After/EnsureAllRoutesUseHCPRouter" time="0.000000"/>
<name="TestCreateCluster/After/EnsureNetworkPolicies/EnsureComponentsHaveNeedManagementKASAccessLabel" time="0.010000"/>
<name="TestCreateCluster/After/EnsureNetworkPolicies/EnsureEgressTrafficToManagementKAS" time="2.290000"/>
<name="TestCreateCluster/After/EnsureNetworkPolicies" time="2.300000"/>
<name="TestCreateCluster/Teardown" time="551.970000"/>
<name="TestCreateCluster/PostTeardown/EnsureAPIBudget/control-plane-operator_read" time="0.020000"/>
<name="TestCreateCluster/PostTeardown/EnsureAPIBudget/control-plane-operator_mutate" time="0.000000"/>
<name="TestCreateCluster/PostTeardown/ValidateMetricsAreExposed" time="0.050000"/>
<name="TestCreateCluster/PostTeardown" time="0.050000"/>
<name="TestCreateCluster" time="1893.810000"/>

/test e2e-aws

/test e2e-aws

/test e2e-aws

/test e2e-aws

/test e2e-aws

/approve

/retest-required

/retest-required

/retest-required

/retest-required

/label tide/merge-method-squash

This is great, thanks a lot.
Do we know why this failure timed out https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_hypershift/2834/pull-ci-openshift-hypershift-main-e2e-aws/1686307552859525120?
Follow ups:

In this failure is difficult to grasp why TestCreateClusterCustomConfig and TestUpgradeControlPlane failed. We should have more granular t.runs for those checks so it's clear at a glance.
Can we change junit to only print the latest level of the nested test https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_hypershift/2834/pull-ci-openshift-hypershift-main-e2e-aws/1686695356840022016?

I think maybe e2eutil.NewHypershiftTest().RunTest() or so it's more accurate than .CreateCluster. And ValidateHostedCluster vs Validate so it's clear when looking at junit for e.g nodepools that those validations are for the HC supporting the test.
/lgtm
/hold
Let's make sure to merge
https://github.com/openshift/hypershift/pull/2775
https://github.com/openshift/hypershift/pull/2792
https://github.com/openshift/hypershift/pull/2848
before this so any unexpected disruption doesn't became a distraction from that work.

/test e2e-aws

/lgtm

waiting for the last of 3 hold PRs to merge https://github.com/openshift/hypershift/pull/2792

/unhold

/retest-required

/retest-required

/unhold

/retest-required

/test e2e-kubevirt-aws-ovn

/override ci/prow/e2e-kubevirt-aws-ovn


Taking in a PyAny argument to a class method

I am trying to write a method for a class that takes in a PyAny and returns a PyObject, but I am getting an error about implementing the trait "FromPyObject" not being staisfied. I've implemented it on my class, but I don't think it's about my class after all. Here is a picture of the error message:

As you can see, I believe it is referring to something in the pymethods macro, rather than my class. The error occurs on the line where I put #[pymethods] Is this supported behavior?

Please always provide the full code or a minimal example that shows your problem.  My guess is that you're taking PyAny as an argument and not &PyAny.

@birkenfeld Sorry for no code, you were correct about using PyAny instead of &PyAny. Now it works, thanks!


docs: update cli docs

What type of PR is this?

/kind documentation
What this PR does / why we need it:
update cli docs
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Compile Kusion models in a Stack to the Spec(intent)

	The command must be executed in a Stack or specifying a Stack dir with the -w flag. #### Does this PR introduce a user-facing change?

Additional documentation e.g., design docs, usage docs, etc.:

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 9 (100.0%)  changed or added relevant lines in 3 files are covered.
7 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.02%) to 74.52%

Files with Coverage Reduction
New Missed Lines
%

pkg/cmd/apply/options.go
7
72.03%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
6794

Relevant Lines:
9117

💛  - Coveralls


PacReq: rustdesk

Types
-bin (Binary release of the package)
URL
https://github.com/rustdesk/rustdesk/releases
Building guide
No response
Additional context
No response

I have made the -deb
https://github.com/pacstall/pacstall-programs/pull/5666
Don't know if it is enough for you.
I will not make the -bin


Using Google Colab and ngrok to serve it temporarily

I have tried following to serve and activate using ngrok in google colab but I am not getting it work. I have changed http to tcp.
Setup Google Colab

Visit https://colab.research.google.com/
Sign in / Sign up using google account
Create new note book

Get authorised ngrok tunnel

Download ngrok Google Colab

!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip

Unzip

!unzip ngrok-stable-linux-amd64.zip

Sign up at ngrok and get authtoke

!./ngrok authtoken <your-auth-token>

Start ngrok and python kms server

!./ngrok tcp 8081 & python3 /content/py-kms/py-kms/pykms_Server.py <IP_ADDRESS> 8081

Thanks for maintaining the project

Activated successfully using tcp

Run kms server and tunnel it

!./ngrok tcp 8081 & python3 /content/py-kms/py-kms/pykms_Server.py <IP_ADDRESS> 8081

Goto ngrok dashboard and get tcp address, https://dashboard.ngrok.com/tunnels/agents/

Set host and port and activate

/sethst:4.tcp.ngrok.io
/setprt:11785
/act

Result
Colab

CMD

@simonmicro can you close this as resolved and also give me permission to close issues?

Hi, I think this is because you've configured Ngrok as a HTTP tunnel and as a result, Ngrok is attempting to terminate and re-establish a HTTP connection to an RPC service running on a plain TCP port. I think you should be able to resolve this by running ngrok tcp 1688. Thanks,Matt07.12.2022, 19:12, "kryptoniancode" @.***>:
I have tried following to serve and activate using ngrok in google colab but I am not getting it work.
Setup Google Colab
Visit https://colab.research.google.com/
Sign in / Sign up using google account
Create new note book
Install and run ngrok
Intall
!pip install pyngrok==4.1.1
Get tunnel using ngrok
from pyngrok import ngrok
public_url = ngrok.connect(port='8000')
print (public_url)
Run python kms server
!python3 /content/py-kms/py-kms/pykms_Server.py <IP_ADDRESS> 8000
Error
These are following errors in ngrok, google colab and activating office
google colab
This errors come when the link opened in browser.
ngrok
When opening the url in browser.
office
Note: In above image Invalid RPC request type 84. come from browser when url opened in browser. When setting the url as ngrok using sethst does nothing.
Following can also be done to get authorised ngrok tunnel
Download ngrok Google Colab
!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
Unzip
!unzip ngrok-stable-linux-amd64.zip
Sign up at ngrok and get authtoke
!./ngrok config add-authtoken
Start ngrok and python kms server
!python3 pykms_Server.py <IP_ADDRESS> 1688 & ngrok http 1688
If above issues can be resolved then it be easier activate lower end devices without installing docker, virtual machine, wsl2 etc.
Thanks for maintaining the project
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

@Matthew-Beckett  Thanks

@Matthew-Beckett Consider it done :)


adds release notes describing the changes

https://github.com/Shippable/pm/issues/9699

pr is merged for release notes


RuntimeError: [ONNXRuntimeError] : 10 : INVALID_GRAPH : This is an invalid model. Error in Node:Pad : Node (Pad) has input size 3 not in range [min=1, max=1].

when I run the code below in your README, I got this problem, I want to know how to solve it?
import numpy as np
from keras.preprocessing import image
from keras.applications.resnet50 import preprocess_input
import keras2onnx
import onnxruntime
image preprocessing
img_path = 'street.jpg'   # make sure the image is in img_path
img_size = 224
img = image.load_img(img_path, target_size=(img_size, img_size))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
load keras model
from keras.applications.resnet50 import ResNet50
model = ResNet50(include_top=True, weights='imagenet')
convert to onnx model
onnx_model = keras2onnx.convert_keras(model, model.name)
runtime prediction
content = onnx_model.SerializeToString()
sess = onnxruntime.InferenceSession(content)
x = x if isinstance(x, list) else [x]
feed = dict([(input.name, x[n]) for n, input in enumerate(sess.get_inputs())])
pred_onnx = sess.run(None, feed)

Resnet50 is in our nightly build here and runs smoothly. Seems that you have converted an onnx model of opset 11, but onnxruntime treats it as opset 10 (Pad schema changes since opset 11).
(1) Which version of keras2onnx, onnxruntime, onnx you are using?
(2) Can you try keras2onnx.convert_keras(model, model.name, target_opset=10) to see if can work?

I meet the same problem of your nightly build Resnet50, I tried the second method and the problem was solved.
my config information:
keras=2.3.1
kears2onnx=1.6.0
onnxruntime=0.5.0
onnx=1.6.0
onnxconverter-common=1.6.1

@Royzon The issue is because onnxruntime 0.5.0 only supports until opset 10, so it cannot deal with opset 11 models. Try using onnxruntime 1.0.0+ then you don't need method (2).


Fix for prevArrow and nextArrow

Because prevArrow and nextArrow is not working, with this change i can do this example like original plugin for jquery.
Example angular-directive: prev-arrow="Anterior"

Because prev-arrow and next-arrow is not working, prev-arrow and next-arrow needs html text not a JS object:
Example: prev-arrow="Anterior"
This example work in original jquery plugin as configuration but not in angular directive.


xCluster: DomainAdministratorCredential should not be mandatory

Details of the scenario you tried and the problem that is occurring:
It should be possible to use built-in parameter PsDscRunAsCredential for WMF 5.x, so the parameter DomainAdministratorCredential should not be mandatory.
The DSC configuration that is using the resource (as detailed as possible):
xCluster "Create$($Node.FailoverClusterName)"
{
    Name = $Node.FailoverClusterName
    StaticIPAddress = $Node.FailoverClusterIPAddress

    PsDscRunAsCredential = $SqlInstallCredential
}

Version of the Operating System and PowerShell the DSC Target Node is running:
n/a
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
n/a

Hi, I'm also having the same problem. Is there any updates for this one? Thanks.
I tried to manually create Cluster via GUI in my server and it went smoothly. I am using the same credentials (username&password) as input for the mandatory DomainAdministratorCredential but upon execution, I get the error below.
Error: PowerShell DSC resource MSFT_xCluster  failed to execute Set-TargetResource functionality with error message: System.InvalidOperationException: Can't logon as user <username>.

It doesn’t look like the same issue. Please post a new issue and provide the requested information mentioned in the issue template.


Publish to npm?

How would that help? Haywire is browser-only, not really useful in a nodejs context.

Use it as a module in webpack/browserify es6?

NPM is the defacto package repo for frontend and backend modules. You don't need to use it in nodejs context if you build a client bundle with webpack or browserify.


issues with automatic test json2csv

carriage return depends on machine OS
made a faster test with a smaller input file (actually first 100
lines of the corpus)
python 2.7 compatibility of TemporaryDirectory()

Thanks @lrnzcig

@lrnzcig, I had to make a few changes to get the code running under 3.4. Can you check that it still works for you?
I'm still getting a Fail for test_tweet_usermention().

@ewan-klein Sorry, indeed I should have tested it for python3. I've tested now for both 2.7 and 3, and for me it works in both!
I think I can guess what the problem is: different order in the user mentions. But I've modified the test so that it gives info on the line difference (PR #1013). Could you please run it and send me the output?
Thanks.


Extension: Create new seahorse project creates anchor project

When I create a new seahorse project in vscode with solana playground extension, it creates a new anchor project instead of seahorse.

Anchor project gets initialized first when creating a Seahorse project. Seahorse files should be created after the dependency installation for Anchor. If not, could you provide the steps you've taken so I can reproduce it?

I am sharing a screen record of me creating a new seahorse project on vscode.
https://user-images.githubusercontent.com/95026200/210442475-e309308d-7c3b-47dd-beef-25ac14614772.mp4

Thanks, I think the issue here is that you close the old vscode process when the Seahorse creation is still ongoing. As I've mentioned in the previous post, it creates the Seahorse files after Anchor installation completes but since you are starting a new vscode process with code -r ., Seahorse creation doesn't get to the next step, which is the creation of Seahorse files.
Let me know if this is still an issue if you don't close the initial vscode window until Seahorse files are created.

This time I waited for installation to complete and it's working as expected. Thanks.


Cave Story+

Project Link
https://github.com/doukutsu-rs/doukutsu-rs
Project License
MIT/doukutsu-rs License
Steam App Ids
https://steamdb.info/app/200900/
Additional Context
As far as I'm aware, this is a re-use of NXEngine (a rewrite of Cave Story's engine) in order to be used based on the files that are provided by Steam's "Cave Story+". Thus, from the start, it's an enhancement and a direct way to use the engine directly on linux (it's even supposed to be a out-of-the-box experience), yet, I'm not that aware if this project fully supports stuff like the Steam Achievements.
EDIT: my bad, I have read to the luxpedia packages too quickly... Could some one delete this issue?

@xurich-xulaco Thanks for the request, but this one is already implemented.


There is no documentation generation for the invokable controller.

The invokable controllers are not in the list after generation.

Thanks for reporting. I ll check that.

Should get picked up automatically like others


Distance tests to z=1050 for massive neutrinos and curvature

This PR aims to address issue #176. It includes tests at 10 logarithmically spaced redshifts between 0.01 and 1050 for:

no curvature, no massive neutrinos, 3 massless neutrinos
positive curvature, no massive neutrinos, 3 massless neutrinos
negative curvature, no massive neutrinos, 3 massless neutrinos
no curvature, 1 massive neutrinos, 2 massless neutrinos
no curvature, 3 massive neutrinos (2 different masses), no massless neutrinos
no curvature, 3 massive neutrinos (3 different masses), no massless neutrinos
no curvature, no massive neutrinos, 6 massless neutrinos
negative curvature, 2 massive neutrinos, 4 massless neutrinos
positive curvature, 3 massive neutrinos, 3 massless neutrinos

The distances are compared against a benchmark created with CLASS. The notebook to create the benchmark is included in the PR.
In order for the tests to pass, the calculation of Omega_nu_rel needs to be fixed (see issue #372), which currently breaks some tests (CMB lensing and 3D correlation function), however.
The new tests pass with tolerance of 1e-5 if the first redshift (z=0.01) is omitted, such that the tests are from z=0.03 to z=1050. For z=0.01, the tolerance needs to be relaxed to 1e-4.

This is great! So, there was a bug in h in the neutrino branch that you now fixed?
One question: this z=0.01 doesn't matter, but it is annoying. It is also possible it is a class issue, rather than our issue. Can you see if it can get cured using either improving the number of points in our spline or class spline? Should be minimal change. Otherwise I'm happy with this to go forward. Great work!!

I changed the back_integration_stepsize parameter in CLASS to something smaller and now get 1e-6 agreement with CCL everywhere (which is also the precision setting for distance integrals in CCL, I think). The test still uses 1e-5, in case we add more challenging models later on.

I've now fixed the tests and moved the new tests to ccl_test_distances.py. Only the CMB lensing test was affected, the 3d correlation test failing was due to an interaction between the two tests. This has been addressed now but the way CTEST deals with clean-up should probably be revisited at some point.


Links

Hello!
Is it possible to have link after choosing an option?
Or an anchor even?
Thanks ;)

Please take questions like this to a site like StackOverflow. GitHub Issues are best reserved for discussing feature requests and bug reports.


Happy diwali greeting

Hello there ! I had added a html file which will give you a  animated diwali greeting.
So hope you like it .
And thanks for making this repo.

Please merge


[BUG] Application is crashing even with the new offsets. See error message.

Getting a crash with the latest patch 13.21, even with the new offsets
--- LeagueBroadcast Crash Report ---
Looks like Viego and Morde bugs got the better of us.
Time: 2023.10.27-23:31
Description: The given key 'Turret_T2_R_03_A' was not present in the dictionary.
Stacktrace:
at System.Collections.Generic.Dictionary2.get_Item(TKey key)    at LeagueBroadcast.Ingame.Data.Provider.LiveEventsDataProvider.OnDamageDealt(LiveEvent e) in F:\Repos\LeagueOfLegends\LeagueBroadcast2\LeagueBroadcast\Ingame\Data\Provider\LiveEventsDataProvider.cs:line 280    at LeagueBroadcast.Ingame.Data.Provider.LiveEventsDataProvider.ReceiveLiveEvent(Object sender, LiveEvent e) in F:\Repos\LeagueOfLegends\LeagueBroadcast2\LeagueBroadcast\Ingame\Data\Provider\LiveEventsDataProvider.cs:line 244    at LeagueBroadcast.Trinket.LiveEventConnector.<Connect>b__9_0() in F:\Repos\LeagueOfLegends\LeagueBroadcast2\LeagueBroadcast.Trinket\LiveEventConnector.cs:line 87    at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_1(Object state)    at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)    at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action1 callback, TState& state)
at System.Threading.QueueUserWorkItemCallback.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
-- System Details --
League Broadcast Version: <IP_ADDRESS>
OS: Win 10 2009

Can't seem to get the new offsets for 13.21 to work. Anyone else got it working? Thanks!

Same as #301, closing duplicate here


Can't change bar size

System

Motherboard: B560M DS3H V2 rev 1.0
BIOS Version: F4 mod (No patches can be applied to input file)
GPU: RX 580 2048SP with rx 570 bios 4GB
[x] CSM is turned off. Make sure to confirm this in the BIOS and not with GPU-Z or similar since it can be inaccurate
[x] 4G decoding is enabled. Make sure to confirm this in the BIOS and not with GPU-Z or similar since it can be inaccurate
[ ] UEFIPatch is applied (see Using UEFIPatch for more information). On some motherboards DSDT Patching is also needed
[x] I have read Common issues (and fixes)

Description
I have managed to mod the bios with rebar and now the rebar is working at 4GB, but according to the wiki (https://github.com/xCuri0/ReBarUEFI/wiki/Common-issues-(and-fixes)#how-do-i-enable-resizable-bar-on-unsupported-amd-gpus-) i should downgrade my bar to 2GB because my gpu is unsupported, but when i change the bar size with ReBarState and i reset, the bar size is still 4GB.

@Toyo-tez Disable Resizable BAR in your BIOS menu, thats the only thing that can cause an issue like this.

Thank you so much!


year_one cost calculations in REopt.jl

Notes on "year_one" cost outputs:
These are currently actually year_zero costs, since they use user cost inputs, which are assumed to be year 0.
To change these to "year_one" costs, we need to apply an escalator.
We should report these costs in year_one dollars, and therefore should not discount these back to year 0.
Extra complication: these costs use "annualized"/avg annual production values (e.g. PV production) and therefore are not actually true costs for any given year. But as close as we can get without re-solving REopt for individual years' production values!

@adfarth Is this completed? If so, please close.

@adfarth Is this completed? If so, please close.

@Bill-Becker this is not complete; my understanding is that we pushed this back to FY24.


Updated broken links in 3 docs tiles on Insights Learning Resources page

3 docs links are resulting in 404s after some recent changes in docs links (probably redirects expiring).
I've updated the 3 tiles on the Insights page found by Nacia Owens and the customer-facing team in https://issues.redhat.com/browse/HCCDOC-3064
Related RHCLOUD Jira to track this: https://issues.redhat.com/browse/RHCLOUD-35413
CC: @Hyperkid123 @ryelo @karelhala
Thank you for reviewing and merging!

/ok-to-test


Fix possible memory leak in _NSPrintForDebugger

Not sure why this desc is needed here at all because it's not used further in code.
My be it makes more sense to delete desc usage completely.

@swift-ci test

I think this might actually be dead code, but I agree we shouldn't be leaking.

merge?

@swift-ci test linux


An 5047/helius silver and gold models

Parse out metadata from helius raw bronze data for cnfts

FR on 2xl w/ prod data
14:33:20  1 of 9 OK created sql incremental model silver.helius_cnft_metadata ............ [SUCCESS 1 in 882.45s]

Incremental on M w/ prod data
14:35:29  1 of 9 OK created sql incremental model silver.helius_cnft_metadata ............ [SUCCESS 140000 in 52.57s]

Gold view
14:43:53  1 of 1 OK created sql view model nft.dim_nft_metadata .......................... [SUCCESS 1 in 2.30s]

Rebase is all weird replacing it with this PR instead


[PORT] Enable middleware in TestScript and refactor BeginSkill tests

https://github.com/microsoft/botbuilder-dotnet/pull/4866
Move Skill specific test code out of Microsoft.Bot.Builder.Dialogs.Adaptive.Testing into Microsoft.Bot.Builder.Dialogs.Adaptive.Tests/ActionTests.cs

We can do this via #2959


Add Gradle instructions in README

As a recurring user, this is the only thing I really need, and right now it's "hard" to find.
I'm used to seeing this line straight in the README.

Neamar:patch-1

Fare enough. Fixed.


Fix nebula things

Fixes #332
Also fixes that the fallback nebula was completely broken lol

Wait, are you sure the fallback was broken? I moved it to the preact index file.

It's broken for me on live rn

I'll take a look in the morning. We should be able to do this without duplicating code. How do I recreate the issue?

Which duplication? The gradient style? I only added that one to preact index for the pretender, before the nebula is loaded.
In terms of reproduction: just disable animations and see if the background changes for settings and in-game when switching modes.

I only added that one to preact index for the prerender, before the nebula is loaded.

Sure, but if need it in the preact index, that may as well be its home.


percentage symbol instead of in-game menu buttons like "resume" "restart song" etc

Describe your problem here.

Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

weird, ive had the same problem but only in freeplay when i import mods.

weird, ive had the same problem but only in freeplay when i import mods.
usually its from an old alphabet.png and alphabet.xml in the mods folder that causes percent signs because psych engine gets confused with the new alphabet.png and .xml so you just have to delete the alphabet.png and xml from the mods folder or make sure its using the new ones from 0.7.1h or what version you are using and it should fix. if not, idk

This also happens if there's another image before the alphabet.png - such as the achievementgrid.png (which has been replaced with a folder and separate images).


screen capture image

How can i use to shot cut from video.

The 3rd example shows an example of grabbing the 1st frame of a video.


Cannot read property 'install' of undefined

I am importing and using as the docs instructed:
import DatatableFactory from "vuejs-datatable";
Vue.use(DatatableFactory);

I am getting this error:
Uncaught TypeError: Cannot read property 'install' of undefined
    at Function.Vue.use (vue.runtime.esm.js?2b0e:5100)
    at eval (main.js?56d7:10)
    at Module../src/main.js (app.js:2317)
    at __webpack_require__ (app.js:770)
    at fn (app.js:130)
    at Object.1 (app.js:2391)
    at __webpack_require__ (app.js:770)
    at app.js:908
    at app.js:911

I have tried the following solution from another issue I saw in this repo:
//vue.config.js
module.exports = {
  chainWebpack: config => {
    config.resolve.alias.set(
      "vuejs-datatable",
      "vuejs-datatable/dist/vuejs-datatable.esm.js"
    );
  }
};

Also tried this:
import DatatableFactory from "vuejs-datatable/dist/vuejs-datatable.esm.js";

Additional info:
"vue": "^2.6.10",
"vuejs-datatable": "^2.0.0-alpha.3",

Hi,
Actually, the docs are wrong. The correct way to import the module is
import { VuejsDatatableFactory } from 'vuejs-datatable';

I will update the docs accordingly.
I've read somewhere that default exports are a quite bad practice, so I've moved to a named export instead.
Cheers

I had to do this
module.exports = {     resolve: {         alias: {             'vue' : 'vue/dist/vue.esm.js',             'vuejs-datatable': 'vuejs-datatable/dist/vuejs-datatable.esm.js',         }     }, }


use accent color for tag container

makes it colored in ligth theme

before:

after:

I noticed it yesterday, I don't know why I ignored it

oh im sorry can you open this again.
i mistaken this with #177

@SunsetTechuila sorry


WatchDocument net::ERR_HTTP2_PROTOCOL_ERROR 200 error

What happened:
Periodically, a net::ERR_HTTP2_PROTOCOL_ERROR 200 error occurs and reconnects the stream. At this time, if there is a drawing situation, it is temporarily cut off.

What you expected to happen:
I expected it to go smoothly without interruption.
How to reproduce it (as minimally and precisely as possible):
Even if I just waited, I was able to check the error on the console.
Anything else we need to know?:
Environment:

Operating system: MacOS (Big Sur 11.0.1)
Browser and version: Version 90.0.4430.93 (Official Build) (x86_64)

@dc7303 Thanks for your report.
I have confirmed that this problem is caused by the connection idle timeout of the Application Load Balancer. We use ALB as Ingress in ELK.
We need to figure out how to solve this problem when using grpc-web stream and ALB together.

For now, I changed the value of connection idle timeout to 600. We can use this value until we found a better way.


checkpoints should be linked to cell cycle transition terms  via the "checkpoint signalling" term

from https://github.com/geneontology/go-ontology/issues/15582
like:

signalling = "G2 DNA damage checkpoint signalling" here

covered by
https://github.com/geneontology/go-ontology/issues/20935
alll checkpoint will now be connected to signalling.


DBZ-8389 Avoid throwing ORA-01291 due to recent checkpoint

https://issues.redhat.com/browse/DBZ-8389

/packit test --labels oracle


Response::content_length does not check the content length in the header

I just ran into an issue regarding the Response::content_length method, which took me quite a while to track down.
Problem
The documentation of Response::content_length promises:
Get the content-length of this response, if known.
Reasons it may not be known:
- The server didn't send a content-length header.
- The response is compressed and automatically decoded (thus changing the actual decoded length).

But actually, the implementation doesn't really care about the content-length header field. It just checks the response body.
Implementation
Response::content_lenght internally only calls the trait function http_body::Body::size_hint implemented for the pub(crate) reqwest::async_impl::decoder::Decoder passing the response body as argument. After digging a bit deeper, this function basically resolves to:

If the body is a reqwest::async_impl::body::Inner::Reusable, use the length of the bytes stored in this enum variant.
In any other case (especially reqwest::async_impl::body::Inner::Stream), sooner or later call http_body::size_hint::SizeHint::default, which basically resolves to content_length = 0

Possible Solutions:

When this behaviour is the intended behaviour, it would be nice to change the documentation, so future users don't expect Response::content_length to check the header.
When Response::content_length should indeed check the header, this code snipped should do the job:

if let Some(value) = self.headers.get(CONTENT_LENGTH) {
    if let Ok(value_str) = value.to_str() {
        if let Ok(length) = value_str.parse::<u64>() {
            return Some(length)
        }
    }
}

It's doesn't look particularly nice, and maybe there's a less nested approach, but it works.

I've experienced this issue also while implementing range requests with reqwest. It's a shame to see that there hasn't been any comment on your PR. Your attached work-around serves my purposes though, thank you Dzenan.


SMTP: Authenticity is not established by certificate path validation

Describe the bug
When sending an email via SMTP, I get the following warning:
[warning] Description: 'Authenticity is not established by certificate path validation'
     Reason: 'Option {verify, verify_peer} and cacertfile/cacerts is missing'

Emails are sent correctly, but the warning is annoying.
Steps to Reproduce the Bug or Issue
I use the following configuration:
  config :my_app, MyApp.Mailer,
    adapter: Swoosh.Adapters.SMTP,
    relay: "smtp...com",
    username: "...",
    password: "...",
    ssl: false,
    tls: :always,
    auth: :always,
    port: 587,
    retries: 2,
    no_mx_lookups: false

Expected behavior
No warnings.
Your reproducible example
No response
Screenshots or Videos
No response
Platform

OTP: 25.1.2
Elixir: 1.14.2

Additional context
No response

Hmm, any reason ssl is false?

If  I set it to true, I get a different error msg and emails do not get sent at all.

What would that be?

In addition to the warning about the Authenticity, I get the following error:
[notice] TLS :client: In state :hello at tls_record.erl:564 generated CLIENT ALERT: Fatal - Unexpected Message
 - {:unsupported_record_type, 50}
{:error,
 {:retries_exceeded,
  {:network_failure, '<IP of the SMTP relay>',
   {:error,
    {:tls_alert,
     {:unexpected_message,
      'TLS client: In state hello at tls_record.erl:564 generated CLIENT ALERT: Fatal - Unexpected Message\n {unsupported_record_type,50}'}}}}}}

and no email is sent.

What's your relay?

it's smtp.email.eu-zurich-1.oci.oraclecloud.com
BTW, AWS SES works without any glitch...

Welp. Are you happy with me closing this issue and blame Oracle?

I'm not sure that the SES adapter uses SMTP. If it does, let's blame Oracle.

Ah actually no. It's sent via http. I thought you meant you changed to using SES via smtp still. (I don't use SES so I'm not sure if it's an option or not).
However, no one else has reported this before so I don't know if it's Oracle.
I did find this related issue. Maybe tls: :always and ssl: false is indeed the way to go. No idea about the warning though

Oops, forgot to paste the link https://github.com/swoosh/swoosh/issues/411

https://github.com/swoosh/swoosh/issues/740

I'm finding that emails will send with SES using tls: :always and ssl: false, but I'm getting the same warning.


Set application clock speeds for p4de instances in bootstrap.sh

Issue #, if available:
Fixes https://github.com/awslabs/amazon-eks-ami/issues/954, as suggested by hassanbabaie.
Description of changes:
Sets GPU application clocks to their maximum value for p4de.*, instances according to this recommended value (which is also the maximum -ac value for this GPU type).
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Testing Done

This value has been tested on p4de.24xlarge instances in EKS. They have not been tested on p4d.* instances.
Without this change, the following errors are present in /var/log/cloud-init-output.log for EKS nodes using p4de.24xlarge instance types.
...
Treating as warning and moving on.
Enabling/disabling default auto boosted clocks is not supported for GPU: 00000000:A0:1C.0.
Treating as warning and moving on.
Enabling/disabling default auto boosted clocks is not supported for GPU: 00000000:A0:1D.0.
Treating as warning and moving on.
All done.
GPU 0: NVIDIA A100-SXM-80GB (UUID: GPU-70ba6113-4249-9a27-3c17-ffd2fb5612ac)
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:10:1C.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:10:1D.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:20:1C.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:20:1D.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:90:1C.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:90:1D.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:A0:1C.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
Specified clock combination "(MEM 1215, SM 1410)" is not supported for GPU 00000000:A0:1D.0. Run 'nvidia-smi -q -d SUPPORTED_CLOCKS' to see list of supported clock combinations
Treating as warning and moving on.
All done.
...

When setting application clock speeds with nvidia-smi -ac 1593,1410 on p4de.24xlarge instances, application clock speeds are correctly set to their maximum supported value...
...
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:10:1C.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:10:1D.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:20:1C.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:20:1D.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:90:1C.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:90:1D.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:A0:1C.0
Applications clocks set to "(MEM 1593, SM 1410)" for GPU 00000000:A0:1D.0
...

Thanks for putting this together!
It would be nice to change this logic to a switch block using the instance type from IMDS, so we don't have to care about the actual nvidia chipset ID's. I'll ship it either way 👍

We can autodiscover the max clocks from the nvidia-smi and set the clocks appropriately that we dont need to maintain a mapping from IMDS or if/elif statements.

That's a good idea @amrragab8080. Feel free to move forward with that approach instead, now or in the future.
Will refrain from that in this PR as this approach has been tested as is.

We can autodiscover the max clocks from the nvidia-smi and set the clocks appropriately that we dont need to maintain a mapping from IMDS or if/elif statements.

@amrragab8080 I've implemented your idea in https://github.com/awslabs/amazon-eks-ami/pull/1100.

Closing this in favor of #1100.


Support click 7

It is possible to support click>=7?

Why? What features would that give the project?

The thing is, my Linux distribution doesn't package old versions of click anymore. It currently only has a package for 7. Thus, I'd have to write a separate package for the old version (or use a venv, but I'm using consolemd for a globally available package).
I get what you're saying: why update libraries that work perfectly fine? I think it would be smart though, because Python as a language is also evolving and it could be with some future version of Python, click (or other dependencies) doesn't work anymore. Also, with old libraries, there might be security concerns.

I'm very glad to hear you value consolemd enough to want it installed globally. :blush:
However, I'd highly recommend always using virtual environments, the pain you're feeling right now is why. They're also easy enough to use even globally. The readme explains how to do this, just make a symlink from /usr/local/bin/consolemd to /path/to/venv/bin/consolemd. Installing in /opt shouldn't surprise a future sys admin.
But seriously, always use venvs. At some point you're guaranteed you'll come across a situation where where apps A and B need different versions of the same library. And different Linux distros will package different versions of a given python library, and some distros won't even package that particular python lib, etc. Distro python packages are more-or-less only there to support applications that the distro itself needs.
Having said all that I'm not opposed to upgrading click (or any library) but forever chasing the latest version of libraries for no tangible benefit is a never ending chase.
I'd be much more inclined to create an executable with pyinstaller so all this becomes a non-issue.
Kurt

On Dec 29, 2018, at 1:48 AM, Philipp Middendorf<EMAIL_ADDRESS>wrote:
The thing is, my Linux distribution doesn't package old versions of click anymore. It currently only has a package for 7. Thus, I'd have to write a separate package for the old version (or use a venv, but I'm using consolemd for a globally available package).
I get what you're saying: why update libraries that work perfectly fine? I think it would be smart though, because Python as a language is also evolving and it could be with some future version of Python, click (or other dependencies) doesn't work anymore. Also, with old libraries, there might be security concerns.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

I'm very glad to hear you value consolemd enough to want it installed globally. :blush:
However, I'd highly recommend always using virtual environments, the pain you're feeling right now is why. They're also easy enough to use even globally. The readme explains how to do this, just make a symlink from /usr/local/bin/consolemd to /path/to/venv/bin/consolemd. Installing in /opt shouldn't surprise a future sys admin.
But seriously, always use venvs. At some point you're guaranteed you'll come across a situation where where apps A and B need different versions of the same library. And different Linux distros will package different versions of a given python library, and some distros won't even package that particular python lib, etc. Distro python packages are more-or-less only there to support applications that the distro itself needs.
Having said all that I'm not opposed to upgrading click (or any library) but forever chasing the latest version of libraries for no tangible benefit is a never ending chase.
I'd be much more inclined to create an executable with pyinstaller so all this becomes a non-issue.

I've now got travis.ci building an executable with pyinstaller. The filename still needs some love but the following link works on linux:
https://github.com/kneufeld/consolemd/releases/download/v0.4.5/consolemd
chmod +x consolemd after download

binary filename now has architecture appended to it
curl -L -o consolemd https://github.com/kneufeld/consolemd/releases/download/v0.4.6/consolemd-linux-x86_64
chmod +x consolemd
./consolemd --version

@pmiddend please let me know if this solution is acceptable so this issue can be closed

consolemd now uses click v7


GetBulkStateAsync should have typed overload that performs bulk deserialization

Describe the feature
When calling DaprClient.GetStateAsync<T> one can specify a type parameter to have the SDK deserialize the response to. This is nice as it prevents the user from having to maintain their own serialization/deserialization options somewhere and rely on whatever the SDK is configured to use.
However, when using DaprClient.GetBulkStateAsync, this does not accept a type parameter, so one ultimately retrieves an IReadOnlyList<BulkStateItem> wherein the BulkStateItem contains ETag, Key and Value strings. This leaves deserialization to the user (who again, may have relied on Dapr to perform the initial serialization and thus may not be clued into precisely how it's serialized).
I would propose that for historical reasons, the existing approach be maintained, but that an overload be added to both GetBulkStateAsync and BulkStateItem that each accept a type parameter and which deserialize the returned result from the former as IReadOnlyList<BulkStateItem<T>> wherein the BulkStateItem contains a string property for both Key and ETag, but a type T value, wherein deserialization has already been performed, like that of GetStateAsync.
Release Note
A type parameter overload has been added to BulkStateItem so items retrieved from state using GetBulkStateItem<T> will now have their values deserialize to T instead of exclusively returning a serailized string.

RELEASE NOTE:
ADD A type parameter overload has been added to BulkStateItem so the value of items retrieved from state using GetBulkStateItem<T> will now deserialize to T instead of exclusively returning a serialized string.

/assign


Post meta with value NULL is retrieved as Array when getting all meta via $post->meta()

I'm using Timber 2.0.0-alpha.4
I have a post with some meta values. One of this meta values is set to NULL.
When I get all the meta at the same time via $post->meta() I expect this result:
array (   'foo' => 'bar',   'baz' => NULL, )
Instead I am getting this
array (   'foo' => 'bar',   'baz' =>    array (     0 => NULL,   ), )
Steps to reproduce behavior
Add some meta to a post, set one meta value as NULL (eg. using update_post_meta), then retrieve all meta at the same time via $post->meta()
Analysis and potential fix
(sorry I don't know how to create a PR and I don't know if my code is ok)
In the function \Timber\CoreEntity::fetch_meta  in the file timber/lib/CoreEntity.php at around line 180 a bit of code is commented with // Mimick $single argument when fetching all meta values.
The code tries to detect if a meta value is an array with a single value. To do this, it uses isset(). Isset fails when a variable is set but is also null.
In this case checking with array_key_exists could be better (see https://stackoverflow.com/a/68135825), so a potential fix could be to replace this line:
if ( 1 === count( $meta ) && isset( $meta[0] ) ) {
with this line:
if ( 1 === count( $meta ) && array_key_exists(0, $meta)) {

Resolved in #2643.
Thanks a lot for your investigation and the pull request, @gustavo-roganti. Very much appreciated! 🙌


feature: catalog entries with host affinity tags

Rancher Versions:
Server: 1.5.4
healthcheck:
ipsec:
network-services:
scheduler:
kubernetes (if applicable):
Docker Version:
1.13
OS and where are the hosts located? (cloud, bare metal, etc):
bare metal
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB)
Environment Type: (Cattle/Kubernetes/Swarm/Mesos)
Cattle
Steps to Reproduce:
There is currently no way to give scheduling suggestions to catalog entries. Specifically I would like to add host affinity tags to the containers started so I can control where the catalog entry containers are going to be deployed.
My  current method is to hack up the catalog entry into a docker-compose/rancher-compose and deploy from the command line, which is less than ideal.

@kgk I have utilized  'io.rancher.scheduler.affinity:host_label: foo=bar' type rule in my docker-compose.ym. for a catalog to get a container to go to a specific host and it worked fine.  Is there something else you are trying to do?

that's the point.. you have to make your own.. I was wondering about adding labels to catalog entry without needing to edit the actual docker-compose file.

yeah, you'll need to clone and maintain customizations to templates.


Load evidence data without running --as and subsequent steps

For initial prototyping, development and testing of plugins to visualize custom evidence data it would be nice to be able to load evidence data on top of an existing data release snapshot and skip the --as and subsequent steps.
Some preliminary pipeline tests we did seem to indicate that this already works fine. Can you please confirm if this is indeed the case and whether this will remain working in the near future?

It depends on how you define "working". Will the api or webapp crash? No. Will the extra evidence be reflected in associations, search, or relationships? No. Is this a supported or recommended approach? No.
So for prototypes, then yes you could do this. But for production, we would strongly recommend not to.


feat: Llama.cpp embedding function

Closes #20

#21  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tazarov and the rest of your teammates on  Graphite


fix(config): fixing bot add Shelly Wave 1PM

added name manufacturer
corrected Label & description
fixed product Type & productId
removed zwaveAllianceId (do not have one yet)
added parameters description and options
changed filename

@AlCalzone  Can you please review these errors? Some of the test files report errors although we did not use them. They go unused.

Will take a look tomorrow and let you know what needs to be changed.

Looks like you based your branch on the wrong branch from our repo - or maybe the merge messed it up. I fixed that, but I had to force-push to your branch.
Before doing any further changes, please reset your local copy of the branch to the one on Github. Assuming you did not rename the remote, and you are on the correct branch locally, this command should do it:
git reset --hard origin/import-config-1694608670

I'll give you a more detailed review now.

Thank you very much for the detailed report of the configuration file. I will go trough all of the suggested changes.
What I did is practically took the descriptions from our database for the manuals. I will see what we can change in the actual database for the manuals to make them more compatible, most probably not everything can be done as suggested in this case I will have to add a new column in the database for the configuration files descriptions.

@zwave-js-bot automerge

I just did the remaining changes.