Fix android domain dot prefix bug

What's wrong?

[!IMPORTANT]
Currently, there is no way to set a cookie without a . prefix which can lead to buggy behavior with some sites.

This PR fixes that, by allowing cookies to be set without a domain and instead inferred from the url. Domain is allowed as an optional value in the Android CookieManager docs when setting a cookie.
Example usage of Cookiemanager.set which should result in a . domain prefix vs not:
// Setting a cookie like this should result in a `.` prefix in chrome dev tools
// This indicates it include sub-domains
CookieManager.set('www.example.domain.com', {
  name: 'Foo',
  value: 'Bar',
  domain: 'example.domain.com', // or '.example.domain.com'
});
// Cookie in chrome dev tools correctly results in: '.example.domain.com'

// Setting a cookie like this should NOT result in a `.` prefix in chrome dev tools
CookieManager.set('www.example.domain.com', {
  name: 'Foo',
  value: 'Bar',
  // no domain specified
});
// Currently results in: '.example.domain.com'
// After PR results in: 'example.domain.com'

This proposed change removes topLevelDomain as a fallback value when domain is missing. This indirectly allows setting a cookie without a . prefix in android, more info about the leading dot and how the dot infers hostOnly.
Why is this an issue?

[!IMPORTANT]
Currently, a cookie Foo can be duplicated on android because of the . domain prefix and there is no way to set a domain without a . prefix via the react-native-cookies library

For me, this caused a re-direct loop in one of our webviews because the site was only looking at the original cookie value and not the duplicated cookie value which was set by the HTTP response. I imagine the buggy behavior could manifest in different ways as well.
How to reproduce?

Set a Foo=Bar cookie via CookieManager.set()
Set a Foo=FooBar cookie via Set-Cookie response header in a Webview on android.
The result is two cookies with the same name, but different domains which are both valid cookies according to RFC 6265.

Additionally, you can quickly verify that this is possible by simply creating two cookies in chrome dev tools.

We can also use CookieManager.setFromResponse no?
I find that CookieManager.set isn’t working really good


Add content nonce meta-tag attribute fallback

Allows Request.js to handle https://github.com/rails/rails/issues/51580 and the corresponding change in this MR. This is a backwards compatible change.

@codergeek121 could you fix the lint issue?

Thank you!


[BEAM-8967] Declare JSR305 dependency as 'shadow'

https://issues.apache.org/jira/browse/BEAM-8967 (Followup of https://github.com/apache/beam/pull/10324).
Because sdks/java/core uses shadowClosure, JSR305 should be declared as "shadow", even though Gradle does not shade it. (explanation in BeamModulePlugin.groovy#L629).
suztomo-macbookpro44:beam suztomo$ grep -3 jsr305 ~/.m2/repository/org/apache/beam/beam-sdks-java-core/2.19.0-SNAPSHOT/beam-sdks-java-core-2.19.0-SNAPSHOT.pom
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.2</version>
      <scope>compile</scope>
      <exclusions>

CC: @iemejia, @lukecwik, @Ardagan (2.17 release manager), @udim (2.18 release manager)

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Run Java Postcommit

Run SQL PostCommit

R: @iemejia, @lukecwik, @Ardagan, @udim


24.0.2 installer is broken.

Description
Sorry to inform you that the 24.0.2. installer is broken.
DBeaver Version
24.0.2.
Operating System
Windows 11
Database and driver
No response
Steps to reproduce
When updating the installed version (or install the downloaded installer), it won't start, the menu icons do not work anymore
Additional context
No response

Hmm a collegue of mine had no problem updating....

Colleague did the update without a problem.
Tried it again on my machine, it turned out that only the shortcut is broken.


TypeScript compiler memoryCache does not work in all cases in Windows

Hi ts-jest team,
Firstly, great job on ts-jest! I'm an active user and really appreciate the fine work you've done supporting TypeScript with jest.
We recently needed to do a bit of a deep dive on src\compiler.ts that was ultimately caused by a windows path format issue that resulted in cache misses in the compiler's memoryCache.
The incompatibility was caused by a mismatch in how file paths are handled and keyed in the memoryCache. When src\ts-jest-transformer.ts calls src\compiler.ts, the fileName is in Windows format (e.g. c:\repos\ts-jest\cli.js). When TypeScript calls getScriptSnapshot and getScriptVersion it passes the fileName parameter in unix format (e.g. c:/repos/ts-jest/cli.js). As a result, cache misses can occur and memoryCache ends up consuming twice the amount of memory with half of the keys not being used.
This is documented in the TypeScript code base:
    /**
     * Internally, we represent paths as strings with '/' as the directory separator.
     * When we make system calls (eg: LanguageServiceHost.getDirectory()),
     * we expect the host to correctly handle paths in our specified format.
     */

The fix for this is to normalize the path in the getScriptVersion and getScriptSnapshot typescript compiler functions that are provided to the TypeScript compiler in src\compiler.ts.
We experienced this issue because we were mocking out fs.readFileSync calls as part of a project we are developing, unfortunately I can't share this code with you. You should be able to confirm the memory impact separately and validate based on TypeScript docs.
We've managed to work around the problem but thought you might like to know about it. If you'd like for me to create a pull request to fix this, I'd be happy to do so.

This is interesting. It can be one of the reasons which affect to performance after the big refactoring to use tsc.
We are lack of staffs right now so we are really appreciated to have your PR.


Arcade cores can be renamed too thanks to the Arcade Organizer

So, in case you don't know about the Arcade Organizer. It is a tool that creates a folder at _Arcade/_Organized containing links to your installed arcades. The links are organized in a way that looks like a SmokeMonster pack, so it's quite handy to use. That tool lives here: https://github.com/MAME-GETTER/_arcade-organizer
There is a 'Cores' folder in the folder structure created by the organizer. There, as the name says, arcades are grouped by core. But the core entry name there always has been the one from the RBF file. Until now, because I pushed a change, and now Arcade Organizer takes names.txt into consideration.
Because of this, now it makes sense to put also arcade cores in names.txt, For example jtcps1 could be Capcom CPS-1, and so on. With that, after running AO, the Cores folder will look much nicer.

Here is an example: https://twitter.com/josembarroso/status/1277670324654530567?s=20

Thank you for the link. That is a clever approach and the list of arcade cores looks great with the names you added!


PDF Report Maps

Establish a means of generating maps for reports showing data from the system.
First and foremost we could do with being able to show incidence of Malaria per 100,000 population across Madagascar.
We're looking for something a little like the "Map" tab in the dashboard.

Docraptor api is now implemented in infrastructure and frontend branches issue148. However, enabling javascript will produce jQuery-related errors:
docraptor_js_log.txt

I believe that all pdf report maps should now be showing properly in master. Will close for now.


Client Allocation Request for: Codberg

Client Allocation Questions
Core Information

Name: Codberg
Website / Social Media: https://codberg.co.kr/
Region: Asia excl. Greater China
DataCap Requested: 10TiB
Addresses to be Notarized: f1nhmmsupe6jvpdrtnkqboiokvjvuun56zichqnqi
Notary Requested: steven004

@jay2400 Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Hey @jay2400 , you chose the region: Asia excl. Greater China.
I think you might want to reassign this to another notary, since I am basically working for Greater China grants. Thanks.

Hello @steven004
Then do I have to apply again?
My region is South Korea. Where should I set region?


Pass maxLength to TextInput if wanted

Passing maxLength down conditionally will allow both behaviors (type/paste then edit down vs. always enforce limit) to be implemented

@kimihiro64 thanks


Advanced Rendering does not have recipes associated with the research

Mod source
PyAE Beta
Which mod are you having an issue with?

[X] pyalienlife
[X] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[ ] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[ ] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[ ] Crash
[ ] Progression
[ ] Balance
[ ] Pypostprocessing failure
[X] Other

What is the problem?
Advanced Rendering does not unlock any recipes
Steps to reproduce
Look a tech
notice no recipes unlock
Additional context
https://cdn.discordapp.com/attachments/934240241110372412/998168314394181692/unknown.png
Log file
No response

Same is true with Engorged Poison sacs. https://cdn.discordapp.com/attachments/934240241110372412/999310337532764252/unknown.png

This tech no longer exists. Closing.


Sandbox - Something went wrong

Describe the bug
Trying to interact with a contract in the sandbox gives me the "Something went wrong" error page.
https://explorer.stacks.co/sandbox/contract-call/SPXVRSEH2BKSXAEJ00F1BY562P45D5ERPSKR4Q33.xverse-pool-v2/delegate-stx?chain=mainnet
To Reproduce
Steps to reproduce the behavior:

Go to https://explorer.stacks.co/sandbox/contract-call/SPXVRSEH2BKSXAEJ00F1BY562P45D5ERPSKR4Q33.xverse-pool-v2/delegate-stx?chain=mainnet
See error

Expected behavior
This page should load the interface for making a contract call.
Desktop (please complete the following information):

OS: MacOS 12.6.3
Browser: Chrome
Version: 111.0

Additional context
I see this in the console:
instrument.js:108 TypeError: Cannot read properties of undefined (reading '0')
    at TupleArgumentInput.tsx:40:47
    at Array.map (<anonymous>)
    at C (TupleArgumentInput.tsx:23:16)
    at ab (react-dom.production.min.js:167:135)
    at i (react-dom.production.min.js:290:335)
    at oO (react-dom.production.min.js:280:383)
    at react-dom.production.min.js:280:319
    at oF (react-dom.production.min.js:280:319)
    at ox (react-dom.production.min.js:271:86)
    at oS (react-dom.production.min.js:268:399)
    at x (scheduler.production.min.js:13:197)
    at MessagePort.T (scheduler.production.min.js:14:126)

Th problem seems to be resolved in the current release. Thanks!


[feature] Implement ingestion for layerID metadata

Is your feature request related to a problem? Please describe.
At present, the layerID information is not being ingested by GUAC for both the SPDX and CDX formats. We would want this metadata ingestion to be enabled in GUAC.
Describe the solution you'd like
GUAC should help parse and ingest the layerID information for the SPDX and CDX formats as starters.
Describe alternatives you've considered
N/A
Additional context
layerID is present in the comment section of the files enumeration and syft:location:0:layerID property of a component for SPDX and CDX files respectively.

Hmm, would layer IDs be okay to be represented as packages? and a DEPENDS_ON relationship matching them?
So like a layer ID would look a bit like "pkg:container_layer/sha256:abdef...", and then have an IsOccurrence to that matching Artifact. So this would resemble how we handle files.
Thoughts? @pxp928 @mihaimaruseac @mlieberman85

I think it should be ok and a relationship INCLUDED_IN that links one to the next layer(s) that incorporate it. We can use this for ML models that start from other pretrained models too (though a different pkg:model/ pURL prefix)

Hmm...how would we do the new relationship INCLUDED_IN? @mihaimaruseac. Yeah, the approach makes sense for the layerID. Probably worth considering adding a specific "type" for layerIDs so that it's easier to filter on?

Parsing the docker file or similar we can extract each layer from the base one all the way to the final container. Each layer has a digest which can identify the layer node in GUAC and from that one we can build the relationship to the next one. Will still be a verb, so we'd encode which docker container gave us the link

so a new verb is needed.

Yes.

hmm what do you mean by the INCLUDED_IN relationship. I'm not too sure i follow. Since layers are just tarballs, i'm assuming that it would be for the container package that includes the layers and not between layers?
btw, SPDX 3.0 has gone towards the direction of including qualifiers on DEPENDS_ON relationship, not sure if we'd want to consider that as well.

I think it's more semantics. We already DEPENDS_ON (IsDependency) to mean that a package depends on another. I was thinking of a new predicate instead of reusing the existing one to preempt having to discern between "does this edge mean that A is included/vendored in B?" and "does this edge mean that you need A in order to use B?" (at runtime/buildtime, but we don't differentiate these dependencies right now).

