Fix tox errors due to new versions of flake8 and requests

Current coverage is 100% (diff: 100%)

Merging #949 into master will not change coverage

@@           master   #949   diff @@
====================================
  Files          31     31
  Lines        1989   1989
  Methods         0      0
  Messages        0      0
  Branches      328    328
====================================
  Hits         1989   1989
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update 463593f...9eab35b


Folding headings not working

Hi Melke,
I initially got this to work but now cannot make it work again. I have disabled all community packages except linter and restarted. The only menu item for markdown-folder is Toggle but it does nothing.
The menu under Edit->Folding also does nothing except fold those paragraphs that are indented.
Do you have any idea what I am doing wrong here?
Thanks,
Chris.

Have you tried restarting Atom and closing/reopening the markdown file. There seems to be a bug in Atom 1.0.7 when it restores last used tabs, so the grammar-based packages does not get loaded. Please try and post the results here.

Hi Mats,
Restarted Atom and closed and re-opened the md file (I assume "close pane" closes the file if it is not open in another pane or tab).
I expect to see a sub-menu under the "markdown-folder" menu item of "Packages" menu. There is only "toggle" but clicking on it seems to have no effect.
I would like to use markdown-folder because I write prose and the (coding) indentation method is not as intuitive (although I gather it is CommonMark standard).
Anything else I can try?
Chris.

Hi Chris,
For some reason, I hadn't defined all available commands in the menu. If you update the package now you will get menu submenu items for all commands.
Regarding toggle: You need to have the cursor on a line that starts with a hash sign. Note that there must also be a space between the hash sign and the heading.
Since it's almost impossible for me to come up with default unique keybindings that suits everyone, I have not defined any keybindings at all. Please add keybindings to your keymap file. Here is a suggestion:
'atom-workspace':
  'alt-t': 'markdown-folder:toggle'
  'ctrl-alt-t': 'markdown-folder:unfoldall'
  'ctrl-alt-1': 'markdown-folder:foldall-h1'
  'ctrl-alt-2': 'markdown-folder:foldall-h2'
  'ctrl-alt-3': 'markdown-folder:foldall-h3'
  'ctrl-alt-4': 'markdown-folder:foldall-h4'
  'ctrl-alt-5': 'markdown-folder:foldall-h5'

You can edit your keymap file by selecting "Open Your Keymap" from the "Atom" menu.
Good luck and thanks for your feedback!

Hi Mats,
Thanks for that. I updated and got the menu items but no action.
Tried restarting and reopening. No dice. Does it matter that my sections are indented?
Chris.

Yes it matters. The lines must start with the hash signs.

Tried that but didn't try restarting, closing opening. ... Later.

I didn't quite understand that last comment. Does it work for you now?

No. Sorry, Mats. I didn't get it to work. I might try again tomorrow on a test document.

Tried again with a test text. Not working.

Are you running on Windows or Mac? Which OS version? Can you send me an example file? My email is<EMAIL_ADDRESS>

I'm running Mac OS X 10.10.3 (14D136)
I'll email you my test file.

Hi, it works perfectly for me on my Mac. Here you can see how I do it, using the menus https://dl.dropboxusercontent.com/u/5925696/markdownfolder/markdownfolder.mov
Are you sure that you also have the package language-gfm installed? That's a prerequisite for markdown-folder. Can you see the status text "Github markdown" in the lower right corner of the Atom window?

Hi. Yes I have language-gfm installed (it is a core package). I also have all community packages except markdown-folder and linter disabled. Github markdown is on the status line lower right.
I followed the process you showed on the movie. Thanks for that. It seems that you need to place the cursor on the left of the heading text to fold the text below, and on the left of the hashes to fold the heading itself. I still couldn't do it.
I think there must be a conflict with one of the packages I installed. Disabling probably doesn't revert Atom back to it's original state. Maybe I will need to uninstall all community packages ...

Plus - Brew doctor tells me I have a slew of problems that I have to fix ... :-\

Ok, thanks. I'm closing this then.
BTW, it doesn't matter where on the line you have your cursor when folding.

Hi Mats,
I think my problem was caused by a conflict with Folding Text.
Thanks,
Chris.
On 26 August 2015 at 17:16, Mats Melke (sbs<EMAIL_ADDRESS>wrote:

Ok, thanks. I'm closing this then.
BTW, it doesn't matter where on the line you have your cursor when folding.
—
Reply to this email directly or view it on GitHub
https://github.com/melke/markdown-folder/issues/4#issuecomment-134833686
.


493 piping metadata

What is the context of this PR?
This implements the ability to pipe metadata to a question title.
How to review

Create some metadata
Click the piping menu in a question title
Selecting the metadata should show it in the title editor.
Updating the alias or deleting the metadata will update the displayed value in the editor.

 Pipe metadata into a question - front end changes

Also just been using the feature.  Works nicely apart from a few things:

Deleting a Metadata which is being used doesn't update to [Deleted Metadata] until you navigate away from the page and return to it.
Updating a Metadata is not reflected in the question (even after a refresh). Updating a piped answer is immediately reflected.
If you enter an empty row in the Metadata table and then attempt to pipe this Metadata, it appears as a selectable item in the ContentPicker list and you can then select it (see screenshots).
The Answer and Metadata tabs on the ContentPicker aren't keyboard accessible.

Yes, that works like answers. It requires the component to remount.
Which field are you updating? It only uses the alias. It works fine when you update alias.
Yes, this is displayName logic - I guess I should default it to some value for the moment. And make the change server side to remove this after.
You can tab to every field and use it that way - are you expecting something different?

Another issue I have noticed:

Go to a question page. Add an empty Metadata row.  Click Done.  The question page displays "Something went wrong".  A refresh solves this.

@adammahmood please re-review. The issue is resolved and the API has been merged so it should be less painful! 🎉

LGTM 👍


ctid cause scan partition sub-table failure

What happens?
create or replace view biz.gto_action_record as
SELECT * FROM postgres_scan('postgres://gpadmin:pwd@<IP_ADDRESS>:2345/qsf_prod', 'biz', 'rst_ra_skc_org_detail_1_prt_p20221011')
;
select count(*) from biz.gto_action_record;

raise error:
IOException: IO Error: Unable to query Postgres: server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
 server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.

and then cause gp into recovery mode!
To Reproduce
then go to greenplum server, in pg_log directory, in the log file:
we find:
COPY (SELECT NULL FROM ""tenant_yuege_biz"".""rst_ra_skc_org_detail_1_prt_p20221123"" WHERE ctid BETWEEN '(0,0)':                                                                     :tid AND '(4294967295,0)'::tid ) TO STDOUT (FORMAT binary);
",0,,"postgres.c",1639,
2022-11-23 20:40:43.313946 CST,,,p23011,th0,,,2022-11-23 20:40:42 CST,0,con813,cmd2,seg-1,,,,,"PANIC","XX000","Un                                                                     expected internal error: Master process received signal SIGSEGV",,,,,,,0,,,,"1    0x7fd6fb14a630 libpthread.so.0                                                                      <symbol not found> + 0xfb14a630
2    0xf9cc68 postgres <symbol not found> (CXformUtils.cpp:2234)

and I query the ctid, not these values:
SELECT min(ctid),max(ctid) FROM tenant_yuege_biz.rst_ra_skc_org_detail_1_prt_p20221123;--(33554432,2)	(33554435,17469)
SELECT NULL FROM tenant_yuege_biz.rst_ra_skc_org_detail_1_prt_p20221123 WHERE ctid BETWEEN '(33554432,2)'::tid AND '(33554435,17469)'::tid

but, use these values, also raise error and cause gp recovery mode.
but, the success one db, I query the min and max ctid, and then query the table, is OK:
SELECT min(ctid),max(ctid) FROM tenant_qisefang_biz.rst_ra_skc_org_detail_1_prt_p20221123--(11360,7)	(33325,2)
SELECT NULL FROM tenant_qisefang_biz.rst_ra_skc_org_detail_1_prt_p20221123 WHERE ctid BETWEEN '(11360,7)'::tid AND '(33325,2)'::tid

I confused why this sql add the ctid where condition, I think it's unnecessary。
maybe，remove the ctid, can alse support pg views rather than tables?
OS:
centos7
PostgreSQL Version:
9.4（greenplum6.12）
DuckDB Version:
0.6.0
DuckDB Client:
Python
Full Name:
Changzhen Wang
Affiliation:
linezonedata
Have you tried this on the latest master branch?

[X] I agree

Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

[X] I agree

Thanks for the report! Unfortunately I can't find enough information here to reproduce the issue.


efiwrapper: update xDCI and xHCI PID according to RPL HW config

Update PID to support fastboot over USB function On RPL
Tracked-On: OAM-111695

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web  for more details.

Android CI has completed Engineering Build for this issue, build is SUCCESS.To merge the changes please click on APPROVE FOR MERGE button in Android CI WEB

Android CI has started Engineering Build for this issue ,Please check the linked Tracked-On issue/Android CI Web  for more details.


Adding a new spring data snowflake module

:loudspeaker: Type of change

[ ] Bugfix
[ x] New feature
[ ] Enhancement
[ ] Refactoring

:scroll: Description
Added Spring Data Snowflake Module to connect to snowflake database and do CRUD operations
:bulb: Motivation and Context
Created sample module for generic use
:green_heart: Junit 5 test methods
:pencil: Checklist

[ ] I reviewed submitted code
[ x] I added tests to verify changes
[ ] I updated reference documentation to reflect the change
[ ] All tests passing
[ ] No breaking changes

Hi @yshameer Is this issue connected to a Jira?

@lor6 No, was just trying to add a new module for snowflake.

Hi @yshameer This repository contains code used in articles on the baeldung.com site. If this is not supporting an article, then we can't include it.
Thanks.


Add SEO metadata to the index

@randyh62 We're already adding SEO metadata to index.md at the following PR:
https://github.com/ROCm/HIP/pull/3656


Cant print in PDF

Hello,
I have isntalled everything and I think everything si running fine, but when I try to print the pdf it renders the html only.
Do I have to enable something in regard of annotations maybe?
I am kinda lost here...
My code is as follows:
AUTOLOADER:
'Ps'               => DIR.'/../vendor/bundles',
'PHPPdf'           => DIR.'/../vendor/PHPPdf/lib',
'Zend'             => DIR.'/../vendor/PHPPdf/lib/vendor',//If you have used ZF2 packages already, you should skip this entry
KERNEL:
new Ps\PdfBundle\PsPdfBundle(),
CONFIG:
ps_pdf:
fonts_file: ~
enhancements_file: ~
use_cache_in_stylesheet: ~
cache:
type: ~
options: ~
markdown_stylesheet_filepath: ~
markdown_document_template_filepath: ~
document_parser_type: ~
ROUTE:
BWSAspiranteBundle_imprimirSolicitudAspirnte:
pattern:  /pdf/{id}
defaults: { _controller: BWSAspiranteBundle:Profile:UserApplicationToPdf }
CONTROLLER:
use Ps\PdfBundle\Annotation\Pdf;
/**
* @Pdf()
/
public function UserApplicationToPdfAction()
{
$user = $this->container->get('security.context')->getToken()->getUser();
if (!is_object($user) || !$user instanceof UserInterface) {
throw new AccessDeniedException('This user does not have access to this section.');
}
/@var $em Doctrine\ORM\EntityManager*/
$em = $this->container->get('doctrine.orm.entity_manager');
$documentos_ids = $em->getRepository("BWS\AspiranteBundle\Entity\Documento\Documento")->findNewByType($user->getId());
$documentos = $em->getRepository("BWS\AspiranteBundle\Entity\Documento\Documento")->findByIds($documentos_ids);
    return
    $this->container->get('templating')
            ->renderResponse('BWSAspiranteBundle:Profile:showPDF.pdf.twig',
                    array('name' =>  $user->getEmail(), 'user' => $user, 'documentos' => $documentos));

}

