Bytes to str conversion results in malformed xml in Python3

Discussion - https://github.com/spdx/spdx-online-tools/pull/205#issuecomment-742222481

I did some more research and the data is stored incorrectly in the database.
In the Python3 version, prepended with b:
>>> result[0][7]
'b\'<SPDXLicenseCollection xmlns="http://www.spdx.org/license"><license isOsiApproved="true" licenseId="testid" name="Test License [Please Ignore]" listVersionAdded=""><crossRefs><crossRef>http://source1.com</crossRef></crossRefs><standardLicenseHeader /><notes /><text>
test not there yet
</text></license></SPDXLicenseCollection>\''

I looked at the production database, and the string is just stored as XML:
<SPDXLicenseCollection xmlns="http://www.spdx.org/license"><license isOsiApproved="false" licenseId="V8" listVersionAdded="" name="V8 Project License"><crossRefs /><standardLicenseHeader /><notes /><text>
Copyright 2006-2011, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
<list><list><item><bullet>*</bullet>
Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
     Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
     Neither the name of Google Inc. nor the names of its
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</item></list></list></text></license></SPDXLicenseCollection>

The xml string is created by a call to xml.etree.ElementTree.tostring(root, method='xml') at https://github.com/spdx/spdx-online-tools/blob/408cd70933b1814e4002d7172d01f12bb535c132/src/app/generateXml.py#L155
The return return value is:
b'<SPDXLicenseCollection xmlns="http://www.spdx.org/license"><license isOsiApproved="true" licenseId="testid" name="Test License [Please Ignore]" listVersionAdded=""><crossRefs><crossRef>http://source1.com</crossRef></crossRefs><standardLicenseHeader /><notes /><text>
this doesn\'t match anything
</text></license></SPDXLicenseCollection>'
The model defines XML to be a textField at https://github.com/spdx/spdx-online-tools/blob/408cd70933b1814e4002d7172d01f12bb535c132/src/app/models.py#L37
This is where my Python knowledge runs out - I'm not sure why the strings are stored differently between Python2 and Python3.
Suggesting that the fix be to store the data without the b'<... so that it is compatible with the existing database.

Yeah, turns out the issue is with the module - import xml.etree.ElementTree as ET. Went into the ElementTree codebase it returns bytes by default if encoding is not provided. 2 ways to do this
Either do xmlString = xmlString.decode("utf-8") or use xmlString = ET.tostring(root, method='xml', encoding='unicode')
More info - https://stackoverflow.com/questions/15304229/convert-python-elementtree-to-string

@goneall So as I understand correctly, Python2 database looks fine - all the relevant fields are stored as normal string right? This issue occurred because you saved some license with Py3 which saved it as bytes. Right?
If yes, then to fix this - we need to go through the codebase to find more usage of str(..), unicode(..)) etc and add decoding/encoding accordingly. If no, then we would have to fix the current database itself since we can't handle every other unicode/ascii case. We need to have out database consistent.

So as I understand correctly, Python2 database looks fine - all the relevant fields are stored as normal string right? This issue occurred because you saved some license with Py3 which saved it as bytes. Right?

Yes - that is correct

If yes, then to fix this - we need to go through the codebase to find more usage of str(..), unicode(..)) etc and add decoding/encoding accordingly.

I can think of two things we could do:

Grep the code base for str( and unicode( then review the occurrences
Run some manual tests to create database entries and compare them to the Python2

The latter would catch issues which may be caused by library calls to str(..) and unicode(..).
@rtgdk Are there any other steps you can think of?  Also, should we grep for any other patterns?

Apart from str( and unicode( explicit conversions, we also need to check any implicit conversions as well like some module function call - eg: ET.tostring(root, method='xml').
We can also grep decode/encode/utf-8/unicode/

This specific problem has been resolved with the PR #273  however, there are 2 new problems which now show up - issue #275 and issue #274

Resolved issues #275 and #274 with PR #276

I reviews all the calls to ET in utils.py which involve encoding.  Later this week, I'll grep for the other encoding related items.
Note that open(... also can have encoding issues.  I reviewed all the calls to open in views.py and fixed all the identified issues in PR #276

I reviewed the strings and found a couple of areas that should be looked at by someone more experienced in Python.  @rtgdk @Ugtan If you could take a look and see if there are any encoding issues.
The review was done on the branch fixencodinggo which includes all the fixes to date.
The utils method get_license_data should be reviewed - it is hard to test in a non-production environment and includes a lot of string decoding:  https://github.com/spdx/spdx-online-tools/blob/4cd4e3146a2aa32951faf992a6f98efc58d2232f/src/app/utils.py#L459
The file https://github.com/spdx/spdx-online-tools/blob/fixencodinggo/src/api/views.py should be reviewed - it has some str's and other encode decodes.  I reviewed the file and didn't see anything obvious, but I could have missed something.
I'll attach 3 files from the string greps for reference:
decode.txt
encodestr.txt
strs.txt

@goneall Updated PR with some more encode/decode changes. Regarding str( changes, I think we will be good without them. We just don't want bytes in our database.

@goneall Updated PR with some more encode/decode changes. Regarding str( changes, I think we will be good without them. We just don't want bytes in our database.

This was fixed with python3 support


VirtualFilePathResult is not intuitive

https://github.com/aspnet/Mvc/pull/3039
if (System.IO.File.Exists(fullPath))
                {
                    return File(fullPath, "application/octet-stream");
                }

Microsoft.AspNet.Mvc.FileResult: Information: Executing FileResult, sending file as
Exception thrown: 'System.IO.FileNotFoundException' in Microsoft.AspNet.Mvc.Core.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Microsoft.AspNet.Diagnostics.DeveloperExceptionPageMiddleware: Error: An unhandled exception has occurred while executing the request

Not quite sure what is the idea of VirtualFilePathResult especially this introduce breaking change for those who port and those who read this dead simple code. Why a framework unable to return a file that  exists with FileNotFoundException?

/cc @Eilon @rynowak
Is there a reason we don't see if the path is rooted to determine which to use?

"Rooted" is ambiguous in a cross-platform scenario. The reason we split the former single "FileResults" into Physical and Virtual is that paths that start with / are ambiguous. On *nix/Mac it could mean "root of the filesystem" or "root of the app", whereas on Windows it more typically means "root of the app". By having two different types the ambiguity is removed, and the onus is on the caller to use the right type.

For web applications you generally care about the files within your application. Also in hosted scenarios you often want to prevent apps from reading arbitrary files anywhere on the machine. Hence most file APIs in ASP.NET Core deal with virtual paths rooted at the application instead of physical paths for native file system. The File method on Controller uses virtual paths.
To check for the existence of a file using a virtual path you can use the IFileProvider from the IHostingEnvironment service.

It's up to you to decide but ideally the intend of the code must be explicit
Anyway,
in the end I have to code it like this
return File(new System.IO.FileStream(fullPath, System.IO.FileMode.Open), "application/octet-stream", new System.IO.FileInfo(fullPath).Name);

@andrew-vandenbrink you can do return PhysicalFile(...) if you have a full path (e.g. c:\dir\file.txt, or on *nix /usr/user123/file.txt).


leaflet-geocoder-mapzen.css missing

With<EMAIL_ADDRESS>the leaflet-geocoder-mapzen.css file is not present in the dist directory after installing. The .js file is properly copied however.
I declared leaflet-geocoder as a dependency of my software as follows:
"leaflet-geocoder-mapzen": "^1.6.3"

The dist folder looks as follows:
├── images
│   ├──<EMAIL_ADDRESS>│   ├── loading.gif
│   ├──<EMAIL_ADDRESS>│   ├── point_icon.png
│   ├──<EMAIL_ADDRESS>│   ├── polygon_icon.png
│   ├──<EMAIL_ADDRESS>│   └── search.png
└── leaflet-geocoder-mapzen.js

Indeed it is. We changed the deploy process and things borked. I'm looking into it today.

@leezu We've deprecated 1.7.0 and published 1.7.1 which should put the CSS (and minified files) back. Please try that and let me know if that works.

Works fine now, thanks!


enable using token from ~/.netrc

i'll try to get a PR together sometime soon to make this possible with octokit-auth-netrc

Let's talk about authentication in general. I was thinking to introduce a prompt to ask about authentication if the --octoherd-token CLI argument is not passed.
In that prompt, we can utilize octokit-auth-netrc to check if it finds a token and suggests that as an option.
The other options I'd like to start with:

Enter a token
Create a new token using @octokit/auth-oauth-device

Future ideas:

Add option to authenticate using a GitHub app, either by entering App ID and Private Key or by using the GitHub App Manifest Flow to create a GitHub App. If we support GitHub App authentication we need to update the way we iterate through repositories
Question: should we keep a session / multiple sessions, similar to other CLIs such as npm or gh. We could introduce octoherd login and run scripts using octoherd run. I haven't done this before though, so I wonder what the conventions and security considerations are here. I'd also like to keep Deno compatibility in mind, see #5

With the recent introduction of support for GHES domains, octokit-auth-netrc will need to be updated to also support custom domains. I have opened a PR to support GHES domain in the netrc plugin: https://github.com/travi/octokit-auth-netrc/pull/608


test(codecov):codecov

test(codecov)

Codecov Report

Merging #20 (ac2a943) into master (0b3d5a8) will decrease coverage by 5.12%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
- Coverage   72.90%   67.78%   -5.13%
==========================================
  Files          22       22
  Lines         897      897
  Branches        0      118     +118
==========================================
- Hits          654      608      -46
  Misses        243      243
- Partials        0       46      +46

Impacted Files
Coverage Δ

blog_server/app/utils/json_util.py
50.00% <0.00%> (-16.67%)
:arrow_down:

blog_server/app/api/special/__init__.py
55.55% <0.00%> (-16.67%)
:arrow_down:

blog_server/app/comm/GeneralOperate.py
69.23% <0.00%> (-10.13%)
:arrow_down:

blog_server/app/api/general/general_controller.py
69.23% <0.00%> (-7.70%)
:arrow_down:

blog_server/app/utils/auth_utils.py
92.85% <0.00%> (-7.15%)
:arrow_down:

blog_server/app/comm/User.py
81.39% <0.00%> (-6.98%)
:arrow_down:

blog_server/app/utils/loging_util.py
93.33% <0.00%> (-6.67%)
:arrow_down:

blog_server/app/comm/CompositeOperate.py
70.00% <0.00%> (-5.00%)
:arrow_down:

blog_server/app/api/general/BlogOperate.py
50.00% <0.00%> (-4.17%)
:arrow_down:

blog_server/app/comm/TableModule.py
92.30% <0.00%> (-1.54%)
:arrow_down:

Continue to review full report at Codecov.

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


Markdown characters get duplicated in source mode when Iconize is on

Since the latest update, when Iconize is activated, all markdown special characters in my notes appear twice when I'm in source mode (except on the line where my cursor is).

This only happens in my main vault though. I couldn't replicate the problem in the sandbox vault, even with the plugin configured exactly the same way as in my main vault. I couldn't find where the conflict could come from. I deactivated all CSS snippets in the main vault, switched to default theme and deactivated all other plugins, yet the problem remains.

thanks for the bug report. i've created a hotfix for this issue!


Add docs for this under auth helpers?

ReadMe should show how to initialise the project when using this library.
You don't need the supabase_flutter dependency directly if only using the auth ui lib

Agreed.  The documentation is pretty thin, I hope they continue working on this.

It will def keep being worked on 🙂

@dshukertjr What do you think of adding docs for this under auth helpers?

@FatumaA Thanks for coming back to this. Adding docs under auth helpers sounds great.
Let me wrap up https://github.com/supabase-community/flutter-auth-ui/pull/46 real quick and then let's add the docs under auth helpers!


Failed at the<EMAIL_ADDRESS>harp script 'harp "server"

On running the following command for angular.io:
 gulp serve-and-sync

I get:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>harp: `harp "server" "."`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>harp script 'harp "server" "."'.

I have the latest clone of angular.io
I have the latest stable versions.  See log trace below for versions:
My log file:
  ~/.npm/_logs/2017-03-22T07_49_20_963Z-debug.log

is attached.
2017-03-22T07_49_20_963Z-debug.log.txt

That doesn't give too much information.
Although, serve-and-sync needs the angular/angular project to be downloaded as well as a sibling folder.
Try server-and-sync-devguide.

Thank you and sorry for wasting time.  I will think twice before raising a ticket until am more expert with angular.io
In fact for some reason harp was running and hogging the port.  Maybe it did not stop last time for some reason.
Thank you for the server-and-sync-devguide tip.
You can close the ticket.

Nothing to be sorry about.


Remove manual service

Motivation for this change
This removes the nixos-manual service on TTY-8 since it isn't very useful (you can just run nixos-help) and is a security issue if people enable it in regular systems.
While I was at it, I also removed the rogue service (which has been disabled in the installer for a while).
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[X] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Sounds good to me in principle.  Let's add mkRemovedOptionModule I guess?  I certainly assume porting to 20.03; I'm not sure about 19.09.

I think having the manual already open on the installer is useful and cool. Also rogue is nice when you have to wait for nix-install to finish.
I have a happy memory of the first time I installed NixOS: I was surprised to discover the non-graphical installer was so friendly compared to arch linux.
I'm not really happy to see these going away.

Maybe making the modules internal and only enabling them on the installer could be a solution.

https://github.com/NixOS/nixpkgs/blob/67c81af775efd0e9afea1d41b92b7eec9be89485/nixos/doc/manual/installation/installing.xml#L26-L29
This one too.

https://github.com/NixOS/nixpkgs/pull/83199#issuecomment-602484826
This needs to use mkRemovedOptionModule, that's actually in the checklist for reviewing contributions in the nixpkgs manual.

Like this?  #83651


configuring express and change some babel dependency

What does this PR do?
this PR is for configuring express
Description of Task to be completed?
this PR is for configuring express in VisitAfrica-backend
How should this be manually tested?
After the cloned this repository(https://github.com/Soma-Technologies-Inc/visitAfrica-backend.git) run npm install and once set up is done run npm run start-dev then use postman to test this endpoint
GET request
visit: http://localhost:3000/
Any background context you want to provide?
N/A
What are the relevant pivotal tracker stories?
[#175800938]
https://www.pivotaltracker.com/story/show/175800938
Screenshot (if appropriate)
Those are screenshots for testing get appropriate routes and detect errors if you type bad requests.

Please consider to not put your Mentor in Team mate review.


Log errors if cannot listen (most often [Error: listen EADDRINUSE 127…

….0.0.1:4568])
Usee process.exit() to exit

Thank you!


C: Printing code to the console lets the tests succeed

This issue was reported by a user smile67 and elaborated on by a user SteffenVogel_79. Under certain circumstances (that I am currently not aware of), when printing to the console, it lets the tests for the current kata succeed.
I've investigated a little and it doesn't seem like this issue always manifests itself when simply printing to the console. For instance, given example tests window set to:
#include <criterion/criterion.h>

int endsWith(const char*, const char*);

Test(BasicTests, ShouldPassAllTheTestsProvided) {
  cr_assert(endsWith("a", ""));
  cr_assert(endsWith("abc", "c"));
  cr_assert_not(endsWith("a", "a "));
  cr_assert_not(endsWith("a", "A"));
}

And user solution (provided by smile67):
int endsWith(const char *string, const char *suffix) {
  printf(suffix);
  return 1;
}

All tests pass. However, given:
int endsWith(const char *string, const char *suffix) {
  printf(string);
  return 1;
}

or
int endsWith(const char *string, const char *suffix) {
  printf("Foo");
  return 1;
}

tests work properly and fail accordingly.

Thanks for reporting. I don't code in C and didn't add the language, and the developer who added may not be available. Here is the line in the reporter that is likely the issue, can you help point me in a right direction?
https://github.com/Codewars/codewars-runner-cli/blob/master/frameworks/c/criterion.c#L24

nvm, I think I've got it figured out.

What was the problem if I may ask, Jake?
On Mon, Oct 17, 2016 at 2:48 AM, Jake Hoffner<EMAIL_ADDRESS>wrote:

nvm, I think I've got it figured out.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Codewars/codewars.com/issues/630#issuecomment-254085950,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AO-NGs4l2WwjS3DpbnEgf1i-15iqn0omks5q0rfRgaJpZM4KYCnx
.

the data format requires tags like <PASSED::> and <FAILED::> to be on a new line, but printf doesn't add a line break so it was causing the FAILED:: tag to be placed in the middle of a line.  So the fix is just to add a \n before the actual tag. Its tested locally and ready to go out, I'll deploy once peak traffic is over.

Thank you!
On Mon, Oct 17, 2016 at 5:39 PM, Jake Hoffner<EMAIL_ADDRESS>wrote:

the data format requires tags like PASSED:: and FAILED:: to be on a
new line, but printf doesn't add a line break so it was causing the
FAILED:: tag to be placed in the middle of a line. So the fix is just to
add a \n before the actual tag. Its tested locally and ready to go out,
I'll deploy once peak traffic is over.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Codewars/codewars.com/issues/630#issuecomment-254226678,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AO-NGsSxdWUcalU6tp_a3qd4RZvYN1YKks5q04ijgaJpZM4KYCnx
.

--
Efim Bogdanovsky
GitHub: github.com/CptDemocracy
Facebook: fb.com/efimbogdanovsky
+38 063 818 09 86

Codewars/codewars-runner-cli@25e5609


how to remove quotation from input string ?

Hi.
How can I to remove quotation from input word of GoogleNews.get_news(word)?
or pass the word without of quotation ?
because when I search with and without quotation ; I got the different result.
In fact, I want the results without quotation because with quotes it gives much more accurate results;
And sometimes the results are an empty list.
While searching for the same word in Google without quotes; It returns me many results.
thankyou

What is your search input?


Documentation missing for new important iOS Info.plist keys to avoid app crash upon requesting permission

As of Xcode 8 and React Native 0.33 it is now necessary to add kit specific "permission" keys to your Xcode Info.plist file, in order to make requestPermission work. Otherwise your app crashes when requesting the specific permission. I discovered this after days of frustration.
Apple Developer Forum thread about the issue: https://forums.developer.apple.com/thread/48959
The solution is:
Open Xcode > Info.plist > Add a key (starting with "Privacy - ...") with your kit specific permission. The value for the key is optional.
Example:
If you need Contacts permission you have to add the key "Privacy - Contacts Usage Description".

It might be helpful to add to the documentation.

Thank you so much! That solved my problem!
Should definitely be added to the documentation!


add sni support for tls origination

Description
Adds a configurable SNI hostname on originated TLS connections.
Related Issues
#2043
Testing
We ran this in production for a few weeks, but with Ambassador 0.75. I ported it to the current master, but gave up on writing tests after spending an hour or two trying to get the test suite to work, even after feeding it a fresh, dedicated EKS cluster (most of the pods were failing because they couldn't execute entrypoint.sh.
Todos

[ ] Tests
[X] Documentation

@jwm is this needed because the upstream service is a server which does different things depending on the SNI?

@CamelCaseNotation yup, exactly.

Hey @jwm, this code looks sane -- my apologies for letting this linger, Edge Stack 1.0 has had us pretty backed up for awhile. Can you resolve the conflicts and let me sort out when we can get this in?
Thanks! 🙂


GWI tutorials for Production

Hi @jmmargo,
Could you please review and merge it to the production.

Please resolve the conflict as described.

Hi @jmmargo,
I already have an existing fork and when I sync, I can see that I have only one Conflicting file in the branch and we can remove this. We no longer use the following file in the prod. I'm wondering, how come it's still even appearing in the PR?
tutorials/cp-webanalytics-setup/cp-webanalytics-setup.md


Glob bug on genqlient.yaml operations

Describe the bug
When glob matching with the root directory, go generate ./... fails
output
$ go generate ./...
no queries found, looked in: **/*.graphql (configure this in genqlient.yaml)
exit status 1

To Reproduce
schema: ../../graphql/schema.graphql

operations:
  - './**/*.graphql'

generated: ./repo/pkg/generated.go

package: pkg

workaround (success)
schema: ../../graphql/schema.graphql

operations:
  - './repo/**/*.graphql'
  - './route/**/*.graphql'

generated: ./repo/pkg/generated.go

package: pkg

genqlient version
main branch

Ah, the problem is that Go's Glob doesn't support **.  I suppose we could switch to another library, or hack in support; it sounds like in your case a fixed depth (2) worked, but it's not an unreasonable desire to say "use all the GraphQL files in my repo".


Uninitialized constant FactoryBot::Decorator::NewConstructor::NoMethodError

Description
Hello,
our tests are failing with factory_bot v6.0.0
uninitialized constant FactoryBot::Decorator::NewConstructor::NoMethodError

We're using https://github.com/ErwinM/acts_as_tenant that can be a reason.
Revert of https://github.com/thoughtbot/factory_bot/commit/df5471078ce1fd45f094ad77c892ee9657d13c92 solves a problem, but seems like a hack
Reproduction Steps
Repo with test script https://github.com/artplan1/factory-bot-repro
Failing test https://github.com/artplan1/factory-bot-repro/runs/787838379?check_suite_focus=true
Expected behavior
NoMethodError to be defined
Actual behavior
NoMethodError is unitialized
System configuration
factory_bot version: 6.0.0
rails version:  <IP_ADDRESS>
ruby version: 2.6.5

Thanks for the issue, and for tracking down the commit that introduced it. Let's revert https://github.com/thoughtbot/factory_bot/commit/df5471078ce1fd45f094ad77c892ee9657d13c92. Ideally we would also get a test to cover this behavior so we don't accidentally change it again.
I don't fully understand how to write a test without acts_as_tenant, but for what it is worth we hit https://github.com/rails/rails/blob/master/activesupport/lib/active_support/dependencies.rb#L211-L214 along the way to this error.

Reverted in 4b06427

factory_bot 6.0.1 is out. Could you confirm that this release fixes the problem you were having?

yes, tests are green on 6.0.1.
Thank you for the quick fix


[TEST] Add test case for creating PVC in RKE2 cluster

What's the test to develop? Please describe
https://github.com/harvester/tests/issues/737
Prerequisite and dependency of test
Any prerequisite environment and pre-condition required for this test.
Provide test case dependency here if any.
Describe the items of the test development (DoD, definition of done) you'd like

Please use a task list for items on a separate line with a clickable checkbox https://docs.github.com/en/issues/tracking-your-work-with-issues/about-task-lists

[ ] Write the test skeleton
[ ] Implement the test of creating PVC in RKE2 cluster
[ ] Observe the test result on daily running test pipeline

Additional context
Add any other context or screenshots about the test request here.

@khushboo-rancher it looks the referenced issue #737 is targeting on different case?

Sorry, updated the referenced issue.


PowerToys Awake Translation issue (korean)

Microsoft PowerToys version
0.46.0
Utility with translation issue
PowerToys Awake
🌐 Language affected
Korean
❌ Actual phrase(s)
설정을 사용하지 않도록 설정할 때까지 PC를 절전모드로 유지
✔ Expected phrase(s)
설정이 비활성화될 때까지 PC의 절전 모드를 해제합니다.
ℹ Why is the current translation wrong
Current phrase means that keeps power saving mode indefinitely.
The meaning is the opposite.

Issue sent to Loc team: (MSFT internal) https://ceapex.visualstudio.com/CEINTL/_workitems/edit/496166

The internal status shows this was resolved in October.


Python module

You may not want this here, if so then feel free to put it somewhere else.

Amazing, thanks Roger!
I have created a new repo for it:
https://github.com/njh/binmark-python


Feature: Hand warmer mode

I remember seeing one back when I had an iPod touch. I imagine it just works the CPU very hard to achieve this. Can't be good for the CPU but could be useful. A warning about harming your phone would probably need including.

I explored this in #356 and didn't have luck - the phone doesn't really get hot enough / doesn't transfer heat well enough for this to be useful unfortunately


Regex not working on a client instrumentation Page name

Hello
Plugin bug on tracking title on certain page :

I don't know if this is this statement
or more complexe regex trouble but it raise on error like that :
Uncaught SyntaxError: missing ) after argument list
Page name pattern on \wp-content\plugins\application-insights\src\Client_Instrumentation.php
$patterns[1] = '/PAGE_NAME/';
if (is_home() == false)
{
$replacements[1] = get_the_title();
}
else
{
$replacements[1] = 'Home';
}

closed via #14. I'll release it on wordpress soon


[BUG]: Postgres.JS errors don't show app stack trace

What version of drizzle-orm are you using?
0.29.3
What version of drizzle-kit are you using?
0.20.13
Describe the Bug
I connect to my database with Postgres.js. When I execute a query through drizzle, and I hit an error in my database (such as a column not found, etc.), I expect a stack trace to let me know which line of my code caused the error. This is an error with drizzle's use of Postgres.js, since the error doesn't happen with node-postgres.
The stack trace that appears contains a stack trace of where the error hit inside the Postgres.js adapter, but it doesn't show where the error occurred in drizzle or in my code:
PostgresError: relation "assistants" does not exist
    at ErrorResponse (/Users/hansenq/Documents/CS/lightski/node_modules/postgres/cjs/src/connection.js:790:26)
    at handle (/Users/hansenq/Documents/CS/lightski/node_modules/postgres/cjs/src/connection.js:476:6)
    at Socket.data (/Users/hansenq/Documents/CS/lightski/node_modules/postgres/cjs/src/connection.js:315:9)
    at Socket.emit (node:events:515:28)
    at Socket.emit (node:domain:488:12)
    at addChunk (node:internal/streams/readable:545:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:495:3)
    at Socket.Readable.push (node:internal/streams/readable:375:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
  severity_local: 'ERROR',
  severity: 'ERROR',
  code: '42P01',
  position: '187',
  file: 'parse_relation.c',
  line: '1395',
  routine: 'parserOpenTable'
}

This makes it extremely difficult to debug where the error happened, since I have no idea where the error was hit.
Expected behavior
When I switch to node-postgres, I the error is what I expect: a stack trace for my app-level code:
error: relation "assistants" does not exist
    at /Users/hansenq/Documents/CS/lightski/node_modules/pg-pool/index.js:45:11
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /Users/hansenq/Documents/CS/lightski/node_modules/src/node-postgres/session.ts:64:19
    at async backfillEmbedsFromAssistants (/Users/hansenq/Documents/CS/lightski/packages/database/bin/data-migrations/2024-01-23-backfill-embeds-from-assistants.ts:7:22)
    at async main (/Users/hansenq/Documents/CS/lightski/packages/database/bin/data-migrations/2024-01-23-backfill-embeds-from-assistants.ts:33:3) {
  length: 110,
  severity: 'ERROR',
  code: '42P01',
  detail: undefined,
  hint: undefined,
  position: '187',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'parse_relation.c',
  line: '1395',
  routine: 'parserOpenTable'
}

Environment & setup
No response

Hi, @Hansenq. It appears that the issue you're encountering is related to the differences in how database drivers, specifically Postgres.js and node-postgres (pg), handle and report errors. Each driver has its own error handling mechanism that can affect the stack trace and the level of detail provided in error messages. So, this is not related to Drizzle ORM.

Ah, makes sense. Is there a way inside drizzle to intercept database adapter errors and print out/add more information?
Otherwise, this is pretty nasty error that makes it much more difficult to debug, and it might be good to recommend node-postgres over postgres.js for drizzle users in the documentation, just because of this error handling.

Yeah, we have a ticket for proper error handling and wrapping drivers errors with our own. You can track it here: https://github.com/drizzle-team/drizzle-orm/issues/376
I'll close this issue then. Thanks for your report!


WSL inherits Windows incompatible environment variables

Windows build number: Microsoft Windows [Version 10.0.15063]

What you're doing and what's happening:  was trying to compile OpenFOAM on WSL. first running source ..../bashrc

What's wrong: receiving the error:

bash: eval: line 38: syntax error near unexpected token `('

plus the whole list of Windows environment variables printed multiple times.

What should be happening instead:  This weird message should have been printed instead:

... incorrect platform, or not yet compiled?

Solution: WSL shouldn't inherit the Windows environment variables directly but parse them first. a grep/awk/sed command could be constructed to find all the incompatible terms, including spaces and parenthesis for example, and put quotation marks around them. I have explained a workaround here.

@benhillis I believe parentheses are. am I wrong?

The paren is immediately preceded by a space. Neither are illegal characters in a path. Can you paste the lines from the script or makefile where it's failing?

Here the link to the bashrc :
https://github.com/OpenFOAM/OpenFOAM-5.x/blob/master/etc/bashrc

to reproduce this error, download OpenFOAM source from here and follow the instructions here to compile.

The build fails on Real Linux too. Do an export PATH=$PATH:"foo bar/(baz)" before sourcing .../etc/bashrc and you'll get the same error. The problem isn't spaces, it's the parentheses. The bug is in one of the .../etc/config.sh/functions shell scripts but that's as far as I tracked it. Your options are (a) set your $PATH to something short and sweet before sourcing .../etc/bashrc or (b) find and fix the bug in the script.

@therealkenc I don't think so. The build is ok. This is just a false warning. I have built this today 3 times. 2 times on WSL and once on Ubuntu. What were your steps leading to a failed build?

The [emph mine] build is ok.

Right; I was sloppy with the word "build" there. The script (which is part of the "build" instructions) fails in the same way on Real Linux. If it is a soft fail so much the better.


⚠ BeyondHD has degraded performance

In e141166, BeyondHD ($BHD) experienced degraded performance:

HTTP code: 200
Response time: 1419 ms

Resolved: BeyondHD performance has improved in d083fc9 after 8 minutes.


Fix openscap substitution

Fix openscap image substitution in Makefile so that the correct image is used.
Previously, the substitution for openscap image is not working for make image-to-cluster, we were trying to find and replace quay.io/compliance-operator/openscap-ocp:1.3.6, but we have quay.io/compliance-operator/openscap-ocp:1.3.5 in all the deployment files.
The openscap version does not matter, because it is defined in images/openscap

Wow - nice find. I guess the RHEL 9 work is already finding bugs :)
I want to make sure I understand correctly. We're using latest because the version doesn't matter, correct?


mat-datepicker default date status is not conveyed contextually

Reproduction
Use StackBlitz to reproduce your issue: https://components-issue-gwv4xh.stackblitz.io
Steps to reproduce:

Need a screen reader like JAWS to reproduce with issue.
Initialize mat-datepicker without any date

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

Launch the datepicker in a browser with screen reader enabled.

Expected Behavior
A simple update to the markup by including selected status to assist the screen reader in providing context of the selected date to the user. This could be done by including the word "selected" in the aria-label for that specific table cell.
Actual Behavior
When the mat-datepicker used with out any date value, angular selects the date of that day to present it to the user. This can be seen visually. But not being announced with the screen reader, for instance the sighted user can see what date is selected but the user using the screen reader does not. This made 508 test to fail.
Environment

Angular: 7
CDK/Material: 7
Browser(s): IE, Chrome
Operating System: Windows

When no value is specified, focus will default to "today", but it is not selected. The visual indicator here does not represent selection; it's only a marker that that date is today. Selection is indicated by aria-selected on the cell.
The most I think we should do here is add an aria-describedby to that cell with the word "Today", but this would require an extra i18n message.
Can you confirm that your issue is only for selection state?

Yes, I can confirm that. Anything that helps screen reader to identify indication would be great.

If it's only for selection state, then it's currently working as intended (since that date is explicitly not selected).


test-infra: replacing cfn export with ssm parameters

Relates

#2004

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: dc28beb4d1ecb4db23b1393746d595c7518fa3aa
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 4cf363e7d1a319438063ed53d80771a91900664d
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: d35d052438db26009861bb5e9fd81c8c15a3e540
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 88c7fc871c8c9224fed0ed350eec833ca3108c9b
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 59fa14f25cfac204b83d9c9f99c0b24651b4181e
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: e6085e69bf461ba075be80cce50ceccf7e976ee1
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 36864fa1842dbcdf9c052ac0a8a0d20aaf8d3226
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: e1cc81fa7b6457afcf6a2612b390bba9d21df8cd
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 7fb59eb99011fe5856d390ddb550a599c1154256
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: d732b6c7480a8026bcd79cf31778b1b1eade7af0
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


feat: Add webpack cheatsheet

What does this PR do?

Add webpack cheatsheet

For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

closes #7964
Hi @davorpa & @eshellman ,
Kindly review it.

Kindly add a hacktoberfest-accepted label to my PRs so that it will get updated in my hacktoberfest profile

the repository has this tag, this pr will count you in the profile


fix(model): prevent _store from becoming a cyclic object value.

Type of PR:

[x] Bugfix
[ ] Feature
[ ] Refactor
[ ] Code style update
[ ] Build-related changes
[ ] Test
[ ] Documentation
[ ] Other, please describe:

Breaking changes:

[x] No
[ ] Yes

Details
This PR resolves #10 where a fortuitous side-effect is caused by model's exposing the _store property.

Ahh very good point. Thanks so much for the fix!


Sticks aren't spawning in world

Hopefully I'm not behind this time.  While rock spawns are plentiful, sticks do not appear to be spawning anywhere.  I've tried a standard world and a flat world.

Using default configs:
B:worldgen=true
I:worldgenStickAttemptsPerChunk=30

Sticks only spawn under trees

2 for 2 today.  :/  Sorry for the trouble.
I did check to see if any had spawned under trees, but I guess modded trees may not count.


BUG: when making proposal with same name, fails without proper error message

Clarification: the issue is when two completely identical proposals are made (not just name).
This is a super edge case, and it's not trivial to "check" for this. Would take a day or two to properly implement and test the check for an error message.
Prioritizing this low for now.

@tbwebb22 @christopherdancy gonna leave this one open for now? can you follow up on whether this still a concern?


Can you specify a component to handle render of a columns cells?

This is a great component.   What happens though if we need to make a column of buttons and those buttons need to be react components?  Maybe the items in the columns object should have a property called component.  If It's set to a React component, that component will be rendered inside the cells of that column and accept the data as a property?
Would you accept a pull request?  This is the way Facebook's fixed-data-table component works.

I ran into this issue too.  I tried to get around it, but ended up building my own grid. :) Try https://github.com/tannerlinsley/react-table.


Upgrade to Bootstrap and Material based styles

The next version of al-folio must have responsive styles based on Bootstrap 4 and Material Design.
Desired features:

[x] Full re-write of styles that makes the theme Boostrap-based and responsive.
[x] More flexible choice of layouts using _config.py (e.g., fixed/sticky header and footer).
[x] Responsive projects page (see demo here).
[x] Fix problems with style bugs on the publications page.

Note: A preview version is already available in the dev branch.

The demo webpage is now running on al-folio v0.3. The dev branch will be merged into master after a minor style clean-up (sometime during the summer).


Refactor tps to cpm

Please answer these questions before submitting pull request

Why submit this pull request?

[x] Bug fix

[ ] New feature provided

[ ] Improve performance

Related issues

Bug fix

Bug description.

In low or medium load systems, tps is often displayed as 0. This makes the user feel confused and think that the system does not have any load

How to fix?

Change the unit of Thoughput from tps/cps to cpm(calls per minute).

getGCTrend query method
INPUT
{
  getGCTrend(serverId: 2, duration: {start: "2017-06-01 1002", end: "2017-06-01 1005", step: MINUTE}) {
    youngGCCount, oldGCount, youngGCTime, oldGCTime
  }
}

OUTPUT
{
  "data": {
    "getGCTrend": {
      "youngGCCount": [
        2,
        2,
        2,
        2
      ],
      "oldGCount": [
        4,
        4,
        4,
        4
      ],
      "youngGCTime": [
        1000,
        1000,
        1000,
        1000
      ],
      "oldGCTime": [
        49,
        49,
        49,
        49
      ]
    }
  }
}


JSDoc and type for parent property

Please do not update the README or Change Log, we will do this when we merge your PR.
This PR

Updates JSDoc
Updates type
Fixes a bug

Describe the changes below:
I was using typescript and I found a mismatching property with JSDoc and typescript.

Here is the screenshot with JSDoc and an error from typescript.
I added null to type for typescript and also for JSDoc.
Thank you!

Thanks for the PR - could you please remove the types def from it, we only need the JSDoc change itself.

👍


CFY-2032 Add sqlite implementation

I have to insist that we need some unit tests for this...its not trivial code and can actually be very easily tested

You mean writing unittests in this branch? We were thinking about doing it after Thursdays demo but I can add them tomorrow.

we usually don't merge code that is not unittested to master. i don't mind if you do it next week...

OK should be ready today evening.


[WIP] Fix syntax error when rendering topbar for source page

I hate tera.
Fixes https://github.com/rust-lang/docs.rs/issues/1415.
r? @syphar

We should be able to produce a test for this, right?

Sure, done. I also fixed this to use if krate is undefined properly, which should have fixed the test failures.

test and fix look good


ModelBinder for WebAPI

Would it be possible to have a ModelBinder for ApiController?

I don't have the time to work on this unfortunately, but what would be great would be if someone could implement this by:

Changing the current  Mvc based modelbinder to work off a Json.NET JObject instead of IValueBInder
Moving the Json.NET binding logic into the core library
Creating a WebApi binder

+1


[ISSUE #2686] ConsulSyncDataServiceTest.testWatch AssertionError: expected:<1> but was:<0>

// Describe your PR here; eg. Fixes #issueNo
Fixes #2686
fixed bug and remove reflection code.

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

pls resolve confilcts


Add option for image_picker to force user to take squared photos.

(Feature request). Using the image_picker plugin, it would be great if the user can be forced to take a square photo. Ideally this would be passed as an optional parameter to the pickImage method.
Future<File> pickImage ({
@required ImageSource source,
double maxWidth,
double maxHeight,
ImageAspect aspect
})

enum ImageAspect {
  normal,
  square
}

Based on this StackOverflow post, a solution (for iOS, at least) might involve using an overlay to make the camera preview show a square, then cropping the actual image taken so that it matches what the preview showed.

@dmjones Different app might want different overlay to match their UX. I am not sure how we can handle this in a single plugin. Any suggestion is welcomed!

@dmjones You can also achieve this by using the camera plugin and create your custom UI for it. Let me know if this would help, if so I will close this issue.

@cyanglaz I think you can close this.
He answered his own question on StackOverflow

@Gujie-Novade Thank you for letting me know. @dmjones I am glad that you found a solution using the camera plugin! I will close the issue now. If you have more related issues, please feel free to open another issue with details.


JS Error and Vector Tiles  empty

What do you call "empty tiles"? The is a link with js error?

Yes that's it, the link

JS error fixed.
But still not understood what do you call empty tiles.


Simplify supporting LIMIT in JDBC connectors

Combines isLimitGuaranteed and applyLimit into single extension
point.

Updated. cc @electrum

Will support applySort the future?

@prunu not on my roadmap. Please ask on #general on Slack (https://prestosql.io/community.html)


Build scripts should have the project name in the project generated by the init plugin

We decided not to implement this now.


Latency numbers should be in frames

We need to have a tight control over the latency numbers to trigger fast paths and such.

Looks good. It might be a good idea to add a new cubeb method that converts frames<-->ms and the other way around.


Can i use the model to change the pose(yaw pitch roll) of the face?

did you solved the issue

did you solved the issue

no


why use List? icons, how can i use png image?

Next release will have this option to use any kind of image. Thanks for your concern.

Looking forward to your update


sst-env: robust way to detect sst start is running

Currently if sst start and sst-env are kicked off simultaneously, sst-env sees the .build/static-site-environment-output-values.json file from the previous deployment. We need a more robust way to detect sst start is running.

Requests

MageD https://discordapp.com/channels/983865673656705025/1018899426493857862/1019630050242474054

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


Alert Dialog Dismisses Itself!

import flet as ft

def main(page:ft.Page):
    page.dialog = ft.AlertDialog(
        title=ft.Text("Hello World"),
        open=True,
        on_dismiss= lambda e: print("f"),
        modal=False
    )

    page.add(
        ft.Text("Hello World")
    )

ft.app(target=main)

This is the code I tried to Run and It Dismisses Itself after running the code and prints f. Help Anyway to solve this without a button or something

Working code:
import time

import flet as ft

def main(page: ft.Page):
    page.add(ft.Text("Hello World"))
    time.sleep(0.1)
    page.show_dialog(
        ft.AlertDialog(
            title=ft.Text("Hello World"),
            open=True,
            on_dismiss=lambda e: print("f"),
            modal=False,
        )
    )

ft.app(target=main)


fixing Hub details and adding effective date

Thanks for this operator!  As I get more info from the Hub team, I'll pass it along to help out.

Can you explain the layer based rate-limiting?

Only the manifest is tracked, not layer tarballs. See https://docs.docker.com/docker-hub/download-rate-limit/, which was updated last night. I think blog/faq is also coming next week.


Bump ginkgolinter to v0.13.0

What this PR does / why we need it:
#10120 had asked for a linter to be introduced to avoid focus containers from being committed or merged into the project. Such a check was added into ginkgolinter in version v0.13.0 however leaving it enabled within our nogo config would result in developers being unable to use the focus containers when testing functional tests locally or in CI.
As a result this PR first bumps ginkgolinter to v0.13.0 and then disables the focus container check.
https://github.com/kubevirt/kubevirt/pull/10002 is seeking to introduce a pre-commit config using ginkgolinter that would however be capable of using this check and could be easily overridden in cases where a dev wanted to push a commit to CI for testing.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

A few comments on the PR description:

... being unable to use the focus containers when testing functional tests locally or in CI.

I think we should not allow focused containers in CI. Also, running unit tests using go test does not use nogo, and so it is still possible even if the new rule will be enabled.
What I'm not sure about, is if the scenario of running tests with bazel (and so with nogo) is an actual thing, when the developer want to focus in a specific test(s) (and so they will use focused containers).
If we can assume that this is not a real use case, I think we should consider to enable the new linter rule.
@iholder101, @enp0s3 - WDYT? please also cc anyone who can answer these questions.

A few comments on the PR description:

... being unable to use the focus containers when testing functional tests locally or in CI.

I think we should not allow focused containers in CI. Also, running unit tests using go test does not use nogo, and so it is still possible even if the new rule will be enabled.

I disagree, I think it's entirely valid for a dev working on a draft (or not) PR to use focused containers to validate a specific functional test on a specific test lane that might provide an environment they don't have access to locally.

What I'm not sure about, is if the scenario of running tests with bazel (and so with nogo) is an actual thing, when the developer want to focus in a specific test(s) (and so they will use focused containers).

It's used during our functional test runs, left enabled the following workflow is no longer possible locally or in CI:
$ git reset --hard HEAD~1
$ git diff
# git diff
diff --git a/tests/instancetype_test.go b/tests/instancetype_test.go
index 4140f9e61..f340cff84 100644
--- a/tests/instancetype_test.go
+++ b/tests/instancetype_test.go
@@ -41,7 +41,7 @@ import (
        "kubevirt.io/kubevirt/tests/util"
 )

-var _ = Describe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-compute] Instancetype and Preferences", decorators.SigCompute, func() {
+var _ = FDescribe("[crit:medium][vendor:cnv-qe@redhat.com][level:component][sig-compute] Instancetype and Preferences", decorators.SigCompute, func() {

        var (
                virtClient kubecli.KubevirtClient
$ make functest
hack/dockerized "hack/bazel-fmt.sh && hack/bazel-build-functests.sh"
go version go1.19.9 linux/amd64

go version go1.19.9 linux/amd64
Sandbox is up to date
INFO: Analyzed target //vendor/mvdan.cc/sh/v3/cmd/shfmt:shfmt (6 packages loaded, 33 targets configured).
INFO: Found 1 target...
Target //vendor/mvdan.cc/sh/v3/cmd/shfmt:shfmt up-to-date:
  bazel-bin/vendor/mvdan.cc/sh/v3/cmd/shfmt/shfmt_/shfmt
INFO: Elapsed time: 0.865s, Critical Path: 0.75s
INFO: 12 processes: 1 internal, 11 processwrapper-sandbox.
INFO: Build completed successfully, 12 total actions
INFO: Build completed successfully, 12 total actions
INFO: Analyzed target //:gazelle (0 packages loaded, 438 targets configured).
INFO: Found 1 target...
Target //:gazelle up-to-date:
  bazel-bin/gazelle-runner.bash
  bazel-bin/gazelle
INFO: Elapsed time: 0.192s, Critical Path: 0.03s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
INFO: Analyzed target //:goimports (0 packages loaded, 44 targets configured).
INFO: Found 1 target...
Target //:goimports up-to-date:
  bazel-bin/goimports.bash
INFO: Elapsed time: 0.192s, Critical Path: 0.03s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
INFO: Analyzed target //:buildifier (0 packages loaded, 291 targets configured).
INFO: Found 1 target...
Target //:buildifier up-to-date:
  bazel-bin/buildifier.bash
INFO: Elapsed time: 0.166s, Critical Path: 0.03s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
Sandbox is up to date
DEBUG: /root/.cache/bazel/_bazel_root/6f347497f91c9a385dcd9294645b76e0/external/bazel_gazelle/internal/go_repository.bzl:209:18: org_golang_x_net: gazelle: finding module path for import golang.org/x/sys/windows: finding module path for import golang.org/x/sys/windows: package golang.org/x/sys/windows: build constraints exclude all Go files in<EMAIL_ADDRESS>gazelle: finding module path for import golang.org/x/sys/windows: finding module path for import golang.org/x/sys/windows: package golang.org/x/sys/windows: build constraints exclude all Go files in<EMAIL_ADDRESS>gazelle: finding module path for import golang.org/x/sys/windows: finding module path for import golang.org/x/sys/windows: package golang.org/x/sys/windows: build constraints exclude all Go files in<EMAIL_ADDRESS>INFO: Analyzed 7 targets (0 packages loaded, 4026 targets configured).
INFO: Found 7 targets...
ERROR: /root/go/src/kubevirt.io/kubevirt/tests/BUILD.bazel:107:8: GoCompilePkg tests/go_default_test_test.external.a failed: (Exit 1): builder failed: error executing command bazel-out/k8-opt-exec-2B5CBBC6/bin/external/go_sdk/builder compilepkg -sdk external/go_sdk -installsuffix linux_amd64 -tags selinux,selinux -src tests/io_utils.go -src tests/job.go -src ... (remaining 419 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
compilepkg: nogo: errors found by nogo during build-time code analysis:
tests/instancetype_test.go:44:9: ginkgo-linter: Focus container found. This is used only for local debug and should not be part of the actual source code, consider to replace with "Describe" (ginkgolinter)
INFO: Elapsed time: 26.317s, Critical Path: 23.18s
INFO: 1140 processes: 2 internal, 1138 processwrapper-sandbox.
FAILED: Build did NOT complete successfully
make: *** [Makefile:19: bazel-build-functests] Error 1

The issue in func test is much easier to solve, using ginkgo command line flags.

The issue in func test is much easier to solve, using ginkgo command line flags.

I'm not sure how ginkgo flags will help when we can't even build the functional tests?
The // ginkgo-linter:ignore-focus-container-warning comment will workaround this but it's pretty awkward.

developers being unable to use the focus containers when testing functional tests locally or in CI.

@lyarwood , this is surely valid for running tests locally, but I somehow remember that focus tests are ignored on CI.

The // ginkgo-linter:ignore-focus-container-warning comment will workaround this but it's pretty awkward.

I agree, commenting exceptions in-code is bad.

https://github.com/kubevirt/kubevirt/pull/10002 is seeking to introduce a pre-commit config using ginkgolinter that would however be capable of using this check and could be easily overridden in cases where a dev wanted to push a commit to CI for testing.
Right, this is a good use-case in favor of the separate make target.
Hope you'll manage to convince a maintainer to take it in.

@iholder101 Or WDYT about introducing a new target for CI (e.g. make functest-ci or make functest-strict or make functest-no-focus) while keeping the current behavior on the existing make functest?

@iholder101 @0xFelix what about https://github.com/kubevirt/kubevirt/pull/10136/commits/b3edf0098fb9982a8d72c6d75a9d6529f8aaecf1 that now removes the flag when running in CI. This should allow devs to use their normal workflows locally and cause CI to fail during the build if the focus containers are still present when a change is pushed?

I like it, that's even better.
/lgtm

Hi,
I think the following may work (need to test if first):

Create additional nogo config file called nogo_config_ci.json, in that file enable the foucs linter.
in the root project BUILD.bazel define the following:

config_setting(
  name = "ci_env",
  values = {"execution_env": "ci"},
)
...
...
nogo(
    name = "nogo_vet",
    config = select({
      ":ci_env":  "nogo_config_ci.json",
      "//conditions:default": "nogo_config.json",
 })
...
...
)

Inject the configured flag --execution_env=ci into the ci.bazelrc file, which is being imported
only when in CI.

@lyarwood @0xFelix @EdDev If what I've mentioned will work, we can create a separate lane that will use ginkgo linter to catch focused tests.

@lyarwood @0xFelix @EdDev If what I've mentioned will work, we can create a separate lane that will use ginkgo linter to catch focused tests.

IMO it is an overkill. I think https://github.com/kubevirt/kubevirt/pull/10002 is enough and it has a job already which can catch it.
To me, all the other options that I see, including the one with BAZEL config you suggested, is a redundant complexity.
I guess it is better than the patching option of the config, as presented in t his PR now.
I would not recommend to create a job just to check this, it should be part of a generic linter one.
It just does not scale well, so I would try to find an existing job that this can fit under first.

New lane for ginkgolinter may be overkill. But what about a new lane for golangci-lint, when ginkgolinter is enabled?

@lyarwood @0xFelix @EdDev If what I've mentioned will work, we can create a separate lane that will use ginkgo linter to catch focused tests.

IMO it is an overkill. I think #10002 is enough and it has a job already which can catch it. To me, all the other options that I see, including the one with BAZEL config you suggested, is a redundant complexity. I guess it is better than the patching option of the config, as presented in t his PR now.
I would not recommend to create a job just to check this, it should be part of a generic linter one. It just does not scale well, so I would try to find an existing job that this can fit under first.

@EdDev Which job?

@lyarwood @0xFelix @EdDev If what I've mentioned will work, we can create a separate lane that will use ginkgo linter to catch focused tests.

IMO it is an overkill. I think #10002 is enough and it has a job already which can catch it. To me, all the other options that I see, including the one with BAZEL config you suggested, is a redundant complexity. I guess it is better than the patching option of the config, as presented in t his PR now.
I would not recommend to create a job just to check this, it should be part of a generic linter one. It just does not scale well, so I would try to find an existing job that this can fit under first.

@EdDev I see. I also think #10002 its a good solution but currently not all the test code is being covered in make lint

New lane for ginkgolinter may be overkill. But what about a new lane for golangci-lint, when ginkgolinter is enabled?

golangci-lint has a job already, but there are two points to resolve there:

Make it "required".
Run golangci-lint a second time only for this ginkgo linter for all the project source file (just change it in the Makefile target).

I think these are resolvable.

Run golangci-lint a second time only for this ginkgo linter for all the project source file (just change it in the Makefile target).

Why second time? Just enable ginkgolinter in .golangci.yml

Run golangci-lint a second time only for this ginkgo linter for all the project source file (just change it in the Makefile target).

Why second time? Just enable ginkgolinter in .golangci.yml

Because only a few folders are covered currently.
If we want to run the linter for all sources with ginkgolinter enabled, we need to run in again.

/hold
After a quick discussion this morning the following path forward has been agreed:

@nunnatsa will switch the behaviour of the  suppress-focus-container within ginkgolinter to opt-in once @EdDev has raised an issue
@lyarwood will reach out to CI folks about bazel caching invalidation when updating the nogo config
@lyarwood will continue to push https://github.com/kubevirt/kubevirt/pull/10002 forward, introducing a second run of golangci-linter running only ginkgolinter against everything (as already validated previously by nogo) before adding an optional pre-commit config

@nunnatsa will switch the behaviour of the  suppress-focus-container within ginkgolinter to opt-in once @EdDev

ginkgolinter v0.13.3 is out
The focused container rule is now disabled by default.
Use the --forbid-focus-container=true flag to enable it.

/test pull-kubevirt-e2e-k8s-1.27-sig-compute

/hold cancel
@EdDev @nunnatsa @iholder101 @enp0s3 - I spoke to @brianmcarey about this and we think that aside from the first build and invalidation subsequent builds should use the cache as normal with this change in place. Moving this back to ready to review as a result.

@lyarwood So, to summarize this PR:

Locally, developers would be able to run make functest with F prefix to focus on specific tests
On CI, the build would fail if F prefix is found.

It this correct?

@lyarwood So, to summarize this PR:

Locally, developers would be able to run make functest with F prefix to focus on specific tests
On CI, the build would fail if F prefix is found.

It this correct?

Yes correct, I'd also note that in CI the F prefix does nothing anyway thus we are safe to block its use.

@lyarwood So, to summarize this PR:

Locally, developers would be able to run make functest with F prefix to focus on specific tests
On CI, the build would fail if F prefix is found.

It this correct?

Yes correct, I'd also note that in CI the F prefix does nothing anyway thus we are safe to block its use.

Yup, agreed.
Great work @lyarwood and everyone else involved!
/approve

@lyarwood would you add https://github.com/kubevirt/kubevirt/issues/10120 under Fixes # in the PR description to link this PR as a fix for the issue? Thanks!

Yes correct, I'd also note that in CI the F prefix does nothing anyway thus we are safe to block its use.

This is right but not accurate. This change will prevent leaking of focused containers into upstream, that will misguide other developer locally. The fact that this focused containers are still working at upstream just make it harder to find these leaks. This is why this chage is important.

/hold cancel
@EdDev @nunnatsa @iholder101 @enp0s3 - I spoke to @brianmcarey about this and we think that aside from the first build and invalidation subsequent builds should use the cache as normal with this change in place. Moving this back to ready to review as a result.

@brianmcarey , has this been confirmed in practice or is it just in theory?
I guess that now that is got merged, it should be easier to check.


task list

[x] Additional markup is supported, including @mentions, #references, links, emphasis, and HTML tags.
[x] List syntax is required.

You can nest lists below, too!

[x] This item is completed.
[x] This item is not complete.

[x] Additional markup is supported, including @mentions, #references, links, emphasis, and HTML tags.
[x] List syntax is required.

You can nest lists below, too!

[x] This item is completed.
[ ] This item is not complete.


about sync + send

"When I used the send_smart_transaction method, I found that the parameter trait Signer does not implement Sync + Send, so it cannot be used in asynchronous tasks. To avoid this issue, would it be possible to pass in a parameter that allows the construction of a Keypair so that the Keypair can be constructed internally within the method to avoid this problem?"

gm @w6g2000! I apologize for taking a minute to get around to this issue, but would #64 resolve this issue?


Use pipeline-service components from pipeline-service repo

/retest

/retest

/retest

/retest

/retest

/retest
@Michkov I'd argue that if e2e tests are not stable within the next day (or at least have flaky tests disabled), we bite the bullet and merge this. We have no customers and this is holding back major updates to Tekton Results and other pipeline components.

/lgtm

/test appstudio-e2e-tests

/test appstudio-e2e-tests

/lgtm

/test tide

@Mo3m3n Looks like it needs another rebase before it can move forward.

/retest

@Mo3m3n two real signals in the last run:

Chains is not creating the signature and attestation for the test pipelinerun
Another canary pipelinerun (from GitHub webhook) does not complete.

@adambkaplan
This PR https://github.com/redhat-appstudio/infra-deployments/pull/1201 should fix tekton-chains


Add StyleBuilder.borderColor and borderStyle functions

There are StyleBuilder extension functions for border-width and border-radius CSS properties, but corresponding functions for border-color and border-style are missing.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


ix: remove force

I don't see a good reason on why one would want to rebuld via --force ignoring all caches.
In bigger foundry projects this can take a decent amount of time.
Therefore I'm removing the "force" - if you have strong feelings about keeping it i guess it could be an option to enable/disable via cli flag.

Unfornately if you don't use --force and there is no changes, forge will not generate the build-info artifacts.
$ forge build --build-info
[⠔] Compiling...
No files changed, compilation skipped
Compilation successful

[catapulta-verify] Exiting main handler, error:
ENOENT: No such file or directory
   path: "out/build-info"
 syscall: "open"
   errno: -2

i could add an "skip --force" param, but must only be used if you already did --build-info --force before, to prevent multiple forced builds

I think it would be better to do it conditionally if the required files don't yet exist.

i will implement your idea to detect if build-info exists to skip the --force build in consequent verifications

Seems like the original issue holding this back was resolved in https://github.com/foundry-rs/foundry/pull/7347


[WIP] Add support for static linking

Hi, thanks for your contribution! Can you make the tests pass, and give me a short tl;dr of what you did?

Hi, thanks for your contribution! Can you make the tests pass, and give me a short tl;dr of what you did?

I've just updated the description with the tl;dr of what it is, and I'll be adding some comments to specific items on why they're there as some of them are non-obvious. On the tests passing:

Ubuntu: now working with the bionic update, as the xenial version of unixodbc didn't properly support static linking.
OS X: currently blocked on an upstream issue in Homebrew that I'm working on getting fixed.
Windows: I think the problem is that the path to the library is wrong, but I need to boot back up my test Windows system and see if I can have another shot at that. The Appveyor information on what's installed where is a little sparse, and so I'm having to attempt to reconstruct bits of it, add a path and see if it suceeds...


Box::leak is private

Are there any reasons to make Box::leak private?

Yes, the reason is oversight :)

Fixed in f937b9650e10137f782698bd4eb4f8b36f1817a7


⚠ Bofrost.de has degraded performance

In 0d34092, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 804 ms

Resolved: Bofrost.de performance has improved in 8f1744f after 6 minutes.


Run tasks incrementally after a controlled failure

Currently when a task fails, during the next build it is not allowed to run incrementally. (We report a "change" in its successfulness as the cause for the full rebuild.) This is to avoid jumbled out outputs created due to some unexpected error), but in certain circumstances can cause redundant work to happen.
Example: the developer makes a change, and it gets compiled incrementally, but the compiler detects a simple syntax error, and fails the build. Reading the output the developer fixes the problem, but instead of a quick recompilation of the single changed class, they are punished with a full rebuild.
There are two parts to the problem:

There is a difference between a catastrophic failure (i.e. when the outputs are left in an unknown state, because of some unexpected problem) and a controlled failure (where the outputs created are well understood, and we can continue incrementally the next time). Gradle does not currently allow tasks to distinguish between the two kinds of failures. This can be implemented by treating a special exception (e.g. ControlledFailureException) differently to other errors thrown by the task.

Incremental tasks like JavaCompile should be able to produce controlled failures by recording their state in a form that allows them to continue later. This might be something each task needs to do on its own, or we might be able to provide some utilities to make it simpler for certain use cases (e.g. when there is a 1-to-1 association between input and output files).

Also, if we do this, it might make sense to store controlled failures in the build cache, too.

cc: @gradle/execution

I would happy to see this issue to be resolved!
I think the importance of this issue is underestimated even for Java (yes, javac is quite fast, but errors are common part of edit-test dev cycle and even seconds can add up fast), but for Kotlin having a rebuild after an error was so painful, that we had to implement a workaround by reading output to RAM and restoring it on error. The workaround comes with some non-negligeble cost, but it is much better, than having a full rebuild of a module + (due to implementation of Kotlin IC) a rebuild of all downstream Kotlin tasks.
We have an optimization for the workaround in the works, which for the Kotlin project reduces the cost from 10-20 seconds in some benchmarks to a few seconds. If we could report a controlled failure instead, and drop the workaround completely, we could shave off these few seconds as well (which can be a lot for small incremental builds).

As for the problems described in the issue:

A special exception would be OK for us.
Kotlin IC does not require substantial (or probably any) changes, because it is designed to be able to work after a compile error (and it works great without any workarounds with Intellij internal build tool).

This might be a dupe for https://github.com/gradle/gradle/issues/13601#issuecomment-794625449
But this is critical issue for us to onboard gradle.

Assumption that developers never write bad/broke code and never break anything is 100% incorrect
Practice shows that 99% of refactoring are still manual and are driven via compile failures
Compilation time for real world projects in big enterprise companies can be huge!
I saw hundreds of monolith projects where compilation time is 30 minutes and more
My current project compile time is about 10 minutes
The only way to be effective is to use incremental compilation.

IntelliJ Idea incremental compiler is mostly instant in all such cases and it does not fall back to full rebuild if error was introduced on prev build.
I will highly appreciate if this issue can be prioritized! Thanks!

I'm probably going to look into this after https://github.com/gradle/gradle/pull/16536

Just discussed this with @wolfs and we came to a pretty simple solution that I'll put up here for discussion:
When running an incremental task that has previously failed, we'd restore the cached outputs from the last successful build and then compute the input changes against the inputs of the last successful build. That way we make it look like the failure never happened. This would be completely transparent and would require no new build or API. The only requirement would be activating the local build cache.

Just discussed this with @wolfs and we came to a pretty simple solution that I'll put up here for discussion:
When running an incremental task that has previously failed, we'd restore the cached outputs from the last successful build and then compute the input changes against the inputs of the last successful build. That way we make it look like the failure never happened. This would be completely transparent and would require no new build or API. The only requirement would be activating the local build cache.

Sounds really promising! Thank you guys!

Hi Guys, is this going to be fixed? this is really hitting us with build not being incremental.

I'm on this right now.

@lptr asked me to summarize the current state and the options I considered before deciding on the approach in #17203, so here goes:
Right now, incremental tasks are only incremental when the previous execution was either successful (the obvious case) or if it failed, but the failure did not change any of the outputs. In the latter case, Gradle just pretends that the failure never happened. This works for incremental tasks that do all their validation before deleting anything. Unfortunately, this does not cover most compiler tasks. These delete their output files up-front and then call the compiler. So when the compiler fails on a validation issue, the task fails and the outputs have changed. As a result, the next build will be a full recompile, because Gradle can't tell whether it is safe to rerun incrementally.
The original proposal in this issue was to have a marker exception or similar API that allows tasks to signal to Gradle that the changed outputs are "okay to use on another incremental build". The main benefit of this approach is that it would add almost no runtime overhead and thus make failures just as fast as successes. However, I don't believe we should go this way, as it has several problems:

Plugin authors need to adopt this new API. Adopting new Gradle APIs often takes months or years until all important plugins are on board.
Plugin authors are humans and thus will make mistakes, meaning they will likely mark unrecoverable failures as recoverable, resulting in wrong results. Or they might be too conservative and mark too many things as "unrecoverable" to be on the safe side, negating any performance benefit
It would be particularly challenging when multiple failures happen in a row. E.g. the user deletes A.java, the task removes A.class but then fails. Then the user reverts A.java, but instead makes a breaking change to B.java. The build fails again without re-creating A.class. What should be the InputChanges on the next invocation? A.java is unchanged compared to the previous build and also compared to the last successful build. But its class file is missing. We'd either need to provide some kind of OutputChanges API or take the whole history of execution into account instead of just looking at the last one like we do now. Both would result in more complexity and would make the system harder to grasp for plugin authors.
It is yet another concept that people need to understand in order to write a good Gradle tasks. I'd argue there are already too many of those.

Instead, I'm proposing to do the following: If an incremental task has previously failed and changed the outputs, we restore the outputs of the last successful build from the build cache. We then give the task all the input changes since that last successful build. As far as the task is concerned, it will look like the failure never happened. If the outputs haven't changed, we do not load them from the cache, as everything is already there. Same goes when there are any reasons that prevent incrementality. In those cases, the outputs will be fully recreated anyway, so no point in loading from the cache. This approach has several benefits:

It will work transparently for all existing incremental tasks. Users will get an immediate benefit when upgrading Gradle
No new API and thus no mental overhead for plugin authors
Not involving the plugin authors means we avoid a whole class of potential errors
API changes usually require a lot of discussion and thus delay delivery of a feature. Not needing an API change means we can deliver this faster.
If we later determine that the cache load is still not fast enough for some uses cases, we can always add the "controlled failure" feature on top of this work. I.e. some tasks could use a marker exception and all others would fall back to the cache load behavior instead. I don't think this will be necessary. Loading from the cache is a fast operation and is constantly being optimized  by the Gradle team. I just wanted to point out that the two approaches are not at odds and that the one I'm proposing is the lower hanging fruit.

@lptr @wolfs please let me know whether you agree that this is the way to go. Have a look at #17203 for a rough idea how this can be implemented. If you agree, I will polish that PR up and add the necessary test coverage before asking for a full review.

Thanks @oehme for writing this up. I agree that the simplicity of your proposal towards end users and plugin authors has benefits. However, in return for that simplicity it adds complexity on the execution process and the storage of execution state. I'd like to think through if this is a good trade-off or not before committing to making the changes you propose. I hope to find the time for that soon.

However, in return for that simplicity it adds complexity on the execution process and the storage of execution state.

The other proposal (custom exception) would add more complexity (see point 3. in the disadvantages list).

@lptr did you have some time to think about this?

Sorry, no. There are many competing priorities now and I am not sure we'll get to this in the foreseeable future.

Let ma add a bit more context here. We value the work done by contributors highly, and appreciate the features we gain this way, like your improvements around incremental compilation that we've integrated recently. These external contributions have been dominating our workload recently, and we now need to focus on some fundamental infrastructural work before we can get back to them. The plan is to get the integration of external contributions into a more structured form later on, allocating time regularly to attend to them without them monopolizing our attention. Let's revisit this in September, hopefully then we'll be in a better position about this.

Okay, thanks for letting me know!

We had a good chat about this with @asodja just now that triggered some thoughts on this.
As @oehme points out, the current system of allowing incremental execution after a failure as long as outputs are unchanged works for simpler tasks, but it doesn't work for some compile tasks. Most specifically it affects our incremental compiler implementation in JavaCompile. It's also worth noting that KotlinCompile does not suffer from this issue, because the implementation of the task restores the original state should a failure happen. What would it take to implement a similar approach for Java, and can this scale to similar tasks?
IIUC, what currently happens in JavaCompile is that we delete any .class files we expect would be deleted or modified given the incoming changes before we invoke javac with the unchanged .class files on the classpath. If compilation fails, we are left with missing .class files.
However, this doesn't have to be the case. Instead of removing the .class files expected to be removed or replaced, we could move them to a temporary location. Likewise, we could generate new .class files in another temporary location. Depending on whether or not the compilation is successful, we could move the new or the old files back into the output directory.
The overhead of doing this would be negligible for the successful case, and the benefits for the failed compilation case would be significant. We could do the same for our (still) experimental incremental GroovyCompile task, too.
To take a step back, what we are doing here is making the incremental tasks transactional. This is an important realization I think.
I'm not sure how many other tasks are there out there that could benefit from a similar treatment, but we could popularize the concept. We could also offer a feature to task implementations to regenerate a subset of the outputs transactionally to make it easier to write such tasks. We could also help plugin authors verify if their tasks are indeed transactional.
(We could even re-run non-incremental tasks transactionally, moving all their outputs to a temporary location, and moving the original outputs back after a failure. So if you make a mistake, then revert it, your next build could be up-to-date. Though this use case is probably already covered sufficiently by the local cache.)
This solution adds no significant overhead for the happy-day case, and requires no change to how tasks are executed (like the introduction of a special exception).

We could take this further, and instead of injecting InputChanges, we could require that incremental tasks tell us which output files they are about to modify or remove, and we could do the transactional thing automatically for them. They would be given a location to generate new content to that would be moved back to the original output without the task having to do anything.
The same could work for incremental artifact transforms, too.

An update: there is no near future plan (in 2022) to provide a general purpose API to run tasks incrementally after a failure. However, we will implement an incremental compilation after a failure for Java and Groovy (FYI Kotlin already supports that). It is planned for the Gradle 7.6, and if you are interested you can follow the PR https://github.com/gradle/gradle/pull/20950.
If there will be any demand for a general purpose API we might implement it, but right now it seems that there is just a demand to implement incremental compilation after a failure.

@asodja wrote:

If there will be any demand for a general purpose API we might implement it, but right now it seems that there is just a demand to implement incremental compilation after a failure.

For what it's worth, I would want a general-purpose API. I have use cases involving custom (not compilation) tasks that operate on many input files. If some input file fails, it would be beneficial to avoid redoing work for other inputs that already succeeded.


feat: Update README.md

Pull Request Details
Description
updated readme.md
[Provide a brief overview of the changes introduced by this pull request.]
Fixes
fixes #941
[Cite any related issues or bugs that this PR addresses, e.g., "Fixes #issueNumber"]
Type of PR

[X] Bug fix
[X] Feature enhancement
[X] Documentation update

Summary
Added some sections and fix allignment , added animated emojis , snapshot of project
Checklist

[X] I have read and followed the Pull Requests and Issues guidelines.
[X] The code has been properly linted and formatted using npm run lint:fix and npm run format:fix.
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers, snapshots, and videos after making the changes.
[X] I have not borrowed code without disclosing it, if applicable.
[X] This pull request is not a Work In Progress (WIP), and only completed and tested changes are included.
[X] I have tested these changes locally.
[X] My code follows the project's style guidelines.
[X] I have updated the documentation accordingly.
[X] This PR has a corresponding issue in the issue tracker.

Summary by CodeRabbit

Documentation

Updated README with branding images and logos.
Added horizontal rules for improved visual separation.
Minor formatting enhancements to maintain focus on introducing Digitomize, its features, and providing information on contributing and licensing.

@pranshugupta54 have a look on this pr .

Tooo many , it looks kinda bad - bcuz most of our paragraphs are only 2-4 lines

Tooo many <hr>, it looks kinda bad - bcuz most of our paragraphs are only 2-4 lines

Okk removing

@pranshugupta54 have a look now .

🚀 Congratulations on the successful PR merge! 🌟
Thank you for your valuable contribution! 🎉
Let's continue to make waves in open source. Share your achievement on social media and tag Digitomize to help spread the word.
Thank you for your dedication!
@all-contributors please add @Meetjain1 for docs
@holopin-bot @Meetjain1 c-av

@Meetjain1, check readme - it worked

@Meetjain1, check readme - it worked

yes bro , sorry forgot to synk the fork after adding file in github assets

@pranshugupta54 please add labels of gssoc and level .


Strand assignment in bam output files

Thanks for a great tool.
I noticed that all the reads are assigned to the positive strand. I understand that this might be a design decision, but it makes it more difficult to work with the alignment files downstream.
Hope you in the future can make an adjustment to assign the reads to the correct strands.
-Rolf

Hi @rolfsoekilde,
Thanks for bringing this to our attention.
For the purposes of Visualization over IGV, the strand/orientation of reads looks fine (as shown below). However, your point is valid, I will add the necessary flags to these files in our next release/patch.  Can you specify what other key features you would like to see in the SAM format required for the downstream analysis.
Thank you,
Arun.
Here is an example I checked with a test input file on IGV (let-7f-5p: reads that align to negative strand):

and miR-126 for positive strand.

Thanks for putting it on the release plan. I actually don't have any concrete ideas for flags in the sam output. I will come back to this part when I start to use it more actively.

Hi @rolfsoekilde,
Thank you, we have adjusted the FLAGS accordingly and it is displaying the correct SAM/BAM flags. The new release includes this fix and it will be out soon.
Arun.


Publish official Docker images

With the deprecation of path-style URLs this year I think it's important to figure out how to make developing without path-style access as frictionless as possible.
Fortunately, the style of this project very naturally lends itself to running in a container, and virtual networks make it easy to create custom DNS setups without modifying system-level DNS settings. So, I think it's time we started publishing official docker images.

@jamhall when you have a moment, is this your DockerHub page? If you're comfortable with it, I'd like to have collaborator access to jamhall/s3rver. For me it's important that non-Docker-official images are published under the name of the author owning the source code. In the meantime I'll plan to publish things under my forked repo's name.

@kherock  - great idea for having official Docker images. Yups, that is my DockerHub page.  Is this your DockerHub page? If so, then I will add you to s3rver repository
Thanks :)

Yep, that's me! Thanks for setting that up.

Great. I've added you.


Finetune SVD Lora？

can your code train_svd.py used to Finetune SVD Lora？ I changed your .yaml file to Lora fine-tuning but found many bugs. I need your help.

Currently this code does not support lora training.


Mysterious maximum number of iteration error

In one of my projects ( https://github.com/antonkulaga/CRISPR ) I get totally non informative coursierResolutions exception when I update coursier version to 1.0.0-RC6 :
[info] Loading project definition from /home/antonkulaga/CRISPR/project
[info] Set current project to crispr (in build file:/home/antonkulaga/CRISPR/)
> compile
[trace] Stack trace suppressed: run last crisprJVM/*:coursierResolutions for the full output.
[error] (crisprJVM/*:coursierResolutions) coursier.ResolutionException: Maximum number of iteration of dependency resolution reached
[error] Total time: 6 s, completed Jun 26, 2017 6:22:20 PM
> last crisprJVM/*:coursierResolutions
coursier.ResolutionException: Maximum number of iteration of dependency resolution reached
[error] (crisprJVM/*:coursierResolutions) coursier.ResolutionException: Maximum number of iteration of dependency resolution reached

From there I have no idea which dependency is missing.

Looks like:
coursierMaxIterations := 200
fixes the problem. That means that defaults are really bad in coursier, because the project is quite simple

I ran into this too, it originates from the changes from RC5 to RC6. I'm about to push a reworked version of them, that fixes the issue for me.
That said, the default number of iterations should be increased in the sbt plugin, from 50 to 100 like in the CLI say (PR?)

This should be fixed in 1.0.0-RC8. Re-open if you still run into this issue.


Sample: List Customization Spec

Looking for code to list the customization specs on a given vCenter host?

I also have this problem~~~
who can help me?

This will do it
import ssl
from pyVim import connect
from pyVmomi import vim
from tools import cli
def connect60():
si = None
try:
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_NONE
si = connect.SmartConnect(host=args.host,
user=args.user,
pwd=args.password,
port=int(args.port),
sslContext=context)
connect.Disconnect, si
except IOError as e:
pass
return si
args = cli.get_args()
service_instance = None
service_instance = connect60()
if not service_instance:
raise SystemExit("Unable to connect to host with supplied info.")
csdata = service_instance.content.customizationSpecManager.info
for cs in csdata:
print (cs.name)


VimTex plugin doesn't work properly.

I installed VimTex plugin to write latex in neovim("https://github.com/lervag/vimtex").   One of the function this plugin realize is that: when the cursor is on a dollar sign and neovim is in normal mode, if I pressed %, the sign will jump between between paired dollars.  However, when I use it in vscode-neovim,  the cursor always jump to the previous dollar sign.

sounds like the plugin isn't loaded.

The issue is probably because of syntax off

The issue is probably because of syntax off

It works!  Since all things work well with neovim in WSL,  I never thought I should set syntax on manually.   Thank you very much!

Unfortunately syntax off is forced by the extension, because we don't want the syntax highlighting. I hope to investigate a better solution.


Azure password not working if started with special characters

Azure login doesn't works if the password is started with special characters. (same works with azure 0.10.1)
OS = Centos 6.x
az version = azure-cli (2.0.22 )
root@xxx:~  /opt/rh/python27/root/usr/bin/az login -u<EMAIL_ADDRESS>-p @X123456x!
[Errno 2] No such file or directory: 'X123456x!'
Traceback (most recent call last):
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/main.py", line 36, in main
cmd_result = APPLICATION.execute(args)
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/core/application.py", line 143, in execute
argv = Application._expand_file_prefixed_files(unexpanded_argv)
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/core/application.py", line 310, in _expand_file_prefixed_files
return list([Application._expand_file_prefix(arg) for arg in argv])
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/core/application.py", line 306, in _expand_file_prefix
return Application._maybe_load_file(arg_split[0])
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/core/application.py", line 295, in _maybe_load_file
return Application._load_file(poss_file)
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/core/application.py", line 318, in _load_file
allow_binary=True)
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/azure/cli/core/util.py", line 132, in read_file_content
with codecs_open(file_path, encoding=encoding) as f:
File "/opt/rh/python27/root/usr/lib64/python2.7/codecs.py", line 896, in open
file = builtin.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: 'X123456x!'
root@xxx:~

The special character gets handled by shell. To prevent that, please apply quote:
az login -u<EMAIL_ADDRESS>-p '@x123456x!'

Its already tried using both single and double quotes. The result is same error message.

@jimyjohny, thanks for the information, this could be caused by that the CLI pre-processed the @ character with the assumption that the subsequent string would be a file name


Update the UI of PlatKey with the new guidelines

PlatKey should have the same color design of Platzi. And now there is a new UI:
Preview of the new UI

New green color: #0bf491
New font: IBM Plex Sans


set diva reconstruction loss a hyper-parameter

working on this pr: https://github.com/marrlab/DomainLab/pull/457

if this pr to fbopt is merged, then the issue #452 (this current) can start to be addressed
https://github.com/marrlab/DomainLab/pull/459

fixed


MIT Technology review rss feeds don't show up

Newsbeuter version (copy from newsbeuter -v):2.9
Steps to reproduce the issue:

Edit the URLS file and add : https://www.technologyreview.com/stories.rss
Reload the url when the newsbeuter app. it shows 0/0

On 6 January 2017 04:42:57 GMT+03:00, Abhinav<EMAIL_ADDRESS>wrote:

Newsbeuter version (copy from newsbeuter -v):2.9
Steps to reproduce the issue:

Edit the URLS file and add :
https://www.technologyreview.com/stories.rss
Reload the url when the newsbeuter app. it shows 0/0

Sorry, my computer died and I can't check this right now.
One thing you can do is build from Git and check if the bug is still present there.
--
Regards,
Alexander Batischev

I checked with 2.9 here and it pulled in 20 items.
What distro are you running?
Did you have this feed in your URLs file before?
Can you reproduce this with clean configuration? (Move your cache.db, config and urls files someplace else for a little while.)

I am using MacOS


Testing Cassandra Usecase Documentation

Choose one: TESTING
What happened: Documentation requires testing
What you expected to happen: Check if the documentation procedures are valid

Tested the Document in website the procedures are valid.
LGTM

Tested.


indexer-alt: remove watermarks.epoch_lo

Description
This field turns out not to be used by the new pruner implementation, because it is entirely based on checkpoints.
Test plan
CI
Stack

#20149
#20150
#20166
#20216
#20217

Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

[ ] Protocol:
[ ] Nodes (Validators and Full nodes):
[ ] Indexer:
[ ] JSON-RPC:
[ ] GraphQL:
[ ] CLI:
[ ] Rust SDK:
[ ] REST API:

@wlmyng, I'm particularly curious to get your take here as the originator of the initial watermarks schema -- can we get rid of this field, or does it still serve a purpose somewhere in a world where pruning is all checkpoint-based?