Based on discussion, we need to determine how we can represent the various types of IsDependency. We could work on adding qualifiers to the IsDependency node such that it gives us greater detail about the type of dependency.

Here's a proposal on how to encode layerID and adjacent container image metadata
https://docs.google.com/document/d/11WqkncYYob8MtNkcvTZiYcjbvclT15UKFh6coDjJToU/edit

I'm interested on working on this one

After some discussions with @pxp928, @lumjjb, and @fengalex43, there's been a few updates to the proposal that was shared originally by Brandon.

Instead of creating a new model called HasMetadataLink, the existing HasMetadata will be used for describing base image relationships. HasMetdata will have a new optional subject field that will be used to connect the base image OCI package to the container image OCI package.
Instead of using HasMetadataLink to describe the relationship between a file and a layer, the existing IsDependency will be used to connect a file to a layer. A new field will be added to denote the "type" of Dependency it is - not to be confused with the existing dependencyType field. We still need to finalize on the new field name.

The high level idea behind this change is that HasMetadata should be linking models that are in different SBOMs whereas IsDependency should be linking models found within a single SBOM


Added eigen-js

By submitting this pull request, I promise I have read the contribution guidelines twice and ensured my submission follows it. I realize not doing so wastes the maintainers' time that they could have spent making the world better. 🖖
⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆

Live demo/benchmark/documentation
https://bertrandbev.github.io/eigen-js
Significantly faster than similar libraries
https://bertrandbev.github.io/eigen-js/#/benchmark

...the repo should have at least 100 stars. - https://github.com/sindresorhus/awesome-nodejs/blob/main/contributing.md


BUG: Select elems in filterable controls get a-text-input classname

Current behavior
The classname set here is also being set on select elements within the filterable controls module. It's been hidden because that element is replaced by the multiselect on page load.
Expected behavior
The select element should have the proper class a-multiselect prior to the Multiselect script taking control.
Steps to replicate behavior

To duplicate, turn off JS and inspect the element or view source.

Screenshots

Fixed by https://github.com/cfpb/cfgov-refresh/pull/4767

👏


Commas in text strings act as delimiters and cause the generated CSV file to have content that gets shifted to the next column

This problem was fixed in a previous version but has resurfaced in th current 2.0 version

The problem is caused by commas in the body of the message.  Every time a comma is encountered the next content in line gets populated to the next column.  Returns do not as indicated by the \n.

On Feb 2, 2018, at 8:55 AM, Noone<EMAIL_ADDRESS>wrote:
This problem was fixed in a previous version but has resurfaced in th current 2.0 version
https://user-images.githubusercontent.com/33180619/35739234-97d10e96-07f6-11e8-869f-3a04ce6904d0.png
https://user-images.githubusercontent.com/33180619/35739248-a42c26da-07f6-11e8-9211-ac16c808f841.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/vigneshuvi/SwiftCSVExport/issues/8, or mute the thread https://github.com/notifications/unsubscribe-auth/AfEH01wu-CsL4ckBTzdSZMN_Zaj3B2Uoks5tQyHwgaJpZM4R3TBV.

I receive these errors :

On Feb 3, 2018, at 8:18 AM, PostCardsAway<EMAIL_ADDRESS>wrote:
The problem is caused by commas in the body of the message.  Every time a comma is encountered the next content in line gets populated to the next column.  Returns do not as indicated by the \n.

On Feb 2, 2018, at 8:55 AM, Noone<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
This problem was fixed in a previous version but has resurfaced in th current 2.0 version
https://user-images.githubusercontent.com/33180619/35739234-97d10e96-07f6-11e8-869f-3a04ce6904d0.png
https://user-images.githubusercontent.com/33180619/35739248-a42c26da-07f6-11e8-9211-ac16c808f841.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/vigneshuvi/SwiftCSVExport/issues/8, or mute the thread https://github.com/notifications/unsubscribe-auth/AfEH01wu-CsL4ckBTzdSZMN_Zaj3B2Uoks5tQyHwgaJpZM4R3TBV.

will check now and let you know?

THANKS AS ALWAY !

On Feb 5, 2018, at 12:29 AM, Vignesh<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
will check now and let you know?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/vigneshuvi/SwiftCSVExport/issues/8#issuecomment-362993276, or mute the thread https://github.com/notifications/unsubscribe-auth/AfpLy2vIeCqEgZUNf0cKx6PUrnVptMpAks5tRp-7gaJpZM4R3TBV.

Do you have this issue? Shall i close this ticket?

Have you fixed this problem ?
If so have you create a new version ?

On Feb 7, 2018, at 3:36 AM, Vignesh<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
Closed #8 https://github.com/vigneshuvi/SwiftCSVExport/issues/8.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/vigneshuvi/SwiftCSVExport/issues/8#event-1461951276, or mute the thread https://github.com/notifications/unsubscribe-auth/AfpLywkR8MdmZy1EIx-nlRnLFJHX2f3sks5tSW6CgaJpZM4R3TBV.

Hi @DogandElk ,
i was unable to reproduce issue. Can you please provide some sample data?

@DogandElk
Give sample formatted string which you used in the app?


Fix clone DataRow2 misses onDoubleTap callback.

The onDoubleTap callback is missing from the method of Clone DataRow2, which will cause the double-click to fail after the selection operation is executed.

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (4c8c33b) 95.71% compared to head (3b7a9c1) 95.80%.
Report is 1 commits behind head on main.

Files
Patch %
Lines

lib/src/async_paginated_data_table_2.dart
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #237      +/-   ##
==========================================
+ Coverage   95.71%   95.80%   +0.08%
==========================================
  Files           3        3
  Lines        1121     1120       -1
==========================================
  Hits         1073     1073
+ Misses         48       47       -1

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


NavLink breaks className and styles DOM API

What version of Remix are you using?
1.16.1
Are all your remix dependencies & dev-dependencies using the same version?

[X] Yes