VIEW: showPDF.pdf.twig

Hello {{ name }}!

It renders the follows:

        Hello NAME OF USER!

Thanks for the help

Request will be intercepted by PdfListener when controller method is annotated by Pdf annotation and request is in "pdf" format. In order to fix it, you should change your route to:
BWSAspiranteBundle_imprimirSolicitudAspirnte:
    pattern: /pdf/{id}
    defaults: { _controller: BWSAspiranteBundle:Profile:UserApplicationToPdf, _format: pdf }

If you want to contact me, ask a question, you should use private message. Issue purpose is to report bugs, make suggestions etc.

Got it,
thanks a lot for the quick response.
Just to let you know, I had to use this code to make it work.
return
$this->container->get('templating')
->renderResponse('BWSAspiranteBundle:Profile:showPDF.pdf.twig',
array('name' =>  $user->getEmail(), 'user' => $user, 'documentos' => $documentos));
Also I modify as suggested above.
Cheers.
P.D. Great work!


Multiple hubs, but one ws connection?

I tend to structure my code by functionality, so my application I have a QueryHub (handles queries), a LoggingHub (captures logging) and I might get more hubs as the application evolves. Each hub is mapped to a route and the frontend connects to these, setting up one web socket connection per hub. What I'm thinking is that this approach might not scale well for larger applications, as it will allocate multiple sockets per user.
I'm wondering if my approach fits the intended usage of hubs, or if I should just have one large hub. For this application, it would be optimal if I could define multiple hubs but only use one connection. Not sure how the API for this would look like 🤷♂
Looking forward hearing your thought on this!

There's a longer discussion about this here https://github.com/aspnet/SignalR/issues/955. It's one of the things we moved away from because it complicates a couple of things (like authentication and routing for example).
If you're using multiple hubs just for organization within the same project then I'd recommend using a partial class with more methods.
We're going to provide a sample at some point to show how it would be possible to implement multiple other things per hub (I don't want to call them hubs because that's not one to one with a connection). So the hub is the connection, it has a route and it's where authentication lives. Then we can have another thing which is just another layer that lets you dispatch to other classes in the project.

Thanks @davidfowl - that makes a lot of sense. I'm closing this as a duplicate and keep my eyes out for new SignalR samples. Thanks!


upstream: Inline multiplexed_upstream_integration_test.h into multipl…

upstream: Inline multiplexed_upstream_integration_test.h into multiplexed_upstream_integration_test.cc
Also rename Http2UpstreamIntegrationTest to MultiplexedUpstreamIntegrationTest since the
tests run on HTTP/3 as well as HTTP/2.
Risk Level: N/A
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

/assign @alyssawilk


fail after Let's Encrypt tlsalpnrevocation?

after https://letsencrypt.org/tlsalpnrevocation/ I see these kind of errors in sts-mate:
 /mta-sts-server --my_real_host mta-sts.examle --sts_mx mta.example --sts_mode none --sts_max_age 3600 --acme_endpoint https://acme-staging-v02.api.letsencrypt.org/directory
2022/01/30 22:28:57 http: TLS handshake error from [2001:db8::2]:34618: acme/autocert: unable to satisfy "https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/1563274858" for domain "mta-sts.example": no viable challenge type found
2022/01/30 22:29:44 http: TLS handshake error from [2001:db8::1]:37018: acme/autocert: missing certificate

maybe an issue with the golang implementation? Using golang-1.17.6 here ...

btw: https://github.com/danmarg/sts-mate/blob/master/main.go#L158 should be updated

forcing TLS1.2+ does not solve the issue

caveat: I don't know anything about this.
Is it possible to get a log of the challenge type that Let's Encrypt is serving? Looking at the source, it seems like that's not logged here, but it's this JSON blob--I guess you could also just rebuild while adding logging to here.
Does this happen in prod, or just staging?

I've no idea how to build sts-mate with modifications in acme/autocert
But to eliminate some common bitfalls I just setup sts-mate on a host the not used TLS-ALPN-01 recently
2022/02/01 14:53:45 http: TLS handshake error from [2a00:db8::1]:13087: acme/autocert: unable to satisfy "https://acme-v02.api.letsencrypt.org/acme/authz-v3/74156330340" for domain "ergeht.example": no viable challenge type found

I'll now try an other acme client at the same host ...

# acme.sh --version
https://github.com/acmesh-official/acme.sh
v3.0.2

->  latest ...
acme.sh --issue --domain ergeht.example --alpn --server letsencrypt_test works (as well as with --server letsencrypt = LE-PROD)
To me it looks like LE made some changes incompatible with acme/autocert or the way acme/autocert is used in sts-mate
@danmarg could you ping some golang people?

btw: sts-mail fail in prod and staging

I suspect the best way to do this would be to have a minimal repro and file a bug on https://github.com/golang/go/issues.
https://github.com/golang/go/issues/37489 happens to have a nice minimal example.
I unfortunately don't have a lot of time this week--if you don't get to it by this weekend I can try to take a stab. How's that sound?

that's fine, I'll try it ...

go.mod contain this line, a 3 years old acme/autocert ?

example at golang/go#37489 works

Ah, of course.
9b027f6

Let me know if that doesn't fix it. :)

now it works again. May thanks!
May I ask

which commands did you use to update go.[mod|sum]
what are other reasons for such updates?
which criteria other than my user-complaint should trigger an update of go.[mod|sum]?
may we see a similar problem in 2 years?

Could you suggest documentation for my unterstanding? I've not really knowlege about the role go.[mod|sum] really play...

Sure. This is due to go module versioning, which I'm honestly only passingly familiar with.
For each dependency, I just upgraded to the latest, e.g.
go get golang.org/x/net@latest
I think if I were making regular releases of this tool, I'd upgrade to @latest at each release and run through tests and staging before releasing, but this repo has no tests or anything. ;)
That said, it seems to me that this particular issue--of incompatibility with Lets Encrypt--can equally arise from running an out of date binary. So maybe what a real pro would do here is something like:

Have tests
Have a CI pipeline that exercises those tests
Have regular builds that update to @latest, runs those tests, and either creates a new release branch or creates new binaries
Have regular deployments of the Docker image that use those new releases

Or something like that.


Mention poimandres-jetbrains

I've been waiting for this theme in Jetbrains for so long 🙌🏽 Thaaaanks, man!


Final wave of #nullable in Rx.

The only files left with #nullable disable are:

Map.cs, Lookup.cs, Grouping.cs due to their dependence on Dictionary<TKey, TValue> which we use with a non-null TKey.

These are due for substitution with a more efficient implementation (cf. System.Linq) anyway.
Alternatively, we can absorb the null case check here, and clean up the use sites a bit.

Disposable.Utils.cs is a potpourri forest of ref methods which all would need ref IDisposable? parameters because of mixed use cases, e.g. the original public disposables which support null in various places (and have been annotated as such), as well as direct uses in operators where these helpers are even used in constructors, thus breaking definite assignment analysis to prove that fields are non-null after the constructor exits (i.e. because of ref rather than out with a non-null parameter).

This whole set of utilities should be revisited, ideally re-encapsulating the trivial use cases of SingleAssignment, MultipleAssignment, and Serial variants of disposables, for example in a struct-based helper. That'd also make the usage more clear, rather than have an operator implementation sprinkled with Disposable.XYZ methods. Right now, simply looking at the fields of an operator does not suffice to figure out the state transitions of disposables it contains. Furthermore, many use cases of these helpers ignore the return value.

@danielcweber Is a revisit of Disposable.Utils.cs something you'd be interested in looking into? I do very much like the reduction of allocations this has brought (due to inlining of the disposable logic where possible), but dislike the amount of references to effectively global functions this has introduced throughout the code base.
I think there's a good middle ground by having struct-based implementations of the various disposables, which encapsulate the IDisposable? field, and use the helpers (or even better, encapsulate, them entirely in there). There would be no additional allocation (by virtue of being a struct), the disposable field would be strongly typed and thus self-descriptive, and the use of helpers throughout would be reduced (also cases where we call Try* and ignore the result can be optimized). A possible sketch:
// This can be inlined in operators and encapsulates the common use case (as it did originally in Rx).
struct SerialDisposableValue
{
  private IDisposable? _value;

  // Maybe a constructor if initial assignment is common.

  // Maybe an additional void Initialize(IDisposable?) for the initial assignment
  // iff it's decoupled from the instantiation of the struct value and iff it's clearly
  // more performant than an assignment to Disposable.

  public bool IsDisposed => Disposables.Disposable.GetIsDisposed(ref _current);

  public IDisposable? Disposable
  {
    get => Disposables.Disposable.GetValue(ref _current);

    // Can be optimized, we discard the result of TrySetSerial anyway.
    set => Disposables.Disposable.TrySetSerial(ref _current, value);
  }

  // Possibly another form of assignment given that we're commonly using TrySetSerial
  // and discard its return value. (4/31 use sites do use the value right now)
  // bool TryAssign(IDisposable value) => ...

  public void Dispose() => Disposables.Disposable.Dispose(ref _current);
}

public sealed class SerialDisposable : IDisposable
{
  private SerialDisposableValue _value;

  public bool IsDisposed => _value.IsDisposed;

  public IDisposable Disposable
  {
    get => _value.Disposable;
    set => _value.Disposable = value;
  }

  public void Dispose() => _value.Dispose();
}

Similar for SingleAssignment and MultipleAssignment. There are likely a few "mixed cases" where a single IDisposable field is used with a mix of helper methods, but from quick inspection, most of these are due to the initial assignment using [Try]SetSingle, which can be supported either in a constructor on the value type, or some Initialize method. My guess is that there are only a handful of cases where there's legitimate mixed use of serial/single/multiple operations on a single disposable instance, and this change would make them also stand out more clearly (as atypical patterns that warrant extra scrutinty when making changes).
Current stats:

GetValue - 1 reference
GetValueOrDefault - 3 references
SetSingle - 48 references
TrySetSingle - 22 references
TrySetMultiple - 16 references
TrySetSerial - 31 references
GetIsDisposed - 18 references
Dispose - 111 references

With the proper (re)encapsulation, I'd think all of these would drop to single-digit counts, or vanish entirely behind the struct wrapper.

@bartdesmet This mention went by completely unnoticed by me, sorry. I may have a look.
The reason I revisited this PR is to have a look about the current state of nullability on the public API surface. More specifically, I ran into a bug in my code because e.g. FirstOrDefault does not expose nullability on the result type. What's its current state?

@danielcweber The nullable annotations should be in a good shape now and be consistent with System.Linq. For example:
[return: MaybeNull]
public static TSource SingleOrDefault<TSource>(this IObservable<TSource> source);

and (see here):
[return: MaybeNull]
public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source)

A relevant PR on the dotnet/runtime side is https://github.com/dotnet/runtime/pull/179.

Also relevant: https://github.com/dotnet/runtime/issues/28086

Sorry, meant to say FirstOrDefaultAsync, and the signature should be
IObservable<TSource?> FirstAsync<TSource>(IObservable<TSource> source)
shouldn't it ?

You're right. In fact, DefaultIfEmpty should also be addressed. Do you want to do a PR for these? I'm happy to tackle it as well. Just let me know.
The work has to be done in IObservable<T>, IAsyncEnumerable<T>, and the IQbservable<T> spaces.

Can do.

For the IQbservable stuff, the HomoIcon tool produces a lot of changes. I guess it hasn't been used for a long time but the generated files have been edited by hand. I could do so as well for the FirstOrDefaultAsync and DefaultIfEmpty methods or leave automatic generation to you.

Would love to do the work for Ix.Async but I can't build anything. I keep getting NETSDK1004 no matter how much I restore on any sdk (3.1, 5-preview)...

For the IQbservable stuff, the HomoIcon tool produces a lot of changes. I guess it hasn't been used for a long time but the generated files have been edited by hand. I could do so as well for the FirstOrDefaultAsync and DefaultIfEmpty methods or leave automatic generation to you.

I'm fine with doing the hand-edits for now. I'm not sure when HomoIcon regressed; it may be a candidate for replacement (maybe using Roslyn source generators though it has its own challenges) and extension (by adding support to carry over nullable annotations).
There is a test case as well that checks that the operator surface for both IObservable<T> and IQbservable<T> is symmetric. It may be worth extending that test with checks for the nullable attributes to ensure symmetry at that level (besides the set of operators being symmetric). That can be done in a separate PR and is definitely easier than HomoIcon itself.

Would love to do the work for Ix.Async but I can't build anything.

Haven't seen that yet. Maybe @clairernovotny has some thoughts on what may be going on.

Got it running. It requires a separate restore on the *.Ref-projects (in subfolder refs).


[1286] Add kill switch for user e-mails

Resolves #1286

add disable_user_emails to app configs
cause reservation_status_update to return if set
add spec

Should error messages be updated for instances when the admin disables user emails? For instance, in send_receipt, an email failing to send because emails are disabled currently gives a generic error message.  For example, the error message currently set for the send_receipt method seems fine to me - if a user wants a receipt and the button fails, telling them to contact their administrator seems seems like a good enough path for escalation.
That said, I'm thinking it might be worth logging the failure instead so that if we're ever called to debug such a situation, we'll have a way of easily finding out why e-mails aren't being sent. I'll add a logger call into the method and re-sqaush. Good suggestion!

Ok, all done, ready for a quick double check!

looks good!


SRF Impact: Strategy page

Treat this page like FAQs with collapsing sections to minimize scrolling

Do we still want this with new copy? https://srfimpact.vercel.app/strategy

This strategy page seems ok as is. I think the https://srfimpact.vercel.app/areas-of-focus  could more so benefit from this treatment, starting from "collective ambition".


[Bug] file validator fails if string is a valid filepath but does not exist

[X] I have looked at the documentation here first?
[X] I have looked at the examples provided that may showcase my question here?

Package version eg. v9, v10:
v10
Issue, Question or Enhancement:
Because the isFile() uses os.Stat, it will completely fail if the filepath given does not (yet) exist on the system performing validation.
I have not tested, but I presume the dir validator suffers the same issue.
This can result in two very obvious failure conditions:

If the system validating the data is not the system intending to have the file, it will fail.
If the system validating the data is going to have a file created there but it does not yet exist, it will fail. (Think in terms of e.g. validating a configuration file's content, for instance.)

Code sample, to showcase or reproduce:
Assuming you don't have file /foobarbaz:
package main

import (
	"fmt"

	"github.com/go-playground/validator/v10"
)

type ExampleFile struct {
	Path string `validate:"required,file"`
}

var validate *validator.Validate

func main() {

	var ef = ExampleFile{Path:"/foobarbaz"}
	var err error

	validate = validator.New()

	err = validate.Struct(ef)

	fmt.Println(err)
}

Per the POSIX spec, there are some useful hints.
Suggested Remediation
I'd like to propose instead using the regex pattern:
\([^\0 !$`&*()+]\|\\\(\ |\!|\$|\`|\&|\*|\(|\)|\+\)\)\+

(per here). It seems to most closely match the POSIX spec.
Windows may require a separate pattern:
(^([a-z]|[A-Z]):(?=\\(?![\0-\37<>:"/\\|?*])|\/(?![\0-\37<>:"/\\|?*])|$)|^\\(?=[\\\/][^\0-\37<>:"/\\|?*]+)|^(?=(\\|\/)$)|^\.(?=(\\|\/)$)|^\.\.(?=(\\|\/)$)|^(?=(\\|\/)[^\0-\37<>:"/\\|?*]+)|^\.(?=(\\|\/)[^\0-\37<>:"/\\|?*]+)|^\.\.(?=(\\|\/)[^\0-\37<>:"/\\|?*]+))((\\|\/)[^\0-\37<>:"/\\|?*]+|(\\|\/)$)*()$

(per here).
Obviously since they both include e.g. null byte characters, a string literal will not be usable so they'll probably need some escaping.

Actually, on second thought, it may make more sense to perform this logic:
IF:

The path currently exists
** Then VALID.
The path does not exist
** Attempt to create the file (deleting when done). Something as simple as writing an empty (not nil) byte slice to the path or something with iotuil.WriteFile should do.
*** IF:
**** A permission error (fs.PathError{Err:0xd}), or directory does not exist (fs.PathError{Err:0x2}) - probably a few others - occurs:
***** Then VALID (the error can be safely ignored)
**** An error fs.PathError{Err:0x16} is returned
***** The filepath is INVALID.

(Note that this still suffers from the issue of if e.g, the validating machine is different from the machine the path is intended for, e.g. the validator is Linux and the target machine is Windows. But it's a lot better than before since, you know, it doesn't require the file to exist first.)

Interesting, mine is kind of opposite. Not sure whether I should create another issue or add to this one.
In my case, the file is exists but validator does not see it.
// ..
PhotoURL          string `form:"photo" validate:"file"`
// ..

Example output:
Validator: <- Does not see file
{
  "error": true,
  "messsage": [
    {
      "FailedField": "CreateUser.PhotoURL",
      "Tag": "file",
      "Value": ""
    }
  ]
}

API: <- Sees file
time="2021-07-30T18:04:49+03:00" level=info msg="File URI: stefan-stefancik--g7axSVst6Y-unsplash.jpg"

@TheBeachMaster I'd definitely open another issue, but based on message[0].Value, it seems the struct field isn't properly being populated by your API. file implicates required, so since it's essentially an empty string, ...

A note on

the validating machine is different from the machine the path is intended for

Even if the OS is the same, I cannot use this validation reliably now on a different machine. Because if the dir exists but it is a file (or vice versa), it fails. While it might still be a valid path syntax-wise.

This would be expected, I'd imagine. Use validate=filepath|dirpath if you just want a valid path.


Timeout not working on execute, also no documentation for the same.

https://github.com/markdirish/node-odbc/blob/a9c7ebcb5e5fab3be6c510267405321b53c6ec05/lib/Statement.js#L93
Document link

Oops, it wasn't implemented inside the ExecuteAsyncWorker. I have a PR open now that should fix it.


python-pytest-forked: Upgrade to 1.6.0

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[x] Ready to merge

Summary

What does the PR accomplish, why was it needed?
python-pytest-forked: Upgrade to 1.6.0
Change Log

python-pytest-forked: Upgrade to 1.6.0

Does this affect the toolchain?

NO
Associated issues

#xxxx

Links to CVEs

https://nvd.nist.gov/vuln/detail/CVE-YYYY-XXXX

Test Methodology

Pipeline build id: 504477

Very old PR, I am abandoning it.


NTRs: "basal body patch" & "subapical part of cell"

For annotation of Mahuzier et al. 2018 PMID:29891944, I need two additional CC terms.
name: basal body patch
def: The region in the apical portion of multiciliated epithelial cells where the ciliary basal bodies cluster. [PMID:29891944, PMID:20685736, PMID:20164345, GOC:krc]
synonym_exact: centriolar patch
is_a: cellular anatomical entity | GO:0110165
part_of: apical part of cell | GO:0045177
name: subapical part of cell
def: The region of a polarized cell that is just below the apical region. For example, in a polarized epithelial cell, the apical region has an exposed surface and lies opposite to the basal lamina that separates the epithelium from other tissue so the subapical region is further from the exposed surface and closer to the basal lamina. [PMID:29891944, GOC:krc]
is_a: cellular anatomical entity | GO:0110165

Hi @krchristie : now that we have removed 'nuclear part', should we create terms like 'subapical part of cell' ? That seems inconsistent.
(Note that we still have a few terms such as
'plasma membrane part of cell junction' http://purl.obolibrary.org/obo/GO_0061466
'plasma membrane part of cell-substrate junction.' http://purl.obolibrary.org/obo/GO_0061464
'plasma membrane part of hemidesmosome' http://purl.obolibrary.org/obo/GO_0061465
@ukemi were these forgotten? )
Thanks, Pascale

@pgaudet - I thought about that, but we still have the term 'apical part of cell'. I was thinking it through, I don't think this is a 'part' term, but a region term. We could call it 'subapical region of cell' and it would mean the same thing.

@pgaudet - Looking at the three terms you listed above, they don't seem like they are the same type as the offending 'part' terms that were removed, e.g. nuclear part.
Terms like nuclear part were removed because they were used as grouping terms in order to provide is_a parentage for terms that did not otherwise have an is_a parent but the nuclear part term did not actually specify any specific region of the nucleaus.
In contrast, the three terms you mentioned as well as the existing apical part of cell and the subapical part of cell term that I need for annotation are specifying specific subregions of the cell than cannot otherwise be annotated, similarly to other existing terms like extracellular region.

OK sounds good, thanks !


provider-keymgmt.pod: fix typo

In openssl/doc/man7/provider-keymgmt.pod, from asymmmetric to asymmetric (the previous one adds one extra "m").

I'm a bit confused with CLA. This is a very minor spelling change (almost unnoticeable) and I'm not sure what CLA tag it requires (either trivial or something else). Rules in CONTRIBUTION.md is vague to me.
Can anyone kindly help me out?

This fix is trivial, so you can just add 'CLA: trivial' in the commit message separated by an empty line from the rest of the message. As per: https://www.openssl.org/policies/cla.html

@InfoHunter Thanks for your reply, I've added the CLA: trivial section.

This pull request is ready to merge

Merged to the master, 3.2, 3.1 and 3.0 branches. Thank you for your contribution.


Automatically extract keywords

Arduino projects contains a keywords.txt file that describes all keywords that should be highlighted in the Arduino IDE. It wants every class followed by KEYWORD1 and every method followed by KEYWORD2. This is very tedious and error prone to do by hand, so there should be a script that handles this automatically. This should also be put into the build process. This is related to #8.
https://www.arduino.cc/en/Hacking/LibraryTutorial

This project looks like it might be helpful.
https://github.com/r89m/arduino-keywords


Re-run cargo make generate-api

Description
Re-run cargo make generate-api, fixing some things that went missing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #137 (3315ce1) into main (8b0651c) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #137   +/-   ##
=======================================
  Coverage   65.06%   65.06%
=======================================
  Files         312      312
  Lines       51717    51717
=======================================
  Hits        33652    33652
  Misses      18065    18065

Flag
Coverage Δ

integration
65.06% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Adx 723 validation workflow

This PR significantly improves the validation UI ready for the 22 Estimates.

Nicer badges that give clearer information
Animated throbber in the badge for those jobs still running.
Asynchronous update of badges if the validation job is incomplete at the point of loading the page. based on 5s polling of the api.
Clear link to the view the validation report "View Error Report" if validation errors or fails.
Auto open all error details in the report so that they are not hidden.
Clearer layout of validation badges in pages.

The approach I've taken here is to amend the existing implementation rather than redesign (it would definitely benefit from a redesign!) Validation doesn't have any JS tests in place.  I have updated the python tests that are affected by this commit, though they are currently skipped due to a CKAN2.9 oddity.

I apologise - I tagged the wrong Jira issue.  See my newly opened PR with the correct Jira issue instaead.


bundle protobuf messages

fixes #1483 #1503
replaces #1582 #1583
it's simplest to use buf generate to create the definitions

going to wait until recent core message type changes are merged for ibc compat before trying to merge this


collectd: 5.7.2 -> git?

collectd has almost 500 commits since its last release 5.7.2.
Many of them are about supporting newer versions of software which collectd monitors.
And that software is already updated to the newer version in NixOS.
Collectd releases naturally delay few months compared to releases of software it monitors.
For example, collectd 5.7.2 does not work well with new libvirt version included in NixOS.
Such issues are usually fixed in NixOS by cherry-picking updates from git, but taking into account

the variety of software collectd is aware of,
number of commits to review,
the constant nature of the release delay (which would not be resolved in 5.7.3 or 5.8, because the monitored software would go forward too),

would it make sense to follow git branch in nixos-unstable instead of being stuck to the outdated-by-design last release version?

Seems like this issue affects all users of collectd, not only NixOS. IMHO, the best thing is to help make new collectd releases happen rather than working around the the problem by doing local fixes in nixpkgs.

Related https://github.com/collectd/collectd/issues/2420

collectd 5.8.0 was released: https://github.com/collectd/collectd/releases/tag/collectd-5.8.0

collectd 5.8.0 was released

Yes, and it already has ~100 commits with post-release fixes.
Following git-version might still have sense


fix(fix teams update option): fix teams update option

Description
The issue here is that the gear icon is not present for editing of teams that owns by a user
Fixes issue
#1944
Screenshots / Screen recording
screencast-test.zesty.io_3000-2023.11.16-17_50_24.webm

@glespinosa can you check the color violet of the button in the video ?

the color violet here is the default color primary i think of the SWAL

would you like me to change that color?

@glespinosa can you check the color violet of the button in the video ?

the color violet here is the default color primary i think of the SWAL  would you like me to change that color?

can we sync that to our theme

nope , it is we either target its css or use a different modal dialog that is using mui

@glespinosa can you check the color violet of the button in the video ?

the color violet here is the default color primary i think of the SWAL  would you like me to change that color?

can we sync that to our theme

nope , it is we either target its css or use a different modal dialog that is using mui, or use this package https://www.npmjs.com/package/material-ui-confirm

I tried using the material-ui-confirm


Using mpl_connect in the notebook

I just tried using mpl_connect to test out some simple key and button press events and I get no response. I've attached a screen shot of my code. Am I missing a step or has this not been implemented?

I don't think there is any way for this to work. We should add it to the wiki.  #220 shows an IPython widget approach that can accomplish things like this, but the interface may have changed a lot since that experiment.


[SPARK-32307][FOLLOW-UP][SQL] Set outputEncoder to None for ScalaUDF.preCanonicalized

What changes were proposed in this pull request?

This PR proposes to set  outputEncoder to None for ScalaUDF.preCanonicalized.
Why are the changes needed?

We once did the same thing to inputEncoders in https://github.com/apache/spark/pull/29106 to fix a bug where the canonicalized ScalaUDFs for the same ScalaUDF becomes different after resolving inputEncoders.  So this PR applies the same fix to outputEncoder to avoid hitting the same issue in the future. Note that we don't have the issue caused by outputEncoder now since we don't resolve outputEncoder yet.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

Pass existing tests.

Test build #146334 has started for PR 34937 at commit 174a6f9.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50808/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50808/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/50808/

Test build #146334 has finished for PR 34937 at commit 174a6f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/146334/

thanks, merging to master!


Do not show scrollbar on autocomplete component IE11

Scrollbars are shown on the autocomplete component in IE11.
It is not possible to use the scrollbar after it appears which confuses my users.
I am not sure IE implementations are wanted, but this in any case disables the scrollbar so that the autocomplete looks more like in chrome.

Thanks!


Installation via setup.py is depreciated

Hi @DanHickstein and @MikhailRyazanov (a belated happy new year!) - I have been playing with my new Orangepi5 and was testing Anaconda python on it. However, the installation of PyAbel complains about the use of setuptools, which appears to be depreciated:
(py310) [orangepi5:.+e/Python/PyAbel]$ python setup.py install --user
================================================================================
Warning: Cython extensions will not be built as Cython is not installed!
         This means that the abel.direct C implementation will not be available.
================================================================================
running install
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/usr/lib/python3/dist-packages/setuptools/command/easy_install.py:158: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.

I wonder what is an alternative installation method, apart from pip?   I haven't yet searched for a solution - using you guys as a short-cut!
FYI PyAbel benchmarks (default OS had older versions of setuptools), Dell has mkl libraries installed:
Dell Optiplex                                          Orange Pi 5                                             Raspberry pi 4B
i7-9700 CPU @ 3.00GHz                                  Cortex-A76/A55 @ 2.4GHz                                 Cortex-A72 @ 1.5GHz
PyAbel benchmark run on x86_64                         PyAbel benchmark run on aarch64                         PyAbel benchmark run on

time in milliseconds                                   time in milliseconds                                    time in milliseconds

=== Basis generation ==============================    === Basis generation ==============================     === Basis generation ==============================

Method              n = 501    n = 1001    n = 2001    Method              n = 501    n = 1001    n = 2001     Method              n = 501    n = 1001    n = 2001
---------------------------------------------------    ---------------------------------------------------     ---------------------------------------------------
basex                 572.4      3466.8     23908.4    basex                1014.0      6031.0     40596.5     basex                4706.2     30988.6    225344.7
daun                    1.9         4.2         9.5    daun                    3.5         7.9        19.3     daun                   17.6        46.6       122.4
linbasex               12.0        40.0       171.1    linbasex               25.2       111.5       449.0     linbasex              169.7       613.4      2471.5
onion_peeling           1.6         4.0        18.9    onion_peeling           4.3        21.5       145.4     onion_peeling          38.9       346.9      2719.5
rbasex                  7.0        16.1        50.5    rbasex                 14.0        41.1       173.8     rbasex                 78.1       306.6      1708.2
three_point             3.9        13.5        63.2    three_point            10.1        40.0       171.6     three_point            52.2       427.0      2074.7
two_point               1.2         4.3        20.1    two_point               2.5        10.6        42.9     two_point              12.7       108.2       479.9

=== Forward Abel transform ========================    === Forward Abel transform ========================     === Forward Abel transform ========================

Method              n = 501    n = 1001    n = 2001    Method              n = 501    n = 1001    n = 2001     Method              n = 501    n = 1001    n = 2001
---------------------------------------------------    ---------------------------------------------------     ---------------------------------------------------
basex                   0.2         4.9        57.9    basex                   2.3        16.7       127.6     basex                  70.8       638.0      5020.7
basex(var.reg.)         3.8        19.2       105.6    basex(var.reg.)         9.9        58.9       413.8     basex(var.reg.)       178.0      1581.5     12257.4
daun                    0.3         1.8        14.0    daun                    2.4        17.1       129.4     daun                   74.4       651.1      5086.9
direct_C               10.2        68.3       518.0
direct_Python         160.2      1135.2     12098.1    direct_Python         352.3      2986.9     24171.2     direct_Python        4021.5     57374.2    446129.0
hansenlaw               7.5        28.7       100.2    hansenlaw              11.1        46.1       227.6     hansenlaw              65.1       262.3      2008.7
rbasex                  1.8         7.6        32.0    rbasex                  3.4        14.2        54.1     rbasex                 26.3       198.4       770.2
rbasex(None)            0.9         4.3        17.8    rbasex(None)            1.8         7.2        27.4     rbasex(None)            8.4        59.0       227.2

 === Inverse Abel transform ========================   === Inverse Abel transform ========================     === Inverse Abel transform ========================

 Method              n = 501    n = 1001    n = 2001   Method              n = 501    n = 1001    n = 2001     Method              n = 501    n = 1001    n = 2001
 ---------------------------------------------------   ---------------------------------------------------     ---------------------------------------------------
 basex                   0.2         1.5        13.2   basex                   2.4        16.7       127.3     basex                  70.1       644.0      5022.3
 basex(var.reg.)         2.7        11.4        51.4   basex(var.reg.)        10.0        59.1       414.3     basex(var.reg.)       192.5      1694.9     13349.0
 daun                    0.3         1.8        13.0   daun                    2.2        13.2        86.1     daun                   55.3       536.3      3763.8
 daun(var.reg.)          1.6         6.4        39.0   daun(var.reg.)          8.0        48.8       354.2     daun(var.reg.)        177.8      1791.9     20631.5
 direct_C               10.9        74.9       520.9
 direct_Python         170.1      1138.1     11991.7   direct_Python         363.1      3022.3     24247.4     direct_Python        4106.8     57972.4    452701.8
 hansenlaw               8.6        30.7       109.6   hansenlaw              11.9        48.1       246.9     hansenlaw              69.2       278.4      2047.0
 linbasex               83.9       328.9      2231.6   linbasex              259.1      1435.2      8680.8     linbasex             1637.6     10379.6     74991.0
 onion_bordas          214.0      1041.4     11151.7   onion_bordas          426.1      2262.4     16941.7     onion_bordas         2144.1     11407.2     79856.4
 onion_peeling           0.2         1.6        13.0   onion_peeling           2.4        16.8       129.4     onion_peeling          70.6       636.5      5022.9
 rbasex                  1.6         7.2        32.4   rbasex                  3.4        14.2        54.0     rbasex                 26.3       196.7       768.9
 rbasex(None)            1.0         4.2        17.4   rbasex(None)            1.8         7.2        27.3     rbasex(None)            8.4        59.9       227.2
 three_point             0.2         1.4        12.8   three_point             2.4        17.0       140.2     three_point            70.3       638.7      5122.6
 two_point               0.2         1.6        13.0   two_point               2.5        16.8       141.5     two_point              67.0       639.0      5140.4

Steve

This web page has an indepth analysis Summary (I cheated and went straight to the Summary). pip install -e <dir path> appears to be enough.
(py310) [orangepi5:.+e/Python/PyAbel]$ pip install -e ./
Obtaining file:///home/stg121/Software/Python/PyAbel
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: setuptools>=44.0 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (59.6.0)
Requirement already satisfied: six>=1.10.0 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (1.16.0)
Requirement already satisfied: scipy>=1.2 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (1.8.0)
Requirement already satisfied: numpy>=1.16 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (1.21.5)
Building wheels for collected packages: PyAbel
  Building editable for PyAbel (pyproject.toml) ... done
  Created wheel for PyAbel: filename=PyAbel-0.9.0-0.editable-py3-none-any.whl size=8014 sha256=811336fc12dfce7d145ddade42f46f02ae381ff78863501bd5f19fe52687e379
  Stored in directory: /tmp/pip-ephem-wheel-cache-23_bf4yt/wheels/b9/8f/bd/17a7a600167c4f9f1b6d7118701459ca6ed5cd5d477bf0f2e8
Successfully built PyAbel
Installing collected packages: PyAbel
  Attempting uninstall: PyAbel
    Found existing installation: PyAbel 0.9.0
    Uninstalling PyAbel-0.9.0:
      Successfully uninstalled PyAbel-0.9.0
Successfully installed PyAbel-0.9.0

Happy New Year to you too!
Thanks for pointing this out. It does seem like a good idea to switch our recommended installation method to whatever is currently considered best practice. What didn't work about the pip install?

Thanks for the late night reply Dan.
It seem(s) my problem(s) related to Anaconda python 3.10.  Anaconda python 3.11 does install using setup.py and pip install ./.  (see below)
(py310) [orangepi5:.+e/Python/PyAbel]$ pip install ./
Processing /home/stg121/Software/Python/PyAbel
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.16 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (1.21.5)
Requirement already satisfied: six>=1.10.0 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (1.16.0)
Requirement already satisfied: setuptools>=44.0 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (59.6.0)
Requirement already satisfied: scipy>=1.2 in /usr/lib/python3/dist-packages (from PyAbel==0.9.0) (1.8.0)
Building wheels for collected packages: PyAbel
  Building wheel for PyAbel (pyproject.toml) ... done
  Created wheel for PyAbel: filename=PyAbel-0.9.0-py3-none-any.whl size=155108 sha256=a5dc1652a2b24705de8109fb874651e7ff9f2b70d054a3471218e6ccc4d3d590
  Stored in directory: /tmp/pip-ephem-wheel-cache-a8svj053/wheels/b9/8f/bd/17a7a600167c4f9f1b6d7118701459ca6ed5cd5d477bf0f2e8
Successfully built PyAbel
Installing collected packages: PyAbel
  Attempting uninstall: PyAbel
    Found existing installation: PyAbel 0.9.0
    Uninstalling PyAbel-0.9.0:
      Successfully uninstalled PyAbel-0.9.0
Successfully installed PyAbel-0.9.0

(py310) [orangepi5:.+e/Python/PyAbel]$ pd ~/
(py310) [orangepi5:/home/stg121]$ python
Python 3.10.9 (main, Jan 11 2023, 15:15:32) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import abel
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/stg121/anaconda3/envs/py310/lib/python3.10/site-packages/abel/__init__.py", line 25, in <module>
    from . import basex
  File "/home/stg121/anaconda3/envs/py310/lib/python3.10/site-packages/abel/basex.py", line 18, in <module>
    from abel.tools.polynomial import PiecewisePolynomial
  File "/home/stg121/anaconda3/envs/py310/lib/python3.10/site-packages/abel/tools/__init__.py", line 12, in <module>
    from . import symmetry
  File "/home/stg121/anaconda3/envs/py310/lib/python3.10/site-packages/abel/tools/symmetry.py", line 10, in <module>
    from scipy import fftpack
  File "/usr/lib/python3/dist-packages/scipy/fftpack/__init__.py", line 94, in <module>
    from ._basic import *
  File "/usr/lib/python3/dist-packages/scipy/fftpack/_basic.py", line 8, in <module>
    from scipy.fft import _pocketfft
  File "/usr/lib/python3/dist-packages/scipy/fft/__init__.py", line 91, in <module>
    from ._helper import next_fast_len
  File "/usr/lib/python3/dist-packages/scipy/fft/_helper.py", line 3, in <module>
    from ._pocketfft import helper as _helper
  File "/usr/lib/python3/dist-packages/scipy/fft/_pocketfft/__init__.py", line 3, in <module>
    from .basic import *
  File "/usr/lib/python3/dist-packages/scipy/fft/_pocketfft/basic.py", line 6, in <module>
    from . import pypocketfft as pfft
ImportError: /home/stg121/anaconda3/envs/py310/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/lib/python3/dist-packages/scipy/fft/_pocketfft/pypocketfft.cpython-310-aarch64-linux-gnu.so)
>>> quit()

3.11: Is fine:
(py311) [orangepi5:.+e/Python/PyAbel]$ pip install ./
Processing /home/stg121/Software/Python/PyAbel
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.16 in /home/stg121/.local/lib/python3.11/site-packages/numpy-1.24.1-py3.11-linux-aarch64.egg (from PyAbel==0.9.0) (1.24.1)
Requirement already satisfied: setuptools>=44.0 in /home/stg121/anaconda3/envs/py311/lib/python3.11/site-packages (from PyAbel==0.9.0) (65.5.0)
Requirement already satisfied: scipy>=1.2 in /home/stg121/.local/lib/python3.11/site-packages/scipy-1.10.0-py3.11-linux-aarch64.egg (from PyAbel==0.9.0) (1.10.0)
Requirement already satisfied: six>=1.10.0 in /home/stg121/.local/lib/python3.11/site-packages/six-1.16.0-py3.11.egg (from PyAbel==0.9.0) (1.16.0)
Building wheels for collected packages: PyAbel
  Building wheel for PyAbel (pyproject.toml) ... done
  Created wheel for PyAbel: filename=PyAbel-0.9.0-py3-none-any.whl size=155108 sha256=93614f004340a703aff42422ff12ae2a446fabb6aa6b8c5c87ed90e52c3b075a
  Stored in directory: /tmp/pip-ephem-wheel-cache-n77t44s_/wheels/93/11/90/86ef91e48d6594dd6abcf4f1da76730eb95503cb5c7c8e35c1
Successfully built PyAbel
Installing collected packages: PyAbel
  Attempting uninstall: PyAbel
    Found existing installation: PyAbel 0.9.0
    Uninstalling PyAbel-0.9.0:
      Successfully uninstalled PyAbel-0.9.0
Successfully installed PyAbel-0.9.0
(py311) [orangepi5:.+e/Python/PyAbel]$ pd
py311) [orangepi5:/home/stg121]$ python
Python 3.11.0 (main, Jan 16 2023, 14:11:53) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import abel
>>> abel.benchmark.AbelTiming()
n = 301
  basex
    estimated ???, actually 1.054 s
  direct_Python
    estimated ???, actually 0.181 s
  onion_peeling
    estimated ???, actually 0.005 s
      :
PyAbel benchmark run on aarch64

time in milliseconds

=== Basis generation ==================

Method              n = 301     n = 501
---------------------------------------
basex                 633.0      1270.4
daun                    5.6         4.1
linbasex                9.7        25.9
onion_peeling           3.6        20.8
rbasex                  9.0       102.3
three_point             4.8        10.4
two_point               2.5         2.6

=== Forward Abel transform ============

Method              n = 301     n = 501
---------------------------------------
basex                   0.6         2.4
basex(var.reg.)       210.1       205.4
daun                    0.6         2.5
direct_Python          89.5       371.9
hansenlaw               5.6        12.2
rbasex                  4.7         3.5
rbasex(None)            2.5         1.8

=== Inverse Abel transform ============

Method              n = 301     n = 501
---------------------------------------
basex                   0.6         2.3
basex(var.reg.)       210.2       245.3
daun                    0.7         2.4
daun(var.reg.)        232.6       225.8
direct_Python          91.2       373.3
hansenlaw               6.1        14.4
linbasex               81.9       254.9
onion_bordas          149.8       460.3
onion_peeling           1.3         2.4
rbasex                  6.1         3.5
rbasex(None)            2.5         1.8
three_point             0.6         2.4
two_point               0.6         2.4

The remaining issue, is whether setup.py is depreciated (and as an aside, whether Python 3.11 is indeed faster than <= 3.10)

Happy new year to all!
I would agree that declarative package description should be cleaner than an imperative setup.py, but I have no idea how to do this with Cython extensions (moreover, doing so optionally). Cython documentation itself only says: “Write a distutils/setuptools setup.py. This is the normal and recommended way.” and lists several other ways, which are no better...
Since we plan to move from Travis CI to GitHub actions for testing and deployment (see #365), maybe there are already some “standard” solutions for this? What other projects using Cython do?

I've looked at some other projects and read some documentation, and it seems that:

For example, NumPy, SciPy and Matplotlib still use non-trivial setup.py, so it's probably unavoidable.
According to current setuptools docs, running python setup.py directly is deprecated, but using the setup.py file itself for configuration is supported (although they recommend to “expose as much as possible configuration in a more declarative way via the pyproject.toml or setup.cfg, and keep the setup.py minimal with only the dynamic parts”).
The recommended installation is apparently usingpip install .  # replacement for python setup.py install
pip install --editable .  # replacement for python setup.py develop

Thus, we probably need to update “Installation” in our README according to this. Can somebody check that pip install . works in Python 2 as well? If yes, we should just remove the subtitles “With pip” and “With setuptools”, and replace python setup.py <...> with these new pip install [-e] . commands.
Splitting the configuration into setup.py/setup.cftg/pyproject.toml is probably not very meaningful, I think.

Thanks for the excellent assessment @MikhailRyazanov!
I can confirm that pip install . works under python2:
(base) [etalon:.+e/Python/PyAbel]$ git clone https://github.com/PyAbel/PyAbel.git
Cloning into 'PyAbel'...
remote: Enumerating objects: 8677, done.
remote: Counting objects: 100% (1493/1493), done.
remote: Compressing objects: 100% (503/503), done.
remote: Total 8677 (delta 1008), reused 1345 (delta 957), pack-reused 7184
Receiving objects: 100% (8677/8677), 22.78 MiB | 17.58 MiB/s, done.
Resolving deltas: 100% (6218/6218), done.
P(base) [etalon:.+e/Python/PyAbel]$ cd PyAbel
(base) [etalon:.+n/PyAbel/PyAbel]$ pip2 install .
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Processing /home/stg121/Software/Python/PyAbel/PyAbel
Requirement already satisfied: numpy>=1.16 in /home/stg121/.local/lib/python2.7/site-packages (from PyAbel==0.9.0) (1.16.6)
Requirement already satisfied: scipy>=1.2 in /home/stg121/.local/lib/python2.7/site-packages (from PyAbel==0.9.0) (1.2.3)
Requirement already satisfied: setuptools>=44.0 in /usr/lib/python2.7/dist-packages (from PyAbel==0.9.0) (44.1.1)
Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python2.7/dist-packages (from PyAbel==0.9.0) (1.10.0)
Building wheels for collected packages: PyAbel
  Building wheel for PyAbel (setup.py) ... done
  Created wheel for PyAbel: filename=PyAbel-0.9.0-cp27-cp27mu-linux_x86_64.whl size=515604 sha256=5584c15ca723c748890e4080a3302492cdf37872ab068d923c7e46e81e861779
  Stored in directory: /tmp/pip-ephem-wheel-cache-d_Ep75/wheels/cd/81/f4/e217ef4b70e0fedbcc200830632d3332eed9d820a70168b018
Successfully built PyAbel
Installing collected packages: PyAbel
  Attempting uninstall: PyAbel
    Found existing installation: PyAbel 0.8.0
    Uninstalling PyAbel-0.8.0:
      Successfully uninstalled PyAbel-0.8.0
Successfully installed PyAbel-0.9.0
(base) [etalon:.+n/PyAbel/PyAbel]$ cd ..

(base) [etalon:.+e/Python/PyAbel]$ python2
Python 2.7.18 (default, Jul  1 2022, 11:13:17)
[GCC 11.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import abel
>>> abel.benchmark.AbelTiming()
n = 301
  three_point
    estimated ???, actually 0.003 s
      :

PyAbel benchmark run on x86_64

time in milliseconds

=== Basis generation ==================

Method              n = 301     n = 501
---------------------------------------
basex                 269.2       810.0
daun                    2.7         3.3
linbasex                7.5        18.6
onion_peeling           2.5         5.0
rbasex                  8.7        18.4
three_point             3.0         6.8
two_point               0.6         1.5

=== Forward Abel transform ============

Method              n = 301     n = 501
---------------------------------------
basex                   0.3         0.8
basex(var.reg.)        85.1       115.4
daun                    0.4         1.0
direct_C                4.9        14.5
direct_Python          51.4       209.7
hansenlaw               3.2         7.8
rbasex                  1.3         3.5
rbasex(None)            0.7         2.0

=== Inverse Abel transform ============

Method              n = 301     n = 501
---------------------------------------
basex                   0.2         0.7
basex(var.reg.)         9.4        11.5
daun                    0.3         0.9
daun(var.reg.)         45.4        16.9
direct_C                7.2        27.1
direct_Python          88.6       247.9
hansenlaw               5.1        11.4
linbasex               71.9       129.6
onion_bordas          125.6       298.6
onion_peeling           0.2         0.8
rbasex                  1.2         3.3
rbasex(None)            0.7         2.0
three_point             0.2         0.5
two_point               0.2         0.5
>>>

Thanks, @stggh!
I thought that we would also need to update Travis and AppVeyor files to use pip install ., but they already use it! So this method not only works but in fact is tested. :–)

Off-topic: Orange Pi 5 looks serious. Does it really work without a heatsink?

Good value. I am still testing. Heat sink arriving in a few days:

@MikhailRyazanov - I may have misinterpreted your question on the Orangepi5. It operates fine without a heatsink, I did not notice any throttling, in some code tests. However, more demanding computation may benefit from having the heatsink. The heatsink arrived yesterday, and appears to do its job, according to qualitative sensors temperature readings.
My am investigating using the orangepi5 as a (replacement) mythtv system (back and frontend).

And regarding Python 3.11/3.10 performance, I don't think that we'll notice any significant difference except maybe for direct_Python, since everything else spends most of the time in NumPy code...

Solved by PR #372


integer tw_stime

Another thought to document...
By having a 64-bit integer tw_stime rather than a floating-point, you can basically eliminate any precision issues while still having a very long time-frame available. For instance, if you work in picoseconds (1e-12), the max time you can have is approx 213 days. Bumping that up to nanoseconds would get you 213,000 days.
Not sure what the implications are of changing this type - I know for example the RNG is floating point. Though I would think that most uses of tw_stime in ROSS are comparisons, as the users drive event times.

Some of the OMNeT++ documentation discusses some of the benefits of having a 64-bit integer based time representation.

I believe that we use floating points so that users can easily add jitter (via RNG) and avoid ties. Ties would be one negative to switching to integer time-stamps.

resolved by #159 and the new TW_STIME API
Model developers now can use their own tw_stime types. Thus, it would be up to the model to decide if a 64-bit integer is appropriate.


Add authentication to OSS Index advisor options to increase rate limit

There are currently no authentication options available for using Sonatype OSS Index with a registered account. As the recently introduced low rate limits for unregistered users, this would be really useful (see https://ossindex.sonatype.org).
Authenticated requests need to use HTTP Basic authentication (https://ossindex.sonatype.org/doc/rest). It seems like there is an extra endpoint for such authenticated requests (api/v3/authorized/component-report).

Our OSS Index client actually already supports authentication; this only needs to be exposed via the options. I'll implement that soon-ish.


TANZU-3572: handle Spring Cloud Gateway failovers

lgtm, thx!

from @gm2552

What are you trying to monitor here? Are you trying to monitor that the gateway is working, or that the UI app is working? If you are trying to monitor the gateway, there is an actuator that should be acceible.
I stand corrected on the Gateway actuator as I'm not sure you will be able to access it using the spring-cloud-gateway K8s service name because the actuator is on another port that is not accessible via the K8s service. Based on our Zoom conversation yesterday, the changes here will work for your use case, however /diningsearch/health is technically not a URL that is part of the UI app (it works more on accident as opposed to on purpose). I would suggest making the path / instead of diningsearch/health.

updated the healthcheck path from /diningsearch/health to /


[ci skip] [cf admin skip] NO_CI adding bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I've added bot automerge as instructed in #19.
Merge this PR to enable bot automerging.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


[Feature]: Add PKG api

Is your feature request related to a problem? Please describe.
awa
Describe the solution you'd like
Add a series of APIs to help developers integrate lipweb into their own applications
Describe alternatives you've considered
No response
Additional context
No response

诶？好像确实有api存在，我在细找找有没有文档


FLPATH-364: prebuilt vm onboarding tasks

What this PR does / why we need it:
prebuilt vm onboarding tasks
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 (FLPATH-xxxx):
Fixes #364
Change type

[ ] New feature
[ ] Bug fix
[ ] Unit tests
[ ] Integration tests
[ ] CI
[ ] Documentation
[ ] Auto-generated SDK code

Impacted services

[ ] Workflow Service
[ ] Notification Service

Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.

/lgtm


Cycle driver isn't using proper cycle time

The documentation says the config parameter, millis, determines the complete cycle. But it's actually being used to time each half-cycle. Either the documentation needs to be corrected or the driver needs to be. Personally, I think it makes sense to specify the whole cycle's period so I feel the driver should be fixed.

The driver has been adjusted.


Keyboard scroll with Flatlist

Hi,
My flatlist getting srolled more than keyboard height .I have text input in each render item.its working for to text input but for bottom it scrolling to much

same problem!

Hi @shimil2017! Can you explain a little bit more your issue?

I'll close this for being very old. Thanks for all the comments 😻
Please ping me if you still see it as an issue.


Not adding leaflet layer each time map is instantiated

Seems like our very own weird-zoom-bug is due to a problem of adding the same layer each time the map is instantiated. For example, when a filter is applied. Seems like @javisantana and I have cleaned a little bit the old code.
CR: @javisantana
cc @alonsogarciapablo
No more :scream: faces showing a Deep-Insights bug.

Since the instanciation is done outside of the layer the code is simplified, I remember when I had to do that hack.
:es: \o/ \o/ \o/ \o/ :es:

Simpler! :shipit:


tokenizer goes into deadlock when some special cases

The tokenizer goes into deadlock when some special cases, and the error occurs when a wordpiece cannot be found in vocabulary and the '#' key in the vocabulary.

meet the same problem

meet the same problem


Support subqueries

Which issue does this PR close?

Related to #1209
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

Closing stale PRs -- please reopen if this was a mistake

Plz reopen the PR, I start to write the ticket 😄 @alamb


LineFilter API and context

https://github.com/sourcegraph/run/pull/12#discussion_r871013882
Questions:

context propagation (JQ, nested commands, etc)
error propagation (should errors be a hard stopper, or should implementations write errors to the output?)

currently:
type LineFilter func(line []byte) (newLine []byte, skip bool)

Ideas:
type LineFilter func(ctx context.Context, line []byte) (newLine []byte, skip bool)

The above is in https://github.com/sourcegraph/run/commit/058d9db72b0421157c277f29c5dc7a21e53202fd
type LineFilter func(ctx context.Context, line []byte, out io.Writer)

type LineFilter func(ctx context.Context, line []byte, out io.Writer) error

This last one might be my preferred API

Closed by https://github.com/sourcegraph/run/pull/24


Ambiguity on OLE DB Driver 18 for SQL Server download page

Not sure where to file this issue to, trying here.
The "Microsoft® OLE DB Driver 18 for SQL Server®" download page allows you to download two identically named files with no disambiguation. Obviously, one is for 32bit and one is for 64bit, but the page provides no way to tell which one.
Problem is on download site here: https://www.microsoft.com/en-us/download/details.aspx?id=56730
Can we get some identifying information associated here when choosing which of the files to download? Confusing to have no way to tell which one is 64bit.

@williamadba -- William, thank you for your feedback.  The larger file is the 64-bit version.
You're welcome to add your suggestion here:

SQL Server Feedback


ProblemMatcher - owner

When I run tslint as a task, using the $tslint5 ProblemMatcher, the problems will be shown twice, as soon as I open an affected file. When I fix the problem, one of them will disappear, but the one from the task will still remain.
The same task worked well with the now deprecated TSLint Plugin.
My guess is, that since this plugin is running tslint as a tsserver-plugin, the owner of the problems is not tslint anymore.
So the owner-property of the ProblemMatchers should probably be changed to the owner of tsserver.

I was looking for the owner name of the tsserver and found that it is typescript. I then modified my lint task to use that owner and it worked as expected.
However, there is one issue with that:
If the tsserver is not started yet, all warnings will be cleared as soon as tsserver starts (for example when opening the first *.ts file).
Therefore I searched for the $tsc problemMatcher and found that it only applies to closed documents.
This seems to be a good solution for the tslint problem matcher too.

Closing since TSLint has been deprecated


Wrong return value in evdi_get_modes() function

I'm using DisplayLink devices on my Laptop with Ubuntu18.04. My external monitor can't support 848x480  resoultion. It will show "out of range" on the screen.  I checked my monitor EDID information and didn't find 848 x480 mode. Then I reviewed  EVDI module codes and found there is a wrong return value in the evdi_get_modes() function.
In DRM driver, connector helper ->get_modes() vfunc should be returned with drm_add_edid_modes() return value.
This return value should be the number of modes added.  if we couldn't find any modes, we should return 0;
In EVDI driver, we return the "ret" directly. But this value will be always zero.  It's wrong.
You can refer to drm_helper_probe_single_connector_modes function in the kernel.
Please help to correct it. Thanks.

OK, fixed in 46938d954de43ff420f647dbfd8e499fab649d73.
Closing


Fix the StructSchema load reader cache invalid

Motivation
StructSchema LoadingCache for cache reader, but key is byte[], it will compare with the address's  hashcode. So every decode will generate a new reader so we should change the type of the key for LoadingCache
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes
Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The schema: (yes)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: (no)
The admin cli options: (no)
Anything that affects deployment: (no)
Documentation
Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

@congbobo184 Nice catch! I thought I have fixed that in #4836


[Noetic] can't install both mrpt2 and mrpt_libposes; conflicting CKalmanFilterCapable.h

This issue breaks the build of mrpt_localization, but I'm opening the issue here instead of https://github.com/mrpt-ros-pkg/mrpt_navigation because I suspect the root cause is here.
https://build.ros.org/view/Nbin_uF64/job/Nbin_uF64__mrpt_localization__ubuntu_focal_amd64__binary/121/consoleFull
It looks like the root cause of the mrpt_localization build failing is two packages trying to install the same header file:
05:52:40   5395 'Unpacking ros-noetic-mrpt2 (2.13.5-1focal.20240806.150347) ...'
05:52:40   5396 'dpkg: error processing archive /tmp/apt-dpkg-install-qN3u1I/1159-ros-noetic-mrpt2_2.13.5-1focal.20240806.150347_amd64.deb (--unpack):'
05:52:40   5397 ' trying to overwrite '/opt/ros/noetic/include/mrpt/bayes/include/mrpt/bayes/CKalmanFilterCapable.h', which is also in package ros-noetic-mrpt-libposes 2.13.7-2focal.20240825.172915'

Hmm... I see. That's because the ROS1 version of mrpt_navigation is basically EOL, and it depends on other packages that have been upgraded to use the new mrpt_lib* packages but it has not been upgraded yet.
I'll see if I can do it and make a new bloom-release of it...

@sloretz Should be fixed with https://github.com/ros/rosdistro/pull/42715

@sloretz I seems it got wrong here:
https://build.ros.org/job/Nbin_uF64__mrpt_local_obstacles__ubuntu_focal_amd64__binary/89/console
I also saw exactly the same issue with another (cmake) Noetic package, so it must be something related to LD_LIBRARY_PATH (?). I'll try to fix it, but if the deadline approaches and you have to move on, feel free to remove the problematic packages for now... :-(

PS: It worked right in local ROS1 Noetic builds and in the farm's "-dev" builds, that's why I made the release. The issue has to do with debian dh_* tools...

@sloretz I fixed a coupled of issues, like patching the debian/rules.em for all failing mrpt_navigation and mrpt_slam packages and fixing typos in cmake scripts intended to work on both ros2 & ros1 (but was wrong for ros1), and made new releases:

https://github.com/ros/rosdistro/pull/42727
https://github.com/ros/rosdistro/pull/42728
https://github.com/ros/rosdistro/pull/42729

If you want to give them a try before the sync, or just remove the failing ones for this sync and hold them for the next one.
Thanks!

Thanks @jlblancoc ! I merged them to see if they fix the regressions.

@sloretz  Great, no regressions now! :-)
There's only now one package failing (mp2p_icp for Noetic), but since there's no former release for it in ROS1, I guess it doesn't count as regression. Will try to get it green for the next cycle.


Project logo

Pint has one

JSR 363 has one

maybe we should have one too... ;-)

How do you like those?

Nice, thank you :-) Could you please split them to 3 separate posts so we can 👍 on each one separately?

Logo 2 3D Cube

Logo 3 HyperCube

Nice, thank you :-) Could you please split them to 3 separate posts so we can 👍 on each one separately?

Sure ;) here you go

I can't help myself to remix those. This one is hard to overlook :-)

^^ this one is gold ... hahahahaha

I love the C++ logo and also take a lot of inspiration from it as well (see here: https://train-it.eu 😉).
However, I am not sure how it relates to the units project? Does it mean that we are turning C++ on its head? 😉

I didn't consider that interpretation.

This is an old issue, but I just discovered it.
Since I saw that you define mag_pi I thought you should have a logo featuring a Magpie. :grinning:  I'm not good at abstracting images, but the bird looks like this: https://commons.wikimedia.org/wiki/File:Magpie_(15563869424).jpg

What do you think about this one?

Or maybe it should be rotated so the logo is vertical rather than horizontal?

However, I am not sure how it relates to the units project? Does it mean that we are turning C++ on its head? 😉

It's just turning the C 90° to make an U.

It's just turning the C 90° to make an U.

Oh, now I get it. I didn't think about the alphabet. I was looking for a symbolic meaning to it...
I tried to draw @i-ky's micrometer suggestion, and I ended up with the above. However, the more I played with it, the more I liked your "U" version of the logo, as it also serves nicely as an icon thanks to its squared shape.

Please let me know what you think about the following:

I based it on the @JohelEGP idea but changed the logo and icon to be exactly squared, which made the "U" a bit longer rather than wider. I also provided the option with no background, as it looks much better in many places.
This is how both of them look in the documentation: https://mpusz.github.io/mp-units/2.2.
A color version is used as a favicon, while the mono version is the project logo in the docs.
Also, this is how it looks in the social media preview:

Try as I might, squint as I might, I just can't see it as a "U".  It looks like a "sideways C" to me.
It also "feels wrong" that there are two pluses, but the calipers are measuring the width of one.
I'm hard pressed to come up with specific improvements.  Making it more "caliper-like" also makes it less "U-like", because U's don't curve inwards.  Maybe there's just some other region of logo design space we should be poking around in?

Yes, I am not a graphics designer, but hopefully, someone with more skills and experience will read this thread and propose something better.

So maybe something straightforward like this?
No background

main

white

social card example

With background

main

transparent

social card example

How about something like this?

Even if arbitrary, I think it'd be nice to preserve the three shades in the background in their same shape and orientation:

How about something like this?

Smaller plus signs or small caliper handle gets totally unreadable when we deal with a small logo or favicon.

While it's too bad to lose the "calipers" idea, I like the new logo a lot better!

@chiphogg, which one? With or without the background?

I think I prefer the version with the background overall.

Even if arbitrary, I think it'd be nice to preserve the three shades in the background in their same shape and orientation:

If those colors do not match shapes, they do not look right and also make it harder for small factors or putting them on a colored background (see social media examples).

I think I prefer the version with the background overall.

Here are also screenshots from the docs for both cases:

Check both the logo and favicon.

While it's too bad to lose the "calipers" idea, I like the new logo a lot better!

Yes, the caliper or micrometer was a nice idea, but it did not look nice.
However, "U++" also has an interesting meaning by itself:

it is implemented in C++
introduces new abstractions to the market (e.g., systems of quantities).

To throw in an additional thought about details: my alma mater has a logo, that also features the "U". While the new one is plain, the former one incorporated some detail in one end of the arc of the "U":
https://de.m.wikipedia.org/wiki/Datei:Universität_Bremen.svg
Might it be a thought, to incorporate the "++" into the right side of the "U"?
(Apart from that, keeping some resemblance of the C++-logo - either the hex, or the shading, or both - would help making the mental connection, IMHO.)

As another thought -- what about a word cloud motif that plays on quantities and units:

a large shaded 'C' with iconified quantity representations e.g. a beaker (or Erlenmayer flask), thermometer, cube, ruler, the big-K, horse-shoe magnet, atom, stop-watch, circle/protractor, ...
a word cloud making up the '++' consisting of the various units: 'metre', 'Ampere', candela, litre, ... with the first '+' between the opening of the C

What do you think? This as an abstract idea, before spending hours into the design of the actual logo.

@RalphSteinhagen, I think that is a really interesting idea, but probably not for a logo but for some units-related graphics. The logo should also be clearly visible in a small factor (e.g., favicon). Do you think that a word cloud would look OK as a logo in our docs https://mpusz.github.io/mp-units/latest?

@mpusz yes, probably.

[..] clearly visible in a small factor [..]

You are right. The details of the quantities and word cloud could be dropped for the small form factor. E.g. having a classic
'hexagon C++' with subtle 'units' as a subscript and the same colour scheme/style as for the blown-up version that has the quantity and unit clouds.

Just as a rough idea. The quantities are free stand-ins from FontAwesome that more graphic-designed representations could replace (width are 500px, 300px, 150px, 75px):

SVG for post-editing
This is just a concept, not a final design. Also mind the dark/light-theme adjustments (here using contrasting borders).

I don't know what this looks like in a light theme, but here's how it looks in a dark theme.

I don't know what this looks like in a light theme, but here's how it looks in a dark theme.

@chiphogg the 'units' text colour (at least) would need to be adjusted. E.g. using one of the blues rather than using the high-contrast black could yield the same logo for light and dark theme. Again, this is a rough concept for discussion not a final design.

@RalphSteinhagen, thanks for sharing your ideas. It probably took quite a lot of time to produce those.
I am not sure about the "tattooed" version of the logos 😉 For me, it looks a bit like graffiti art 😜
The plain one is interesting, though. However, it uses different fonts for "+" signs than the official C++ logo. I also expect some issues with visibility on different backgrounds. It is also quite a wide rectangle, which might make it hard to use as a favicon.

@mpusz I've never considered myself a 'tattoo artist'. :rofl:
Tattooing was not my intention but rather the composition of the wealth of quantities and units that make up the (ISO) quantity and unit system. In the larger logo version, these details are more pronounced, while they become subtle in smaller sizes. Of course, fonts and colors can be adjusted as needed.
Focusing on the favicon requirement certainly broadens the scope. Favicons should be square, typically around 32x32 pixels, demanding simplicity in design.
Even the official ISO logo, with its colors and '++', faces challenges IMO at the standard URL bar sizes (last):

Regarding naming, I lean towards 'nomen est omen' – self-descriptive names that articulate the project's purpose (though this can lead to issues where similar names overlap for slightly different projects). So, considering:

Your aim to align with the C++ standard -> 'C++'
The library's focus on quantities and units -> the addition of 'units' beneath a larger and shifted '++'
(Exploring 'QU' or a combined 'C' to represent a 'Q' might also be a viable path. Or targeting namespace std::units, std::quantities, ...?)

I hope this rationale adds to the discussion.
And no, I didn't spend too much time on this. :smile: Design, whether it's graphic, system integration, or API-related, is always a valuable investment. It sharpens our understanding and helps us define concepts more precisely.

Or targeting namespace std::units, std::quantities

Hopefully, there will be no dedicated namespace for this library, so we will end up with std::quantity and std::quantity_point, but it is hard to predict what will happen with the proposal in LEWG ;-)
For now, we plan to introduce namespaces only for systems declaration (eg., std::isq, std::si, std::cgs).

Even the official ISO logo, with its colors and '++', faces challenges IMO at the standard URL bar sizes

Yes, I noticed that. This is why I made + signs a bit larger in my simple proposal.

I was thinking about taking C++ logo and making "C" part into a caliper or micrometer measuring the "++" part.

This is approximately what I had in mind (@mpusz, thank you for trying, but micrometer handle has to be in line with the anvils to look right 😉):

Smaller sizes:

"Anatomically correct" micrometer SVG taken from Wikipedia.
P.S. With some effort we can adjust the scale on the handle so that pluses measure to 20.26 mm as a sort of Easter egg hinting about C++26.


In Application.cpp, why should an AdminObj be set?

This is the management port of the service, used by tarsnode.

这是服务的管理端口, 给tarsnode用的。