Steps to Reproduce
The NavLink component accepts both a string and a function in its className and style attributes. This is a convenient API to quickly set up navigation-aware styles. However, this violates the DOM API that only accepts a string and you might get in trouble when using composition, for example.
Here's an example of when you might get in trouble using (Epic Stack recommended) Radix UI's NavigationMenu component and composing it with Remix's NavLink:
const MenuItem = ({ to, children }: { to: string; children?: ReactNode) => (
	<NavigationMenu.Item>
		<NavigationMenu.Link asChild>
			<NavLink to={to} className={({isActive}) => `${isActive ? 'active-classes' : 'inactive-classes'} other-classes`}>
				{children}
			</NavLink>
		</NavigationMenu.Link>
	</NavigationMenu.Item>
)

Because Radix expects className to be a string, it will render class="({ isActive }) => `${isActive ? "active-classes" : "inactive-classes"} other-classes` active" onto the DOM instead of class="active-classes other-classes.
Solutions

Add a thin wrapper around NavLink. Here's a codesanbox by @benoitgrelard.

If you're using Tailwind, use the NavLink's aria-current attribute:

const MenuItem = ({ to, children }: { to: string; children?: ReactNode) => (
	<NavigationMenu.Item>
		<NavigationMenu.Link asChild>
			<NavLink to={to} className="aria-[current]:underline">
				{children}
			</NavLink>
		</NavigationMenu.Link>
	</NavigationMenu.Item>
)

Suggestions
Add a note to the documentation that the NavLink breaks the DOM API standard and provide these workarounds 👆 to fix it.
Related issues:
https://github.com/remix-run/remix/issues/1966
https://github.com/radix-ui/primitives/issues/1158
https://github.com/radix-ui/primitives/issues/2157
Expected Behavior
Expected documentation to note this.
Actual Behavior
Function is printed onto the DOM.

I'm not used that much to Radix, but after a while and a quick test on my computer I think I got the issue.
In the end you can reduce the issue to the code:
<NavigationMenu.Link asChild>
  <NavLink
    to={to}
    className={({ isActive }) =>
      `${isActive ? "text-green-500" : "text-blue-500"}`
    }
  >
    {children}
  </NavLink>
</NavigationMenu.Link>

The NavigationMenu.Link asChild expects an anchor tag and merges its props. That's why it's converting the className function to a string. Below is an example of the output of the previous code:
 `${isActive ? "text-green-500" : "text-blue-500"} other-classes`" href="/login/hi">Hello

I think the solution you proposed about being explicit about this in the docs is ok. Although in the current docs it says "...works like a normal className, but you can also pass it a function to customize the classNames applied...". Maybe say something like "Allows to provide a css class string to the component. It also extends the standard API to support a function to customize...".

Well researched and argued bug report 🔥. In my opinion, this is a Radix issue and not a Remix issue. The issue seems to come from this react-slot within Radix here which looks like a component that introduces many issues. It is used to make a copy of the children you pass in but makes many assumptions about those children (notice they insist your handlers start with on<Capital letter>. That is common practice yes but I should be able to name my handler handleClick, handler, or somethingElse without knowing my component library this intricately).
I would like to see the link in the Remix docs about className as @andrecasal suggested. 👍

wrap your navlink is a react fragment
   <Tooltip.Trigger asChild>
    <>
      <NavLink
        to={to}
        className={({ isActive }) =>
          "block rounded-md p-4 transition-colors hover:bg-gray-100 " + (isActive && "bg-gray-100")
        }
      >

      </NavLink>
    </>
  </Tooltip.Trigger>;

If you're using Tailwind, use the NavLink's aria-current attribute:

Thank you for this

any plans to fix this?


/xarm/set_position returns 997

Hi,
I'm trying to use the service /xarm/set_position. From the command line everything works fine (ros2 service call /xarm/set_position xarm_msgs/srv/MoveCartesian "{pose: [300, 0, 250, 3.14, 0, 0], speed: 50, acc: 500, mvtime: 0}).
But commanding the same from a python service client node I get the return value 997 and the robot doesn't move. What does this mean? (i can't find this error code anywhere, any hint?)
Thanks!

Nevermind, found it. pose had the wrong length.


Removed usage of Log:: facade and replaced it with a facadeless version

Added support to use lumen without activating facades via $app->withFacades()

Thanks!


[Feedback Wanted] User permissions

Not sure what to call it, but add an account type thats between User and Admin. Someone that can create rooms, start player, and edit the queue for the rooms they create, but can't create or edit users, or change the media folders.
Basically on the account page, out of Rooms, Users, Preferences, and My Account, User can access only My Account, Admin can access all, and this new account type can access My Account and Rooms.
This is useful because I can then have someone set up a room and run it without having to give them access to full admin features.

Definitely want this! We've gotten a lot of mileage out of the isAdmin flag, but it's probably time to move to a system under the hood that would support arbitrary permissions and granularity (even if the UI on top stays simple).
Let's use this thread to hear wants/needs around user permissions. Thanks!

I wanted to start working on some concepts, but it took me, no joke, like 4 hours to get the code to even run on my machine (my node.js was all kinds of messed up and I'm not too familiar with it either). Finally got it running though. Will try some things tomorrow.

I don't think we need more granularity than three account types, but maybe if we want it in the future we can prep now by setting up permissions and roles. But I also don't want to overdo it if it's not necessary.

Would also be nice if it was possible to set a default account type on newly created accounts.
It would help greatly if I could set the default account type to one that will be able to create rooms, start songs etc


Unable to stage due to registry connection issues

We have an scf+eirini (on GCP and CFCR) that looks like it can stage, but fails at the Waiting for app to start step.  We see k8s attempt to pull the image for the app pod from the registry but gets a connection refused error.
Looking closer.  Possibly related we (also) appear to be hitting an error in the post-deployment-setup job at the Configuring Eirini staging secrets step. It looks like kubectl isn’t able to connect to the kubernetes deployment to transfer the secrets from the scf namespace to the opi namespace. We think that the problem is our EIRINI_KUBE_CONFIG in our config-values.yml file, possibly combined with the kube.external_ips also being wrong. Can you explain these settings a bit more, plus suggest any other debugging tips here. We assume that this post-deployment-setup job needs to complete successfully before we will be able to push apps to the platform.  But it is just that, an assumption.
Many thanks

Hi @paulcwarren ,
The post-deployment-setup job failing is normal since it’s coming from the templates generated by SCF. Since we add our eirini.yaml template ourselves, the last step in that job: Configuring Eirini staging secrets ... won’t execute successfully, but that shouldn’t be an issue. Maybe @viovanov knows more about this and how to fix it.
Regarding the EIRINI_KUBE_CONFIG; that value is no longer required. We are getting the kubeconfig from a service account which is part of the eirini.yaml template.
Here are some questions that might help pin down the issue:

What values did you set for the kube.external_ips? They should be the external ip of each node in your cluster (maybe you set it using the private ones?).
What value are you setting for the opi.ingress_endpoint?
Are you deploying using the scf templates in eirini-release?

Here is what you could check in addition (based on @JulzDiverse's suggestions):

Are both eirini containers ready (ready state shows 2/2)?
Is the eirini-opi service available (kubectl get service eirini-opi)
you could connect to the api pod and try to curl eirini-opi.scf.svc.cluster.local:8085/apps to see if you get any response.

BR,
Mario && @suhlig

Hi @mnitchev and @suhlig,
Thanks for the quick response. Answers are inline below...

The post-deployment-setup job failing is normal since it’s coming from the templates generated by SCF. Since we add our eirini.yaml template ourselves, the last step in that job: Configuring Eirini staging secrets ... won’t execute successfully, but that shouldn’t be an issue. Maybe @viovanov knows more about this and how to fix it.

Good to know, thanks.

Regarding the EIRINI_KUBE_CONFIG; that value is no longer required. We are getting the kubeconfig from a service account which is part of the eirini.yaml template.

Also good to know! Is the service account a GCE account? If so, we don't see one called "opi". If not, where should we check to confirm that it exists?

Here are some questions that might help pin down the issue:

What values did you set for the kube.external_ips? They should be the external ip of each node in your cluster (maybe you set it using the private ones?).

We tried initially with the external IP of the worker node (we only have one). We then switched to the ephemeral external IP of the eirini-opi service to see if that made any difference (it didn't). We have switched back to the worker's external IP.

What value are you setting for the opi.ingress_endpoint?

We have tried a few values here as well. We currently have eirini-opi.scf.svc.cluster.local. Do we need to add the port 8085?

Are you deploying using the scf templates in eirini-release?

Yes, we are.

Here is what you could check in addition (based on @JulzDiverse's suggestions):

Are both eirini containers ready (ready state shows 2/2)?

Yes, all CF-related containers are ready, except for the post-deployment pod that we now know we can ignore.

Is the eirini-opi service available (kubectl get service eirini-opi)

Yes, we can see that.

you could connect to the api pod and try to curl eirini-opi.scf.svc.cluster.local:8085/apps to see if you get any response.

We can hit that endpoint. It just gives us an empty desired-lrp response:
api/0:/# curl eirini-opi.scf.svc.cluster.local:8085/apps                                                                                │·············································
{"desired_lrp_scheduling_infos":[]}

Edit: Additional questions:

Is your cluster a multi-node cluster?

No, we only have a single master and single worker for now.

What infrastructure is your cluster deployed on?

We deployed cfcr on GCP.

Are the registry certificates copied on all nodes /etc/docker/certs.d/<registry-name>/? (You can check if the cert-copier is a DaemonSet instead of a Job)

No, we have not done that. We were waiting for the post-deployment pod to complete. We can do that step and see what difference it makes.
Let us know if you have any additional thoughts and we'll try the suggestions above.
Thanks again,
@paulcwarren and Dave

Hello @davewalter & @paulcwarren,
Following this conversation on slack we understand that you found a temporary solution to your issue, but the original problem was not solved. We also tested a few configurations in our environments and could not reproduce. Can you give a short recap of your workaround here?
Since we can't really reproduce the issue we're going to go ahead and close it. You can also see this story in our tracker that aims to improve/clarify the opi configurations.
BR,
Mario && @suhlig


setup default lifecycle for video artifacts

think about using already declared property or generate new one with 48hrs expiration for video artifacts:
artifacts_expiration_seconds=2592000
find all places where we declare video artifacts object and put expiration date based on this value

set expiration time for video artifact
https://github.com/qaprosoft/carina/pull/410/files


Why csv files always takes user_id and item_id

i wanna use two different csv file for users and movies. i have two columns called user_id and movie_id. when i run movies.csv file i got the following error.
Error
Finished parsing file /Users/padalingam/Documents/Xcode 9 Projects/Movie-Rating/MovieRecommendation.csv
Parsing completed. Parsed 6233 lines in 0.023191 secs.
Recsys training: model = item_similarity
[ERROR] turicreate.toolkits._main: Toolkit error: Column name user_id does not exist.
Traceback (most recent call last):
File "sample.py", line 4, in
m = tc.item_similarity_recommender.create(datacsv)
File "/Library/Python/2.7/site-packages/turicreate/toolkits/recommender/item_similarity_recommender.py", line 258, in create
response = _turicreate.toolkits._main.run('recsys_train', opts, verbose)
File "/Library/Python/2.7/site-packages/turicreate/toolkits/_main.py", line 84, in run
raise ToolkitError(str(message))
turicreate.toolkits._main.ToolkitError: Column name user_id does not exist.

@Padalingam - I do not have enough information to debug the issue.
From the stack trace it sounds likes the item similarity recommender can't find the user id column. This could be because that information is not present in your SFrame. Or maybe that column is called something other than user_id. Using the user_id parameter you can specify a different column name value. Here is the item_similarity_recommender.create API:
https://apple.github.io/turicreate/docs/api/generated/turicreate.recommender.item_similarity_recommender.create.html#turicreate.recommender.item_similarity_recommender.create
If this doesn't help, please reopen and include the code that you are using.


Use root TypeScript version in TestCafe tests

Without this, TestCafe would use the version of TypeScript in
/node_modules/testcafe/node_modules/typescript. The compiler path
is resolved relative to the TestCafe module path, so by referring
to the typescript folder in the parent of the TestCafe module,
we get the top-level TypeScript module.
(The trigger for this PR was https://github.com/inrupt/solid-client-authn-js/pull/1293 - TestCafe used an older version of TypeScript that SCAB breaks with.)

Hi Vinnie - just had a chat with NicAS on this one - can we schedule some time to discuss the details of this (e.g., how exactly was SCAB breaking?), as it seems this is really valuable knowledge for developers generally (so we also need to discuss how to capture this knowledge (e.g., as part of our Coding Guidelines, or our test suite README, or Confluence or something (since we can't add detailed comments to the TestCafe config itself (since it's pesky JSON that doesn't allow comments (so maybe a justification to move to JS config instead?!))).

@pmcb55 I usually default to a JS config, but unfortunately it seems TestCafe doesn't support this.
The "problem" is that TestCafe has a dependency on TypeScript v3, whereas solid-client uses v4. When npm encounters that, it doesn't try to deduplicate the dependencies, it just installs both versions at the same time. This was generally not a problem. However, Nicolas made use of a feature only introduced in TypeScript v4 in SCA, which meant that its type definitions could only be parsed by TypeScript v4.
So I did two things:

Submitted a PR to SCA to allow it to work with older versions of TS as well.
Made sure that TestCafe uses the same instance of TypeScript to compile the solid-client code like we do when publishing it, when running tests. (That's this PR.)

You can see the breakage in action by looking at TestCafe recent runs, for example https://github.com/inrupt/solid-client-js/runs/2418345897?check_suite_focus=true


Fall back to v2.0.1 - as contracts pallet is not in v3.0.0 yet

from the v3 release notes

Contracts: Please note that the contracts pallet is not part of this release. The pallet is not yet ready and will be released separately in the coming weeks. The currently released contracts pallet is not compatible with the new FRAME, thus if you need the contracts pallet, we recommend you wait with the upgrade until it has been released, too.

So we should be using 2.0.1/0.8.1 for this until v3 (or latter release) includes it.
Related to https://github.com/paritytech/subport/issues/116

@gnunicorn I see that there is progress in getting v3 of contracts in place, where can I get notice on this being complete? (so we can formally move the docs here to v3)

@NukeManDan it has already been released last week - https://github.com/paritytech/substrate/pull/8175

@gnunicorn @NukeManDan but pallet-contracts v3.0.0 is not accompanied with Substrate v3.0.0. In our doc, we are referring developers to this Substrate version, so we probably want to keep it consistent and use pallet-contract v2.0.1 (which Substrate v3.0.0 is using). My two cents.

@gnunicorn maybe you can release a minor patch which includes the new contracts pallet version?

maybe you can release a minor patch which includes the new contracts pallet version?

Have what include  what?
Maybe  I should clarify: a release is a push to crates.io. The github tags are merely for reference and allowing people to look up the source code that was (almost - we've removed the dev-deps) at that point. Because crates are independent, and no crate we released depends on pallets-contracts. Crates are not always released in bundles (see 2.0.1 before), which is we are not (really) using the github releases feature: we just have too many. However, you can find the tags for these crates on the releases page:

What exactly do you want me to release?

Ah so as an example https://crates.io/crates/pallet-contracts-primitives is now 3.0.0 - so we can safely close this PR and instead update everything to v3/0.9 .

a release is a push to crates.io.

These additional crates got pushed after the 3.0.0 release, right? As the release had them as "coming soon" here. In similar situations, we will have releases with pending additions, how do we go about dealing this? My mental model seems to settle on new non-breaking features being a patch or minor rev (3.0.1)

Since 2.0.0 we should really just point to crates.io .

IIUC - you suggest that we start using the ^major.minor.patch dependency specification throughout for users to get all patch semver updates?

I know there was a session that was recorded on how semver is now used in substrate @gnunicorn - but I can't find it again, do you know of this and can share so I can review it? 🙏🏼

Superseded by #899
Thanks @riusricardo 🙇🏼


About RandomSizedCrop implementation

When using RandomSizedCrop(), is it better to use padding if a suggested crop region is bigger than the original image size, rather than raise ValueError?
For example, the augmentation method used for achieving cityscapes good result uses padding.
https://github.com/PkuRainBow/OCNet/blob/8184d9d55ec474c7e22278256f1db8b3d7ebce88/dataset/cityscapes.py#L121
So I suggest changing this part;
https://github.com/albu/albumentations/blob/8626026910d6b0236bccd09af276ca9432af5d22/albumentations/augmentations/functional.py#L207-L221
to
def random_crop(img, crop_height, crop_width, h_start, w_start, pad_value=(0.0,)):
    height, width = img.shape[:2]
    if height < crop_height or width < crop_width:
        pad_h = max(crop_height - height, 0)
        pad_w = max(crop_width - width, 0)
        img = cv2.copyMakeBorder(img, 0, pad_h, 0,
                                 pad_w, cv2.BORDER_CONSTANT,
                                 value=pad_value)  # if gt label, pad_value should be ignore index.
    x1, y1, x2, y2 = get_random_crop_coords(height, width, crop_height, crop_width, h_start, w_start)
    img = img[y1:y2, x1:x2]
    return img

Thanks for quick replying!
I'm not sure if this issue should be closed until the change will be merged, so I remain it opened.

Sorry, the above code I suggested was buggy. I fixed.

Any updates on this ?

Unclear and unexpected padding may be a source of bugs.
If you need this type of transform you can create Lambda transform with this changes.


strace replacement for mac

https://stackoverflow.com/questions/73724074/how-to-call-an-equivalent-command-to-strace-on-mac-ideally-from-python

I inherited this code and in it calls strace from within python. In particular it calls:
def strace_build(executable: str,
                 regex: str,
                 workdir: Optional[str],
                 command: List[str],
                 strace_logdir=None) -> List[str]:
    ''' trace calls of executable during access to files that match regex
    in workdir while executing the command and  returns the list of pycoq_context
    file names

    In the simplest case strace runs the specified command until it
    exits.  It intercepts and records the system calls which are
    called by a process and the signals which are received by a
    process.  The name of each system call, its arguments and its
    return value are printed on standard error or to the file
    specified with the -o option.

    https://stackoverflow.com/questions/73724074/how-to-call-an-equivalent-command-to-strace-on-mac-ideally-from-python
    '''
    print('---- Calling strace_build ----')

    def _strace_build(executable, regex, workdir, command, logdir):
        logfname = os.path.join(logdir, 'strace.log')
        logging.info(f"pycoq: tracing {executable} accesing {regex} while "
                     f"executing {command} from {workdir} with "
                     f"curdir {os.getcwd()}")
        print(f"pycoq: tracing {executable} accesing {regex} while "
              f"executing {command} from {workdir} with "
              f"curdir {os.getcwd()}")
        with subprocess.Popen(['strace', '-e', 'trace=execve',
                               '-v', '-ff', '-s', '100000000',
                               '-xx', '-ttt',
                               '-o', logfname] + command,
                              cwd=workdir,
                              text=True,
                              stdout=subprocess.PIPE,
                              stderr=subprocess.PIPE) as proc:
            for line in iter(proc.stdout.readline, ''):
                logging.debug(f"strace stdout: {line}")
                print(f"strace stdout: {line=}")
            logging.info(f"strace stderr: {proc.stderr.read()}"
                         "waiting strace to finish...")
            proc.wait()
        logging.info('strace finished')
        res: list[str] = parse_strace_logdir(logdir, executable, regex)
        print('---- Done with strace_build ----')
        return res

    if strace_logdir is None:
        with tempfile.TemporaryDirectory() as _logdir:
            return _strace_build(executable, regex, workdir, command, _logdir)
    else:
        os.makedirs(strace_logdir, exist_ok=True)
        strace_logdir_cur = tempfile.mkdtemp(dir=strace_logdir)
        return _strace_build(executable, regex, workdir, command, strace_logdir_cur)

but because it calls strace it only works on linux. I want it to work on my mac -- ideally if possible in the most pythonic way possible. I believe what it does is strace a terminal command that is called from within python.
What would be an equivalent way to call this command on mac using the same flags so that it works (ideally exactly) the same?
Not sure if this matters but I am using an m1 mac.

some output when the above function is used:
--done with make attempt--
---- Calling strace_build ----
pycoq: tracing /home/bot/.opam/ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1/bin/coqc accesing .*\.v$ while executing ['opam', 'reinstall', '--yes', '--switch', 'ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1', '--keep-build-dir', 'debug_proj'] from None with curdir /home/bot
strace stdout: line='\n'
strace stdout: line='<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>\n'
strace stdout: line='[debug_proj.~dev] no changes from file:///home/bot/iit-term-synthesis/coq_projects/debug_proj\n'
strace stdout: line='\n'
strace stdout: line='debug_proj is not installed. Install it? [Y/n] y\n'
strace stdout: line='Sorry, no solution found: there seems to be a problem with your request.\n'
strace stdout: line='\n'
strace stdout: line='No solution found, exiting\n'
---- Done with strace_build ----
...
---- Calling strace_build ----
pycoq: tracing /home/bot/.opam/ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1/bin/coqc accesing .*\.v$ while executing ['make', '-C', '/home/bot/iit-term-synthesis/coq_projects/debug_proj'] from None with curdir /home/bot
strace stdout: line="make: Entering directory '/home/bot/iit-term-synthesis/coq_projects/debug_proj'\n"
strace stdout: line='coq_makefile -f _CoqProject -o CoqMakefile\n'
strace stdout: line='make --no-print-directory -f CoqMakefile \n'
strace stdout: line='COQDEP VFILES\n'
strace stdout: line='COQC debug_0_plus_n_eq_n.v\n'
strace stdout: line='COQC debug1_n_plus_1_greater_than_n.v\n'
strace stdout: line='COQC debug2_n_plus_0_eq_n.v\n'
strace stdout: line="make: Leaving directory '/home/bot/iit-term-synthesis/coq_projects/debug_proj'\n"
---- Done with strace_build ----

def strace_build_mac_m1(executable: str,
                 regex: str,
                 workdir: Optional[str],
                 command: List[str],
                 strace_logdir=None) -> List[str]:
    ''' trace calls of executable during access to files that match regex
    in workdir while executing the command and  returns the list of pycoq_context
    file names

    In the simplest case strace runs the specified command until it
    exits.  It intercepts and records the system calls which are
    called by a process and the signals which are received by a
    process.  The name of each system call, its arguments and its
    return value are printed on standard error or to the file
    specified with the -o option.

    https://stackoverflow.com/questions/73724074/how-to-call-an-equivalent-command-to-strace-on-mac-ideally-from-python

    plan:
    - get the command we are running
    - pip push my pycoq with no name changes so code doesn't break
    - pull the rest of the repos needed, I don't think anything else since lf is here
    - harcode test
    - actually, look at commands...we need to provide for reproducibility a way to install opam and all this stuff
    without docker but in the mac since we are trying to do a mac install. Argh...

    COMMANDS:
    pycoq: tracing /home/bot/.opam/ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1/bin/coqc accesing .*\.v$ while executing ['opam', 'reinstall', '--yes', '--switch', 'ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1', '--keep-build-dir', 'lf'] from None with curdir /home/bot
    executable='/home/bot/.opam/ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1/bin/coqc'
    regex='.*\\.v$'
    workdir=None
    command=['opam', 'reinstall', '--yes', '--switch', 'ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1', '--keep-build-dir', 'lf']
    curdir: os.getcwd()='/home/bot'
    '''
    print('---- Calling strace_build_mac_m1 ----')

    def _strace_build(executable, regex, workdir, command, logdir):
        logfname = os.path.join(logdir, 'strace.log')
        logging.info(f"pycoq: tracing {executable} accesing {regex} while "
                     f"executing {command} from {workdir} with "
                     f"curdir {os.getcwd()}")
        print(f"pycoq: tracing {executable} accesing {regex} while "
              f"executing {command} from {workdir} with "
              f"curdir {os.getcwd()}")
        print(f'{executable=}')
        print(f'{regex=}')
        print(f'{workdir=}')
        print(f'{command=}')
        print(f'curdir: {os.getcwd()=}')
        with subprocess.Popen(['dtruss', '-e', 'trace=execve',
                               '-v', '-ff', '-s', '100000000',
                               '-xx', '-ttt',
                               '-o', logfname] + command,
                              cwd=workdir,
                              text=True,
                              stdout=subprocess.PIPE,
                              stderr=subprocess.PIPE) as proc:
            for line in iter(proc.stdout.readline, ''):
                logging.debug(f"strace stdout: {line}")
                print(f"strace stdout: {line=}")
            logging.info(f"strace stderr: {proc.stderr.read()}"
                         "waiting strace to finish...")
            proc.wait()
        logging.info('strace finished')
        res: list[str] = parse_strace_logdir(logdir, executable, regex)
        print('---- Done with strace_build_mac_m1 ----')
        return res

    if strace_logdir is None:
        with tempfile.TemporaryDirectory() as _logdir:
            return _strace_build(executable, regex, workdir, command, _logdir)
    else:
        os.makedirs(strace_logdir, exist_ok=True)
        strace_logdir_cur = tempfile.mkdtemp(dir=strace_logdir)
        return _strace_build(executable, regex, workdir, command, strace_logdir_cur)

# -

def code_for_mac_m1():
    coq_package = 'lf'
    coq_package_pin = '~/pycoq/pycoq/test/lf'
    coq_package_pin = os.path.expanduser(coq_package_pin)

    print(f'coq_package: {coq_package=}')
    print(f'coq_package_pin: {coq_package_pin=}')

    ### pycoq: tracing /home/bot/.opam/ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1/bin/coqc accesing .*\.v$ while executing ['opam', 'reinstall', '--yes', '--switch', 'ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1', '--keep-build-dir', 'lf'] from None with curdir /home/bot
    # executable='/home/bot/.opam/ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1/bin/coqc'
    # regex='.*\\.v$'
    # workdir=None
    # command=['opam', 'reinstall', '--yes', '--switch', 'ocaml-variants.4.07.1+flambda_coq-serapi.8.11.0+0.11.1', '--keep-build-dir', 'lf']
    # curdir: os.getcwd()='/home/bot'

    # - get the filename in split
    # path2filenames: list[str] = pycoq.opam.opam_strace_build(coq_proj, coq_proj_pin)
    path2filenames_raw: list[str] = strace_build_mac_m1()
    path2filenames_raw.sort()
    print(f'\n====----> Populate coq pkg/proj data with files: {path2filenames_raw=}')

if __name__ == '__main__':
    code_for_mac_m1()
    print('Done!\n\a')

why doesn't this meet the SO guidelines? I am not asking for a software request clearly. From the discussion it's much harder to run in python + having the mac setup as needed + the tool with the equivalent flags to strace for mac.

msg to help replace strace:
google for replacement (analogue) of functionality of strace for Mac OS and modify the parser that parses output of strace for that “mac-strace”
The strace functionality is used to inspect the Coq building system to record all options and arguments and environment for coqc in which each individual .v file has be processed by coqc during the build process. The Coq build system is complicated, and i didn’t parse but resolved to just observing by strace of what the actual Coq does and strace simply records all options and arguments (like -R etc) of what the actual Coq does so that pycoq could call coqc  with exactly the same options and arguments


K9 crashes when addressing a Domain with an emoji

When I want to paste an emoji email address, the activity crashes and I get back to the welcome screen.
(sorry, I opened this issue via FastHub and the prefilled template data is missing here. I will complete it as soon as I get to a PC.)

Please provide more detailed steps on how to reproduce this issue. Also, which K-9 Mail version you're using.


Refactor GraphQLContext reference

JIRA

https://jira.jahia.org/browse/TECH-210
Description

Update parent reference to <IP_ADDRESS> in pom.xml and update graphql dependencies
Refactor reference to GraphQLContext

I'm not quite sure if we need an import-package statement here. the default build seems to already include correct version range


Center pages

The pages are currently offset of the left. We have a request to center the pages.

Not easily done for journals that are still printed "the old fashioned way," to say the least.


Unit test and bug fix

Continuous Machine reconciler bug fix

Added unit tests

Let me try to run the test using Docker. I was running with NO_DOCKER
Also, I see other providers are using 1.15 golang image, I'm guessing those will be getting bumped up to 1.16 as well?
...Just wanted to bring that to your attention in case someone overlooked that change.

Let me try to run the test using Docker. I was running with NO_DOCKER

just to confirm, with your changes in place i was able to run make test successfully

Also, I see other providers are using 1.15 golang image, I'm guessing those will be getting bumped up to 1.16 as well?
...Just wanted to bring that to your attention in case someone overlooked that change.

yeah, they should all get bumped. afaik we will be building everthing with 1.16, so we should be using that for testing too.

@srcarrier PTAL: new commit
@elmiko Just added an additional test, we may need your approval again.

/lgtm

/approve

tested this locally and everything passed
/approve

hmm, i think the approve bot might not be here, or we need to add an OWNERS file. someone might have to merge this manually. i don't have a button for this, cc @JoelSpeed do you know?

/lgtm


Update grey colour to text input, text area, date input, radio, and checkbox.

Also updated font families where necessary but will create another branch for these edits across the system.

@dlevineBC I actually also updated all the font family stylings in this branch as well.


Improve message and move disable logic on magic links to signup only

Hey there, I've been following these issues: #184 & supabase/supabase#2851. And looking at the code I have an impression that the message change done on #186 is still not accurate for Magic Links. The new message says Email logins are disabled and for me its a bit misleading because the UI on Supabase says Signup and not login. See picture below:

Now, if I'm not totally off here, I think there's one other thing that's also misleading on this. It's this line here: https://github.com/supabase/gotrue/blob/9b955cbce0f19979d32429a3e5bb5425e7fd05f2/api/magic_link.go#L25
This line throws an error for Magic Links if the Email config is disabled, independent if its a signup (new user) or a signin (existing user) but the toggle on Supabase UI says Signup (same screenshot above).
I would expect in this case, as a supabase user, that if I disable the signup toggle on the UI, that my existing users would still be able to get a Magic Link and signin and in case it's a new email/user then they would get that error and the message should say Email signups are disabled instead of saying logins.
And if that would be the direction, then the check for if !config.External.Email.Enabled would make more sense if it was after this line, where it knows its a signup (new user): (https://github.com/supabase/gotrue/blob/9b955cbce0f19979d32429a3e5bb5425e7fd05f2/api/magic_link.go#L47)
I'm using Supabase and that is the behavior I was expecting when I disabled Email signups on the Auth settings but instead, what its doing today is that it's blocking both signup AND signin for Magic Links, and I think this is the reason.
If this make sense at all I could try to make a PR.

I come from the future, any solution yet? :open_mouth:

I need this feature. It doesn't make sense to me that sign ins are disabled. I also have a limited audience, but would appreciate that login flow. I want it to be invite only, or manually make an API request, not when a user signs in.  I don't want incorrect emails and random bots filling up my DB table with records Waiting for verification...

@kangmingtay I think there is some confusion here, very possibly on my part, but in the original message I see this line:

I would expect in this case, as a supabase user, that if I disable the signup toggle on the UI, that my existing users would still be able to get a Magic Link and signin

You say

Currently, we don't see a usecase where you would want to enable email sign-ups but not email sign-ins.

I think that's the opposite of what the OP means? I am interested in this thread because I actually have an issue of my own going, #330, and that one is about making it possible to enable email signins but not email signups. And I feel like this issue is very related to this, just instead of email signins it is talking specifically about magic links.

@TomasHubelbauer just to clarify, the UI looks different on our platform now - it's been updated to show this:
If the "Enable email provider" toggle is switched on, then it will allow any email-related signups and sign-ins. Can you please describe why you would want to enable sign-ins only but not signups?

@TomasHubelbauer there's also this setting which would have the intended effect, however it is not specific to email or magic link sign-in

@mrmartineau I was not aware this existed, I think it is newer than my GitHub issue. I will check this out. Thank you for letting me know! It seems super promising for what I need.

Hello, just wanted to ask, if we could update the config.toml file that's used for local development. Currently, the email provider section contains these keys:
[auth.email]
# Allow/disallow new user signups via email to your project.
enable_signup = true
# If enabled, a user will be required to confirm any email change on both the old, and new email
# addresses. If disabled, only the new email is required to confirm.
double_confirm_changes = false
# If enabled, users need to confirm their email address before signing in.
enable_confirmations = false

The overall [auth] section contains the following keys:
[auth]
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
# in emails.
site_url = "http://localhost:3000"
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
additional_redirect_urls = ["https://localhost:3000"]
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one
# week).
jwt_expiry = 3600
# Allow/disallow new user signups to your project.
enable_signup = false

If we enable disable the signup key under auth.email, we cannot login anymore. This is quite misleading. We get the same error:
Email logins are disabled

If you want to achieve enabled logins but disabled sign ups, you have to disable the signup key in the [auth] section and enable it in the [auth.signup] section which is quite confusing.
Thanks!

@TomasHubelbauer there's also this setting which would have the intended effect, however it is not specific to email or magic link sign-in

Where is this toggle located? I can't seem to find it.

enable it in the [auth.signup] section which is quite confusing

Actually, I think you made a typo, but you helped fix this confusing problem for me! It should be
[auth.enable_signup] = false
[auth.email.enable_signup] = true
This allows my users to sign in using their email (and in my case passwordless) but does not automatically create new users when attempting to sign in with an email that is not yet registered.

@TomasHubelbauer just to clarify, the UI looks different on our platform now - it's been updated to show this:
If the "Enable email provider" toggle is switched on, then it will allow any email-related signups and sign-ins. Can you please describe why you would want to enable sign-ins only but not signups?

My scenario is that we create users based on their signup to an external service, therefore we do not want to permit signups via supabase. Instead, they are created using the same email as they used in external service, and can log into services provided by supabase using that same email. Therefore, login but not signup is a very valid use case IMO.
Thanks everyone for help


Incorrect slides position due to pixels with decimals

Hello,
I've added "Math.round()" to the items width calculation because I obtained an increasing white space after clicking on the "next" control (owl-next).
var rtl = (this.settings.rtl ? 1 : -1),
				width = Math.round(this.width() / this.settings.items).toFixed(3),
				coordinate = 0, merge, i, n;

and
var i, n, width = Math.round(this.width() / this.settings.items).toFixed(3), css = { ... }

This will prevent some css values like "width:100.25px;".

Please make a pull request if you'd like this feature added to the project.


Caught segfault at address 0x0

Describe the bug
Mac import nerf 或运行python tools/run_net.py --config-file ./projects/ngp/configs/ngp_base.py --task test 的时候会崩溃
Full Log
[i 1022 00:01:50.683523 00 compiler.py:955] Jittor(<IP_ADDRESS>) src: /Users/mei/opt/anaconda3/lib/python3.7/site-packages/jittor
[i 1022 00:01:50.734341 00 compiler.py:956] g++ at /usr/bin/g++(12.0.0)
[i 1022 00:01:50.734457 00 compiler.py:957] cache_path: /Users/mei/.cache/jittor/jt1.3.5/g++12.0.0/py3.7.6/Darwin-20.6.0-x92/IntelRCoreTMi5x84/default
[i 1022 00:01:51.089361 00 init.py:232] using 4 procs for compiling.
[i 1022 00:01:51.343270 00 jit_compiler.cc:28] Load cc_path: /usr/bin/g++
clang: error: unsupported option '--showme:version'
[i 1022 00:01:52.669768 00 compile_extern.py:517] mpicc not found, distribution disabled.
Caught segfault at address 0x0, thread_name: '', flush log...
[bt] Execution path:
[bt] #1 1   jit_utils_core.cpython-37m-darwin.s 0x00000001058371b8 _ZN6jittor18segfault_sigactionEiP9__siginfoPv + 2216
[bt] #2 2   libsystem_platform.dylib            0x00007fff20821d7d _sigtramp + 29
[bt] #3 3   python                              0x0000000104ea0cd1 _PyObject_Malloc + 17
[bt] #4 4   libc++abi.1.0.dylib                 0x00000001059eebd8 __cxa_throw + 104
[bt] #5 5   jittor_core.cpython-37m-darwin.so   0x0000000105a0a671 _ZN6jittor15LogFatalVoidifyaaERNS_3LogE + 129
[bt] #6 6   jittor_core.cpython-37m-darwin.so   0x0000000105c1598d _ZN6jittor15setter_use_cudaEi + 253
[bt] #7 7   jittor_core.cpython-37m-darwin.so   0x0000000105c15880 _ZN6jittor12set_use_cudaERKi + 16
[bt] #8 8   jittor_core.cpython-37m-darwin.so   0x0000000105b9eb06 _ZZN6jittor18pyjt_def_jit_flagsEP7_objectEN5$_1158__invokeES1_S1_Pv + 374
[bt] #9 9   python                              0x0000000104e9ef4b _PyObject_GenericSetAttrWithDict + 219
[bt] #10 10  python                              0x0000000104e9dd40 PyObject_SetAttr + 96
[bt] #11 11  python                              0x0000000104f76dfb _PyEval_EvalFrameDefault + 30555
[bt] #12 12  python                              0x0000000104f6e46e _PyEval_EvalCodeWithName + 414
[bt] #13 13  python                              0x0000000104f68e9b builtin_exec + 347
[bt] #14 14  python                              0x0000000104e3ec0f _PyMethodDef_RawFastCallDict + 255
[bt] #15 15  python                              0x0000000104e4031d PyCFunction_Call + 61
Segfault, exit
Minimal Reproduce
Reproduce this error with a file or several lines of code.
If it is not possible, leave it blank.
Expected behavior
A clear and concise description of what you expected to happen.
If you are submitting an issue for the first time, please refer to our guideline

Thanks for your support of JNeRF. For now, JNeRF doesn't support Mac and Windows. We'll public a windows-supported version lately, thanks for your patience.


Package the ts files in dist.

I installed via npm. The dist dir contains js, d.ts and .map files. However, not the original ts sources. Chrome doesn't allow you to set a breakpoint on the js directly if there is a mapping file present. It switches to the (non-existing) ts file.
Could you add them?

Added src directory to npm package.
Let me know if it works.

See 0.0.3, please update me so I can close this.

It works. Thanks!


Examples

Having the ability to select from a list of examples could help those trying to learn specific language concepts. A dialog box would be necessary to confirm overwriting the existing code.

Just a quick idea: What about adding an iframe around the regular playground and put some links in a top bar off that iframe that would just load gleam code if clicked... and then the regular playground would not need any change and could be laoded without the examples-top-bar?


No Components

Hi thanks for the script, I was wondering if its possible to use it with out components, directly on the html , for example something like <div @scrollama-step-enter="stepEnterHandler">?
Thanks for your time

Hah, I'm sorry, for now it can be used only with a Vue component. It may be possible to think up an implementation with a Vue custom directive, but the way I see it, the component is the best implementation.


Cannot "View YAML" in a task group when migrating from classic to YAML

Seems like ever since the "View YAML" feature got moved from the editor UI to "Export to YAML" the Runs page, there is no way to do "View YAML" for task groups anymore.
When I choose "Export to YAML" on a pipeline runs page, the YAML file completely omits all task groups. And when I try to "View YAML" in a task group (in order to manually convert it to a YAML template), I get a dialog with the warning message View YAML has a new home. To use the new feature, click the '...' menu on the Runs page and choose 'Export YAML'. This is counterproductive when migrating from classic to YAML.

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

ID: 36333c89-6223-73cb-ce45-6fbb2638722e
Version Independent ID: 286b8f96-6374-fedd-8d8d-a37fa5e1948e
Content: Migrate from Classic to YAML pipelines - Azure Pipelines
Content Source: docs/pipelines/migrate/from-classic-pipelines.md
Product: devops
Technology: devops-cicd-migrate
GitHub Login: @juliakm
Microsoft Alias: jukullam

After some searching, I realized the same issue was brought up here: https://developercommunity.visualstudio.com/content/problem/1278001/view-yaml-doesnt-work-for-releases.html

Thank you for the feedback. We're tracking this as a bug in the product, as task groups are supposed to be exported correctly.


Full screen quad depth buffer issues depending on camera settings

Likely related to #43575.
Godot version:
3.3.stable, Linux
OS/device including version:
Pop!_OS Linux 20.10, X11, Nvidia GTX 760, GLES3
Issue description:
Following the steps in the advanced post-processing tutorial for using a full-screen quad with the depth buffer, appears to work fine until camera settings are changed.  With a perspective projection, increasing the near clipping distance creates a foreground area unaffected by the shader.  With an orthogonal projection, only objects closer to the far clipping plane seem to be affected.  The actual depth values also appear to be very different at similar distances
Steps to reproduce:
Create a simple scene with a full-screen quad as described in the tutorial linked above.  Change the camera settings to see results like the following:

Minimal reproduction project:
OrthogonalDepthTest.zip

The tutorial should be updated to explain that the sample code is only for cameras using perspective projection.
And it should explain that the quad needs to be beyond the near plane so that it doesn't not get clipped.

@clayjohn Thanks, I had guessed the sample might not work for orthogonal projections, but admittedly assumed INV_PROJECTION_MATRIX would change to account for the current camera's projection in a way that would make it all work out.
That said, I'm still skeptical of the perspective case.  I was (perhaps wrongfully) under the impression that this part of the shader would make sure the quad was in the right place:
void vertex() {
  POSITION = vec4(VERTEX, 1.0);
}

It at least seems to work fine when the near clipping distance is small (0.05).  Plus, it seems more like the quad is just moving further into the scene than I want it to.  To prove this to myself, I put a couple objects underneath the plane I had in the original project and set the near value to 2.  This is what I got:

I tried adjusting the quad translation but that didn't do anything.  However, adjusting the z-value assigned to POSITION worked:
  POSITION = vec4(VERTEX - vec3(0.0, 0.0, 1.0), 1.0);

Interestingly, this seems to fix the issue regardless of the value I set for the near clipping distance (I assumed it would vary with the distance), provided extra_cull_margin on the quad is at least that value (e.g. if near is 7, extra_cull_margin needs to be 7.01+).  The tutorial suggests you set this as high as it will go though, so that shouldn't be a problem.
I'm admittedly not entirely sure that I understand what is happening, as I'm somewhat new to shaders, but I'm questioning if it might be an off-by-one error, either in the engine or just as an oversight in the tutorial.  Either way, hopefully this is useful information.  Thanks again!

POSITION = vec4(VERTEX - vec3(0.0, 0.0, 1.0), 1.0); Did not fix the issue for me.
Perspective:

Orthogonal:

Scene Preview:

https://godotengine.org/article/introducing-reverse-z/
POSITION = vec4(VERTEX.xy, 1.0, 1.0);


I think this needs a version guard because <mods> is a relatively new feature (v7.4.1898)

@tomtomjhj 2016 is relatively new? For whom?
I'm not trying to be sarcastic... I am genuinely interested in knowing use-cases where people need to use vim versions as old as 2016.

TBH, I'd completely forgotten about this PR 😅

Of course, I believe 2016 feature is old enough to use without version check in 2021.
The only reason I think 2016 feature is relatively new is that vim-plug has checks for even older stuff, e.g.

vim 7.3.442, 2012 https://github.com/junegunn/vim-plug/blob/c9971346bb486ccff354aaee8606cc0d2d5a0c97/plug.vim#L589
git 2.0 2014 https://github.com/junegunn/vim-plug/commit/2f4e28161e114cc4b34a9b8ff0f51f4906f37b0b

I'm one of those people with old Vim versions so add a version,feature checks until @junegunn changes his mind on the minimum Vim/Neovim versions.

@janlazo Will do (please wait a few days, I am currently AFK).
I am curious about why you are still using such an old version of vim.
Can you please explain? 😅

One of the strong selling points of vim-plug is its excellent backward compatibility. Most of its features work as expected even with Vim 7.0 which means that it works virtually everywhere. There can be various reasons you can't or won't use the latest versions of Vim (company guidelines, security requirements, systems with tiny resources, etc.), and still, you don't have to worry about vim-plug not working. That's a great thing and we're not going to lose that.

@subnut Old company servers. Difficult to install or upgrade dev packages, even if it's just a newer version of Vim. Some of my colleagues don't know or care that vi,vim,$EDITOR is any version of vim. I doubt anybody there is aware of :terminal command. Some OS packages of vim disable some features are missing a few patches that I need to reliably use the new features (ie. :packadd).

Tried implementing the version guard in 82ffd4f
Please check if the implementation is correct

@janlazo @junegunn What is blocking this PR from being merged?


Add Sunstone view option for start time in OneFlow service list

Description
Have a column in the OneFlow service list with the service start time.
Use case
It would be great to track when the service was started.
Interface Changes
Sunstone.

Progress Status

[ ] Branch created
[ ] Code committed to development branch
[ ] Testing - QA
[ ] Documentation
[ ] Release notes - resolved issues, compatibility, known issues
[ ] Code committed to upstream release/hotfix branches
[ ] Documentation committed to upstream release/hotfix branches

This has been implemented in issue #4966. Needs Sunstone support.

@tinova PRs to be approved:

one: https://github.com/OpenNebula/one-ee/pull/615
docs: https://github.com/OpenNebula/docs/pull/1403

@tinova PRs to be approved:

one: https://github.com/OpenNebula/one-ee/pull/615
docs: https://github.com/OpenNebula/docs/pull/1403


Add a Test Cluster in order to validate the generation/implementation of the Data Model

Problem
Often while adding some features to ZAP or to into the Ember stack I need to set up a kind of "fake" cluster that uses what needs to be implemented.
Also, it may be useful to have a cluster written just to check that either the ZCL or the IM messages dispatching works properly.
This PR add a Test Cluster. This cluster contains a few commands only, and a list of attributes that are supported by the stack.
Summary of Changes

Add a Test Cluster zcl definition (first commit)
Add a server implementation for the Test Cluster (second commit)
Activate this cluster into multiples .zap files (third commit)
Use this Test Cluster into the Darwin CI (fourth commit)
Update gen/ folders (last commit)

@mspang @saurabhst @msandstedt ?


🌱 CI should pass when on codecov upload fail

Summary
Recently, Codecov has become unstable. There is a high probability that it will fail since the results cannot be uploaded. so this PR changes to pass CI job when the codecov upload is failed. when it is stable we will change this back.
[2024-04-17T18:26:30.436Z] ['verbose'] The error stack is: Error: Error uploading to [https://codecov.io:](https://codecov.io/) Error: There was an error fetching the storage URL during POST: 404 - {'detail': ErrorDetail(string='Unable to locate build via Github Actions API. Please upload with the Codecov repository upload token to resolve issue.', code='not_found')}

Related issue(s)
https://github.com/codecov/codecov-action/issues/926
https://github.com/open-cluster-management-io/ocm/pull/396
Fixes #https://github.com/open-cluster-management-io/managed-serviceaccount/actions/runs/8731709928/job/23957554124?pr=104

/assign @xuezhaojun

/lgtm


Fix bug in terratest-log-parser that mixes result lines

This fixes two bugs in terratest-log-parser:

terratest-log-parser was incorrectly handling result lines such that they leaked into the wrong test. You can see this behavior in the modifications made to the test fixtures.
With newer go versions, the assertion failures were being reported before the fail result line. This change was previously not handled well, resulting in the error traces being ignored and not making it to any split out log file. This now properly feeds those lines to the right test file.

NOTE: build is failing because of https://github.com/gruntwork-io/terratest/pull/898

UPDATE: Rebased on master to trigger build with fix branch so we get some regression testing.

@brikis98 Can I get another approval now that the build is passing on the rebase?

Thanks for review! Merging this in now!


ensure generated changes for circuit updates are checked in for PRs

for https://github.com/hyperledger-labs/zeto/pull/105#discussion_r1867217684

failures proved the workflow works.
it will need #102 and #105 to have a green build

Good idea!

One thing that would be useful is documenting the circom level, or even better check the required level in gen.js


Why I can’t perform multiple MapFromFile injections into the current host process?

I am trying to understand why I can’t perform multiple MapFromFile injections into the current host process.  After the first successful injection the process terminates.  The auto image = thisProc.mmap().MapImage(AbsExeCmd.c_str(), ManualImports | RebaseProcess, callback);
never returns control.   I even tried spawning the injection into a thread and that too kills the host process when it completes.
The goal is to load and run multiple file system executables within a single host process.  For the example I am trying to run multiple SysInternal executables in a single host process,  in this case,  Samples64.exe
I have modified Samples\Main.cpp to only inject from file Volumeid64.exe and LoadOrdC64.exe :
   std::wcout << L"Starting Volumeid64.exe MapSysInternalFromFile" << std::endl;
   MapSysInternalFromFile(L"Volumeid64.exe");
   std::wcout << L"Starting Volumeid64.exe MapSysInternalFromFile returned" << std::endl;

    std::wcout << L"Starting LoadOrdC64.exe MapSysInternalFromFile" << std::endl;
    MapSysInternalFromFile(L"LoadOrdC64.exe");
    std::wcout << L"Starting LoadOrdC64.exe MapSysInternalFromFile returned" << std::endl;

I have added a new routine to Samples\ManualMap.cpp by coping  MapCalcFromFile() to MapSysInternalFromFile() and tweaking it slightly to accept an executable name:
void MapSysInternalFromFile(std::wstring cmd)
{
    std::wstring AbsExeCmd = L"c:\\SysinternalsSuite\\";

    nativeMods.clear();
    modList.clear();

    nativeMods.emplace(L"combase.dll");
    nativeMods.emplace(L"user32.dll");
    if (WinVer().ver == Win7)
    {
        nativeMods.emplace(L"gdi32.dll");
        nativeMods.emplace(L"msvcr120.dll");
        nativeMods.emplace(L"msvcp120.dll");
    }

    modList.emplace(L"windows.storage.dll");
    modList.emplace(L"shell32.dll");
    modList.emplace(L"shlwapi.dll");

    auto callback = [](CallbackType type, void* /*context*/, Process& /*process*/, const ModuleData& modInfo)
    {
        if (type == PreCallback)
        {
            if (nativeMods.count(modInfo.name))
                return LoadData(MT_Native, Ldr_None);
        }
        else
        {
            if (modList.count(modInfo.name))
                return LoadData(MT_Default, Ldr_ModList);
        }

        return LoadData(MT_Default, Ldr_None);
    };

    AbsExeCmd.append(cmd);

    std::wcout << L"Manual image mapping from file test" << std::endl;

    Process thisProc;
    thisProc.Attach(GetCurrentProcessId());
    std::wcout << L"Trying to map " << AbsExeCmd << L"into this process" << std::endl;

    auto image = thisProc.mmap().MapImage(AbsExeCmd.c_str(), ManualImports | RebaseProcess, callback);
    if (!image)
    {
        std::wcout << L"Mapping failed with error 0x" << std::hex << image.status
            << L". " << Utils::GetErrorDescription(image.status) << std::endl << std::endl;
    }
    else
        std::wcout << L"Successfully mapped, unmapping\n";

   thisProc.mmap().UnmapAllModules();
 }

I found the answer in another issue.  Basically the CRT will tear down the process once any thread calls ExitProcess() (i.e. child main exits).


boolean hideSuccessfulResults

Having a hard time getting hideSuccessfulResults in pipeline, it's asking for a sting in the pipeline but in the code it looks like its asking for a boolean.  I've tried various ways to get it to work, but successful results are still posting to slack

Under the hood it uses boolean.getboolean, which apparently is looking at a system property with that name. Haven't gotten it to work yet....

System.properties['hideSuccessfulResults'] = "true"
cucumberSlackSend channel: "#channel", json: "cucumber.json", failOnError:false, hideSuccessfulResults:"hideSuccessfulResults"


Feature request: Add Parser official support for Lambda Function URL

Use case
Lambda function support was added to event handlers. Parser should also be able to support it out of the box.
Solution/User Experience
Have parser add an envelope and model for lambda function events.
Let me know when I can add it.
Alternative solutions
No response
Acknowledgment

[X] This feature request meets Lambda Powertools Tenets
[ ] Should this be considered in other Lambda Powertools languages? i.e. Java, TypeScript

Thank you Ran, I've just updated the title and removed triage. Feel free to make a PR, I also added a help wanted label for anyone else if you don't have the bandwidth. I also remember you shared there were some validation issues - let us know if we can help.

I'll prepare a PR, no problem, should be easy.

We'll release it by EOW the latest. Got an announcement to make tomorrow before we schedule the best date for the release.


Build Server support: set build server's build number to git version height during build

Might be useful to have a way to set the build number the build server uses to match the calculated version.
I realize that all build servers have different ways to do this but it is possible:

TeamCity
AppVeyor
VSTS Agents

To name a few popular ones

Are you suggesting that we make it so TeamCity is influenced by NBGV, or the other way around?
Build server build numbers tend to be ever-incrementing integers. But NBGV build numbers are calculated based on git commit height. So they are intended to represent different things. I think build servers determine the build number to use before they even start the build, so it's far too late for NBGV to influence what that build number is.
Most build server integration I see in packages like these let the influence go the other way: the build number determined by the build server becomes the build number used in actual version stamping of the binaries. But that's exactly why I wrote this package: I don't believe in that. I think builds should be exactly reproducible by syncing to the commit that was originally built. The build server's stateful incrementing integer shouldn't make break that.

I sympathize though. I have often wish the numbers aligned. But then I think about how sometimes I need to build the same commit more than once, and I realize the build server's numbering scheme makes sense to keep the 2 builds separate.

No, I meant that NBGV would set the build number...each build server has a way of having its version set programmatically and is implemented here by GitVersion:
https://github.com/GitTools/GitVersion/tree/master/src/GitVersionCore/BuildServers

Oh! That's very interesting. Thanks for the tip.

The work for VSTS is done via #61 and commit 923fccde2ca19f88a913808308ace119ff83b3a7

Hmmm... well, I guess I don't go as far as updating the build number itself -- I set other VSTS variables though.

Working on AppVeyor cloud build number support now. Online documentation suggests it's simpler than making HTTP calls the way GitVersion does.

Hey @AArnott there's something I don't understand about how this works with AppVeyor. If you look at the history here:
https://ci.appveyor.com/project/KirillOsenkov/msbuildstructuredlog/history
the version jumps from 1.0.17 to 1.0.27 after your PR 23, then continues to be incremented +1 (and not by Git height), then after 1.0.33 randomly jumps back to 1.0.27, and continues to be incremented +1 from there as well.
I saw you added this:
https://github.com/KirillOsenkov/MSBuildStructuredLog/blob/master/version.json#L12-L16
How does it work? Do I need to change anything in AppVeyor settings to respect that?

Hi @KirillOsenkov, excellent questions. Short answer is everything you see is by design.

the version jumps from 1.0.17 to 1.0.27 after your PR 23

Yes, AppVeyor has its own concept of build number which set 1.0.17. Then after PR 23 NB.GV took over and as your git height was 27, it jumped to that.

then continues to be incremented +1 (and not by Git height)

I'm not sure why you say it's not by git height here. Your git history shows that each of these builds are in fact just one commit away from each other (you appear to be using direct pushes and single commits for each of these changes). So it looks fine to me.

then after 1.0.33 randomly jumps back to 1.0.27, and continues to be incremented +1 from there as well.

It's not random. 1.0.33 was the last calculated git height. In the meantime, AppVeyor continues to have its own idea of auto-incrementing build numbers which each build is assigned until NB.GV replaces it. When the build fails before NB.GV replaces it, the AppVeyor-assigned build number remains. So that's why it appears to be 'thrown backwards' in build numbering. You'll notice that all the ones with the backwards build numbers are failed builds. So there you go.
You may want to change your appveyor version to 0.0.{build} so that when these occur it's more obvious it isn't in the normal versioning line of build numbers.

I saw you added this:
https://github.com/KirillOsenkov/MSBuildStructuredLog/blob/master/version.json#L12-L16
How does it work? Do I need to change anything in AppVeyor settings to respect that?

It simply causes NB.GV, during the build, to execute a special command that AppVeyor interprets as a request to change the build number.
Nothing else you need to change, except perhaps that appveyor.yml version change I recommend changing in my above paragraph.

Perfect explanation, thanks Andrew! I've set my AppVeyor next build number to 0.0 instead, so that this never overlaps with what NB.GV is setting.
This also explains why the build started failing as soon as it reached 1.0.27. 1.0.27 was the first build number that was set by NB.GV, and so when an AppVeyor build starts initially, it uses the AppVeyor numbering, which happened to overlap with 1.0.27 (AppVeyor "reached" or "passed" NB.GV). As soon as that happened, AppVeyor failed the build, without giving NB.GV a chance to run.
Workaround is as you say, set a different version to AppVeyor as I did.

Also you're right, I'm using 1 commit per push, so incrementing actually matches git height. I jumped to incorrect conclusions.

I should update the README's FAQ with your questions though... they're good ones.

Yes, basically the AppVeyor version sequence as set up in the AppVeyor Settings should never intersect with NB.GV since the former takes precedence and fails the build immediately in case of collision. Setting the AppVeyor to 0.0.* is a good advice.

I've documented this nuance with appveyor in the cloud build doc.

The implementation class for TeamCity support seems to do nothing (?), how would one go about to retrieve a generated build number from NBGV in TeamCity?
I think there's missing a call to something like should be a call to something like
stdout.WriteLine($"##teamcity[buildNumber '{buildNumber}']");

in Nerdbank.GitVersioning/src/NerdBank.GitVersioning/CloudBuildServices/TeamCity.cs?

@andreasnilsen I think the deal here was I couldn't find TeamCity documentation for how to set the build number. If you know, please file a dedicated issue for it referencing the docs. Or (even better) send a PR.

@AArnott everything you need is already in the GitVersion repo as far as build server interaction goes:
https://github.com/GitTools/GitVersion/blob/master/src/GitVersionCore/BuildServers/TeamCity.cs#L58

Nice.

@AArnott:
Maybe I am confused here.
When using NBGV to set version, I can see it being applied on the assemblies them self, but I don't know how this can be applied to "build.number" configuration parameter in TeamCity to be used in steps after. It doesn't seem to be doing that.

@appendix68, during the build within a cloud CI system, special steps exist that can be taken to change or set certain variables to affect subsequent build steps. In the case of TeamCity, it appears this is done through a special format of logged messages.
It seems from that code that we set buildNumber rather than build.number that you mentioned. Also it doesn't impact cloud build variables at all unless you turn it on in your version.json file by setting setVersionVariables=true.
Does that help?

@AArnott Thank you for replying.
It correct that "buildNumber" is the right parameter, but the variable within TC is called "build.number". Sorry for the confusion.
My issue is now that even with the version.json like this:
{   "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",   "version": "1.0",   "cloudBuild": { 	"setVersionVariables": true,     "buildNumber": {       "enabled": true     }   }   }
I am still not seeing that "##teamcity[buildNumber '']" line is being executed during the build.

You may not see it in the build log--at least with the CI systems I've seen, they suppress logging these special messages in the exposed output. You could test it yourself locally by building your project, setting the environment variables that this file looks for as "activation" checks. Then you should see the messages logged. And if you don't see them in TeamCity, either TeamCity has changed its environment so that the extension doesn't activate, or it's suppressing the messages from the log (but still processing them, presumably).

@AArnott, sadly I cannot get it to work locally either. I've set the environment variables in Visual Studio in Pre-build event like this:
SET BUILD_GIT_BRANCH="refs/heads/develop" SET BUILD_VCS_NUMBER="5988cd7e189317859ecb7466b3091d083132ba79"
But it still won't work. Am I doing something wrong again?

I've never tried setting the env vars in prebuild. I always use the developer command prompt to set them manually then kick off msbuild. Does that work for you?

So, I got it to work locally. :)
The issue with Teamcity is that even with the variables set, it is not working.
What we did is that we added a new Message task to output the string when AfterBuild target is executed:
<Message Importance="High" Text="##teamcity[buildNumber '$(AssemblyInformationalVersion)']"/>
I just couldn't get it to set the variables as described in your docs.
Thanks for the help though.

Strange that your workaround works when NB.GV doesn't as it seems to use the same mechanism and string to emit the message. Thanks for sharing your workaround anyways, @appendix68. :)

In vsts projects with several builds / repos its confusing that the cloud build number is just semver.
So I put a powershell step in after a solution has built that puts identifying information back into the build number
e.g.
1.2.3  to Nerdbank gitversion master 1.2.3
#place this in a build step after a solution with nerdbank.gitversioning nuget has been completed
$newVersion = $env:SYSTEM_TEAMPROJECT + " " + $env:BUILD_DEFINITIONNAME + " " + $env:BUILD_SOURCEBRANCHNAME + " " + $env:BUILD_BUILDNUMBER
Write-Host ("##vso[build.updatebuildnumber]$newVersion")

Thanks for sharing, @wyrdfish. Do you see what NB.GV is doing as a takeback? IIRC, default VSTS build numbers don't include this information either.

I too have the TeamCity problem. It doesnt seem to be setting any of the ##teamcity parameters.
I do see the messages output when running locally with the env variables set, but nothing during the TeamCity build. Anything I can do to help troubleshoot?

Thanks for offering, @nskerl. I don't have TeamCity to test this myself. VSTS hides these messages in its own logs, so it's believable that NB.GV is doing the right thing in teamcity as well and that the logs are just suppressing those special control messages. That leads me to suspect that teamcity is simply not respecting the commands. Perhaps the commands NB.GV is emitting are wrong, or the variable name is wrong, etc. That's what I think would be best to investigate if you can do that.

Hi,
Any clue on how can I take the GIT_VERSION and use it in Jenkins to publish NUGET packages? Is there a way to read it from the file or is it accessible anywhere from within Jenkins?
Thanks

@bbeda Can you explain further what you mean? What is the GIT_VERSION you're talking about? This tool produces a lot of different versions (for nuget packages, assembly versions, etc.).
When you say you want Jenkins to use it to publish nuget packages, I don't know why you need the version to publish packages. You need the version to build packages, but if they're msbuild self-packing projects then the NB.GV nuget package automates this versioning for you already.

@AArnott Sorry. The question is not an issue on GitVersioning, that is working fine but rather about Jenkins.
So, I am using the GitVersioning in my library which I am building with Jenkins. After build, I want to publish the resulted NugetPackage on the Nuget server. GitVersioning is generating the correct file jenkins_build_number.txt but I don't know how to get the version number from the file so I can target the specific nupkg file.
I mentioned the GIT_VERSION because I saw in the source code that it is setting this Environment Variable as well however, I couldn't manage to make that work either.
Thank you

Thanks for the added explanation. I'm rather unfamiliar with Jenkins. Is it unable to simply nuget push *.nupkg, such that you have to know the exact file name? If so, the way I'd be inclined to solve it is with a powershell or other script that finds the filename and then invokes nuget push. Is that an option for you?
Otherwise, you could run dotnet tool install -g nbgv as documented here and then use the powershell script (nbgv get-version -f json | convertfrom-json).nugetpackageversion to fish out the actual package version.

I have already done the first option, before each build, deleted all *.nupkg and at the end published all using the same pattern. That is however not fully using the tool and is more general so I was curious to see how I could use the file or eventual environment variable NB.GV is setting.
Thank you for the second suggestion.

Hi @bbeda, did you manage to get GitVersioning working with CloudBuild and Jenkins? Did you find a nice way of getting the version/build numbers? I'm experiencing the same issue.

@connorads  - sorry, somehow I missed this. No, I did not. I ended up clearing the workspace before the build and the publish *. Have you found a way to publish the specific file?

Hey @bbeda so we're using Jenkins Pipeline and we just read the version number from the text file generated by cloud build.
First we enabled cloud build in 'version.json` for one of our projects.
Then when you're building in a Jenkins environment dotnet build (I believe that it checks an environment variable that is set in Jenkins environment). It will generate a text file with the version number in it jenkins_build_number.txt
Then you can just read this out of the file into an environment variable and access it in different build steps.
script { env.VERSION_NUMBER = readFile 'jenkins_build_number.txt' }

@connorads  thank you. That is working fine however I have other issues

The file contains the BuildVersionNumber but my Nuget package gets generated using GitAssemblyInformationalVersion (which has an extra 'g'). Of course I execute a little something to add that 'g' in the variable but I would like to understand how is this supposed to be working out of the box.
It looks like not of the Build Variables are set. By example, how can I use GitAssemblyInformationalVersion in my next steps. I have dumped the EnvironmentVariables from one of the steps using bat 'set > env.txt'   and cannot see any of those in the docs.

Here are my version.json
{   "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",   "version": "2.0",   "cloudBuild": {     "setVersionVariables": true,     "setAllVariables": true,     "buildNumber": {       "enabled": true,             "includeCommitId": {         "when": "nonPublicReleaseOnly",         "where": "buildMetadata"       }     }   } } and
Jenkins step
steps {         dir(path: '...') {           bat(script: 'dotnet build ...sln -c Release -r win-x64', label: 'Build')                   }         script { env.VERSION_NUMBER = readFile 'jenkins_build_number.txt' }         echo("${VERSION_NUMBER}")         bat 'set > env.txt'                }     }
This works fine:   echo("${VERSION_NUMBER}")
This prins null echo("${env.GitAssemblyInformationalVersion}")  along with any other things I tried
@AArnott  any ideas?
Thanks

@AArnott
I looked at the code and it looks like the environment variables are set for the current process - which I guess is dotnet/msbuild (where this task is running at build).
Environment.SetEnvironmentVariable(item.Key, item.Value); in SetCloudBuildVariables line 63
Is it just the case of making that set the EnvironmentVariables machine wide or I am missing something?

@bbeda, environment variables can only ever be set in the current process. AFAIK there's no such thing as setting an environment variable machine-wide. All you can do is change the registry so that Windows Explorer starts (next time) with more environment variables, and as Windows Explorer starts all other processes (more or less) they inherit those environment variables when next started.
So the idea of setting environment variables in other, already running processes can't be done. The technique of leaving files or other hints so that other processes will change their own environment is a sound idea.

@AArnott  that makes sense, thanks. Just read the docs as well, sorry for the confusion.
However, the main problem I have here is that the value put in the file is the GitBuildVersion whilst the package version is GitAssemblyInformationalVersion (with the 'g' to comply with semver) and I cannot target the .nupkg directly. Right now I am adding that 'g' with a script but could there be a way to get the NugetPackageVersion out of the box?

Sure. You can get any variable you want either by extracting it from msbuild properties or by running this in a powershell script:
 (nbgv get-version -f json  | ConvertFrom-Json).NuGetPackageVersion

You of course would need to first install the nbgv dotnet CLI tool.


Controller manager on secured port

Hi,
Motivation for this PR:
At this moment controller managers services are talking to API server on the insecured port. (i.e:: auth and authz bypassed) PodSecurityPolicy need controller-manager service running, authentificated with it's own credential. Otherwise all PodSecurityPolicy objects would be allowed for each Pod created by controller-manager (ReplicaSet, Deployment...)
I have a fork of this charm with this change since more than 6 months and I'm interested to push it upstream.
Thanks,
PS: for the variable "kubecontrollermanagerconfig_path" maybe it's better to have it in kubernetes_common layer. If this PR is accepted I will create another PR in kubernetes_common to put this variable in the right place by refering this PR

Thank you very much for the PR, @pierrop. I wouldn't suggest moving kubecontrollermanagerconfig_path to kubernetes_common unless it was needed by the master and worker charm.

Fixes https://bugs.launchpad.net/charm-kubernetes-master/+bug/1841965
Thanks for the follow-up @pierrop. LGTM, merging!

Perfect ! You're welcome :)