text:
Changes to project organization

This project is growing and I'm really loving how the community is turning out. One of my favorite things is being able to personally attend to every question, issue, pull request, and contributor to the level of detail that they deserve. With the demand, though, I'm not sure how much longer I can keep it up!
Caddy is an open source project built entirely on donated time and talent -- thank you, to all who have contributed -- we do it because we love the Web, Go, and it's a lot of fun! But seeing as I can't make a living off of this, it's going to continue to get harder for me to balance my life with this project. I love it, but my life immediately around me (family, school, work, etc.) obviously takes priority.
There's a lot of different aspects that make Caddy possible. It used to just be the core server, middleware, a website, and some documentation. I could manage all that. But now I'm starting to get a little overwhelmed. In order to ensure I don't hinder the growth and progress of Caddy, I propose that we group Caddy into separate, but tightly coupled, projects:

Figure A. Proposed project structure. (Don't read too much into this. Placement and ordering doesn't really matter.)

Build Server The back-end software that powers the Download page. Produces custom builds of Caddy on-demand.

Middleware All the middleware components located in the middleware folder. These give Caddy its magic powers.

Production Ops Caddy is a web server, but being one, is closely tied to sysadmin tasks which prepare the system to run a web server. I never intended to get into this because production environments are harsh and highly varied, but we've had a lot of issues, questions, and blog posts about this. People are skeptical that Caddy can be used in production, but I am confident that Caddy belongs in production as much as it does in dev. This team will help make Caddy easy to run in production.

Distribution This team will package up Caddy for Linux repos (apt-get, yum, ...), homebrew, and others, maintain the install script at getcaddy.com (which right now is just an experiment), and help make Caddy generally available to as wide an audience as possible. I'd love to see it on the Android and iPhone app stores some day.

Website This is, obviously, the Caddy website. Marketing, but also the download page.

Documentation This aspect includes the docs on the website, the developer wiki on GitHub, the main README.md file, the README.txt file in the dist folder, and the godoc comments.

Plugins This is an umbrella for all the various Caddy plugins (add-ons). Each plugin author is of course responsible for their own plugin but it'd be good to have a way to coordinate them all, especially where plugins may overlap or use code from one another.

API In version 0.9, Caddy will get an API. This aspect is all about the API's endpoints and client development.

Plugin Tooling Caddy developers benefit from caddydev and caddyext right now, but these tools need real names (might as well) and better unification, if possible. Anyway, developing plugins without these tools is very inconvenient, so they deserve our attention.

I'd like to appoint some volunteers to head up these projects and be the decision-makers for these aspects of Caddy. Of course I'm still able to provide direction where necessary, but I'd like to spread out the autonomy across all these aspects without me having to oversee/approve everything. This way the project can continue to progress without being hindered by my lack of time for it all.
To clarify, I'm not withdrawing from the project. :smile: I'm just trying not to be spread too thin.
Thoughts? Volunteers?
I dunno how this is going to go over with everyone else, so what do you think about this? Expectations for project leads aren't any different from regular contributions; it's basically just a more focused approach to development and directing questions to a project manager or lead contributor for that aspect of Caddy, rather than always to me.
Let me know what you think. If you'd be willing to be a project lead for one of these aspects, also let me know and I'll see about assembling a good team and making sure you have push rights, etc.

For what it's worth, I'll still oversee Caddy core and probably be heavily involved with website, API, build server, and documentation, at least in the short term. (Did you know? A new build server is already under way.)

I think it is a good idea. I help my brother with a couple repos that are way less traffic than caddy I know how exhausting it can be responding to everyone. Sharing the load will keep you from getting burned out and keep the caddy project growing. I like the project structure you proposed. Those seem like logical divisions of skills, interest, etc. for each project.
That being said I would be happy to help with whatever. Personally I think I would be most helpful working on the middleware project as that is what I have done in the past and is most relevant for what I use caddy for. I looked at couple of a the reverse proxy issues that have been opened up and think I could address most of those pretty easily. I also want to move some of my static sites over to using caddy and should have some bandwidth in the coming weeks to look at creating some caching middleware for those sites.

This is a good decision for the progress of the project. I really appreciate and I am pretty impressed with how much time you devote to the maintenance of a growing project like this. You have managed to get it this far and I think you have made the right decision.
My main contributions have revolved around Middleware, Plugins and Plugin Tooling. I am also pretty familiar with the different parts of the codebase bar API. I think I am best suited to those three but I am willing to help out in any aspect as I have been doing.
I also share the opinion that caddydev and caddyext may need to be merged for better all round experience.
Well done.

Hey Matt, I haven't (yet!) contributed to Caddy, but I just wanted to chime in here and add to the gratitude and praise others have shown. Thank you so much for all the time you have devoted to the project, it is a true inspiration to me to see all the progress you've made with the server.
Splitting things up and getting some extra help to help on the issue tracker and prioritization are the right steps to take. Hopefully after I've gotten a couple of pull requests under my belt I'll be in a place to be more helpful.
For now. Thank you for everything you've done here! Big fan of caddy!

Awesome idea! Big step push forward!

I think it is an ok, idea, but would caution against over-organizing too early. Would not be good to get into a situation where such and such can't be touched because it is so and so's domain only. It does seem this is growing beyond an individual effort and that is great.
There is a fairly active community, and lots of people willing to contribute. I am happy to contribute where I see a need, but also have a hard time wanting to pick a "bucket". I'd consider myself more general purpose / miscellaneous stuff.

I've reached out to a RH consultant to have a public yum package. Is there a repo to store things like SPEC files or signed package keys?

@nicholasa Thanks for doing that; not yet, but let's chat on gitter about it or in a new issue rather than in this one.
@captncraig Yeah, that's something that I'm trying to be sensitive to. Leading an aspect isn't so much about ownership as it is about coordinating and delegating the decision-making.
Thanks for those who have commented so far, I'm taking notes. :smile: Further feedback and suggestions are welcome.

Wish I could help. This is really great package, and fantastic for the golang community. When I get time I will come back for sure, and see what I can help with.

Wish I could help. This is really great package, and fantastic for the golang community. When I get time I will come back for sure, and see what I can help with.

Oops double post...

I like the idea. Count me in.

@wafture https://github.com/Xe/rpmspecs/tree/master/caddy https://copr.fedoraproject.org/coprs/xena/caddy/

@Xe while i'm not opposed to using systemd, it cuts out a severely large portion of servers, essentially anything below 7.x. It might be the future but millions of servers are still rockin 6.x, like all 5000 of the servers i manage during the day for example.

Yeah, I get that. I'd be willing to take a patch for RHEL 6 support. I just need a sysvinit script.

Looks like a good idea although I see "production ops" and "distribution" somewhat combined because their responsibility overlaps for me, if I'm wrong it would be nice to have a clear separation in the description.
I'm not able to help on a daily basis but I would be glad helping with some pull requests as well as filing issues for enhancement and design ideas from time to time, especially addressing packaging for the various Linux and BSD flavors (maybe we could provide init scripts and sample configuration within the dist/ folder of the repository as well as a packaging system based on Vagrant or Docker for automatically building packages for the respective distribution) as well as API server and client design, if desired (I'm working in API development almost all day and could provide client libraries for PHP and Ruby as well as maybe Python and Swift).

Hey everyone, sorry it's taking me some time to get around to this. I wanted to leave the issue open long enough to give more people a chance to see it and participate. I think we're having a pretty good response and I should have responded to this sooner!
I will be very happy to accept all of you into the project and to have you contribute simply where your expertise is or where you feel a certain amount of interest. I'm also thinking of giving commit rights to everyone who has submitted non-trivial, merged PRs. Node.js does something like this, and I like their model for a growing open source project: https://medium.com/the-javascript-collection/healthy-open-source-967fa8be7951
This'll hopefully grow our base of maintainers and hopefully bring more people back to improving the project by getting involved in bug fixes, code reviews, etc. I'm still mulling the details of this over in my head, but I'd like to know what you think of this.

@dencold What's your availability look like as far as contributing? I'll help onboard you.
@wafture Should those be in this repo or something separate? I know nothing when it comes to this stuff. :smile:
@hubertbanas Are you still interested in contributing again? If so, I'll give you push rights so you can help with issues and PRs when you can.
@dprandzioch and @acmacalister Thanks for your contributions so far! You're both collaborators now (Austin has been for a while, woo hoo!), so feel free to contribute whenever you are able and with whatever interests you. You have both already been a significant part of what makes Caddy great!
@Unknwon Of course I'd welcome contributions from a talented engineer such as yourself. :smile: But Gogs is so cool, you know? It must demand a lot of your time!
@captncraig I hear ya, so I'm gonna give people collaborator status and let the contribute how and when they wish. I hope that having more collaborators will be able to help with reviewing and merging PRs and spreading out the load of fixing bugs, etc.

Absolutely. I will try to help as much as I can.

Go go go! :blush:

authors: Unknwon Xe abiosoft acmacalister captncraig dencold dprandzioch hubertbanas joeblew99 mholt nicholasa wafture


text:
shopDetail画面の追加

対象チケット
https://github.com/mht-ryo-chiba/sweets_app_sample/issues/17
実施内容

shop_list.jsonの修正
comment_list.jsonの作成
shopModelの内容修正
commentModelの作成
commentListModelの作成
commentListRepositoryの作成
shopDetail画面の作成
shopDetailのviewModelの作成
APIの繋ぎこみと画面への反映

レビュー観点
figmaと比較してデザインが崩れていないか？
動作確認方法
千葉からshop_list.json、comment_list.jsonの共有を受け、assets/sample_json/ディレクトリに配置する
実機にて動作確認
アプリを起動し、お菓子屋さんの一覧をタップし詳細画面がfigmaと同じ形で表示されることを確認
範囲(対象の物のみチェックを入れる)
種別

[x] アプリ設定(ライブラリ導入)
[x] 画面実装

[ ] デザインレビュー

[x] 機能実装

UI仕様書、デザインファイル(URL)
https://www.figma.com/file/RTkbcZQmHGars7DKr3JwBD/Flutter-conference-chiba?node-id=110%3A4020

スクリーンショット or　動画
https://user-images.githubusercontent.com/20253533/142509675-a139d720-25c2-4aa3-982d-7a5e4f4e3158.mp4
関連チケット
上から順にマージしていくこと
https://github.com/mht-ryo-chiba/sweets_app_sample/pull/12
https://github.com/mht-ryo-chiba/sweets_app_sample/pull/14
https://github.com/mht-ryo-chiba/sweets_app_sample/pull/16
レビュー前に実施すること

[x] lintのエラーが出ていないこと
[x] 実機で動作確認を行うこと
[x] アサイン、レビュワーを設定すること

LGTM!

ちょっと修正したので再度見てほしく!

問題なしです

source: gharchive/pull-request

authors: mht-masaki-taki mht-ryo-chiba

license: MIT

license_type: permissive

license_source: github-api


text:
Remove loop

With Python 3.10 the examples don't run.
$ python example/ui_simple.py
Traceback (most recent call last):
  File "/home/fab/Documents/repos/smarthomeconnect/example/ui_simple.py", line 4, in <module>
    import shc
  File "/home/fab/Documents/repos/smarthomeconnect/shc/__init__.py", line 13, in <module>
    from . import supervisor
  File "/home/fab/Documents/repos/smarthomeconnect/shc/supervisor.py", line 28, in <module>
    _SHC_STOPPED = asyncio.Event(loop=event_loop)
  File "/usr/lib64/python3.10/asyncio/locks.py", line 167, in __init__
    super().__init__(loop=loop)
  File "/usr/lib64/python3.10/asyncio/mixins.py", line 17, in __init__
    raise TypeError(
TypeError: As of 3.10, the *loop* parameter was removed from Event() since it is no longer necessary

Removing the loop fixes the issue for me on Python 3.10. I haven't tested other Python releases so far.
It was deprecated in Python 3.8. setup.py says min. requirement is 3.7 which might be a problem.

Codecov Report

Merging #50 (57b20e0) into main (611cd0f) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #50      +/-   ##
==========================================
+ Coverage   80.02%   80.04%   +0.01%
==========================================
  Files          35       35
  Lines        4405     4409       +4
  Branches      590      760     +170
==========================================
+ Hits         3525     3529       +4
  Misses        721      721
  Partials      159      159

Impacted Files
Coverage Δ

shc/supervisor.py
92.64% <100.00%> (ø)

shc/interfaces/mqtt.py
85.89% <0.00%> (+0.37%)
:arrow_up:

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 611cd0f...57b20e0. Read the comment docs.

Welcome and thanks for your contribution!
The loop parameter has actually only been required until Python 3.5, when get_current_loop() was not working as expected. However, I misused it in a few places in my projects. So, first I thought, it might be somehow required here to make sure the event is associated with the right event loop when multiple event loop threads are used. But since the event loop is retrieved via get_event_loop() just before, this is not a problem and we don't have to find a workaround.
I also expected other places in SHC to have the same problem, but a qick search for "loop=" did not reveal any other problematic uses. So this fix should do it. Thanks!
I'll add a test job with Python 3.10 to the CI pipeline to catch such issues in the future.

authors: codecov-commenter fabaff mhthies

repo: mhthies/smarthomeconnect


text:
remove pubnub.com

pubnub.com is not porn.
https://en.wikipedia.org/wiki/PubNub

Seems to be back again

@emeryray2002 Hello, sorry for the delay. It seems pubnub.com is not listed in any of the hosts/ lists. Maybe some other hosts file other than Pornaway is blocking the site?

source: gharchive/issue

repo: mhxion/pornaway


text:
refactor: fixed small typos on code examples shown on issue #252

Summary of the changes
Corrected small typos in code examples stated on issue #252
Following small changes were made:
In the react example of breadcrumbs, the second breadcrumb href has an extra space, removed extra spaces to fix the issue
Skeleton contains height="20" but height doesn't exist, removed height from IcSkeleton -

Seems like it could just be a typescript issue, but textfield example comes with maxLength="25" but a string isn't assignable to a number so it would only accept maxLength={25} - changed maxLength="25" to {25}
The Select react example has const [value, setValue] = useState(null); however in typescript projects where is needed, null causes errors. Updated typescript code with: const [value, setValue] = useState("");
Related issue
#252
Checklist

[Y] I have manually accessibility tested any changes, if relevant.
[Y] I have raised this pull request against the develop branch

Thanks for the contribution, looks great. I think there should be another fix in this ticket for Skeleton height

thanks it's updated now

Looks good, thanks for the contribution.

Hi @c347347, this PR should just need rebasing off develop and then will be good to go 👍


text:
Unable to launch when update is available

https://github.com/micahflee/torbrowser-launcher/commit/a8d1e803798251e051dcf41d9c8a1b2e00710a0c added a version check to prevent torbrowser from launching if its version is too low. However, the mechanism to update the torbrowser (afaik) is to launch the old browser and via the GUI initiate the update. See image below.
With the version check introduced by https://github.com/micahflee/torbrowser-launcher/commit/a8d1e803798251e051dcf41d9c8a1b2e00710a0c, the user is not able to update the browser via normal means.

Eek, that's not good.

authors: lucianposton micahflee

repo: micahflee/torbrowser-launcher


text:
Signature verification error.

Please note that I have a persistent signature verification error:
Error Code: 110775B5D101FB36BC6C911BEB774491D9FF06E2:Key expired
download.zip

Ditto here, on antiX 19.2

I'm also seeing this with the flatpak on Mint 20.

I'm also seeing this with the flatpak on Mint 20.

I'm running Mint 20 as well.

same here. Using pamac on manjaro 20.0.3


text:
Add feature to allow a selection on "other player's boards" and not all boards

NOTE: Before you begin working on this, please assign this issue to yourself. If you do not do this, then there's the possibility that 2 people will end up doing the same task, which is not a good use of time.
I didn't see a way to do this.  Fission is kind of like this, but it allows you to select your own board.
Gujin (Artifact Age 5) needs the ability to select all other boards.

Similar to how you can use 'any player' or 'any opponent', you can now use 'any other player' as a special string.
So for Gujin, you can do something like:
'owner_from' => 'any other player',
'location_from' => 'board',
'location_to' => 'none',

authors: micahstairs ultimatefiend

repo: micahstairs/bga-innovation


text:
Bug : gradle sync problem

when we add the dependencies to build  and sync the project we get this error
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors

Please post the content of your build.gradle file. Is this the whole output? It would be useful to get more information about the error.

This is my build.gradle file content
buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"
    defaultConfig {
        applicationId "com.example.thesam.myapp"
        minSdkVersion 11
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        buildTypes.each {
            it.buildConfigField 'String', 'THE_MOVIE_DB_API_KEY', "\"Api_key\""
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'jp.wasabeef:recyclerview-animators:2.2.4'
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.android.support:palette-v7:24.2.1'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:cardview-v7:24.2.1'
    compile 'com.orhanobut:dialogplus:1.11@aar'
    testCompile 'junit:junit:4.12'
    compile 'com.facebook.stetho:stetho:1.4.1'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
}

One thing I have noticed is, that you have minSdkVersion set to 11. This library requires API level 14. Maybe that explains the problem...

hhhhhh yes i just changed  it  now , thnnks @michael-rapp

Glad to help!

authors: michael-rapp samirthebti

repo: michael-rapp/AndroidMaterialDialog


text:
docs: Vantage Vue example, debugging UDP and mappings

Adds an example for the Vantage Vue model
Describes requirement that WeeWX be on the same subnet as the WeatherLink Live
Adds instructions for debugging WeatherLink Live data for checking mappings and confirming UDP broadcasts are working
Switches the example mapping configurations to quotes instead of code, just so that the long ones wrap around instead of going off the view. For example:

mapping = th:1, th_indoor, baro, rain:1, wind:1, uv:1, solar:1, thw:1, thsw:1:appTemp, windchill:1, soil_temp:2:1, soil_temp:2:2, soil_temp:2:3, soil_temp:2:4, soil_moist:2:1, soil_moist:2:2, soil_moist:2:3, soil_moist:2:4, leaf_wet:2:1, leaf_wet:2:2, battery:1:outTemp:wind, battery:2:tx

vs

mapping = th:1, th_indoor, baro, rain:1, wind:1, uv:1, solar:1, thw:1, thsw:1:appTemp, windchill:1, soil_temp:2:1, soil_temp:2:2, soil_temp:2:3, soil_temp:2:4, soil_moist:2:1, soil_moist:2:2, soil_moist:2:3, soil_moist:2:4, leaf_wet:2:1, leaf_wet:2:2, battery:1:outTemp:wind, battery:2:tx

Looks good, ty

authors: michael-slx nickbp

repo: michael-slx/weewx-weatherlink-live


text:
Run current python cell

Is your feature request related to a problem? Please describe.
I would like to be able to run a python cell (delimited by delimiters such as # %%)
Describe the solution you'd like
running :SnipRunCell would (only for filetype python) detect the beginning and end of the cell, and run this section, similarly to the visual mode '<,'>SnipRun
Describe alternatives you've considered
I currently have a shortcut to visually select the current cell, and then I run '<,'>SnipRun manually (but my cursor moves after I exit the visual selection), using the following code:
-- Function to select the current Python cell delimited by # %%
function SelectPythonCell()
  local current_line = vim.fn.line "."
  local start_line = current_line
  local end_line = current_line

  -- Find the start of the section
  while start_line > 1 do
    local line_content = vim.fn.getline(start_line - 1)
    if line_content:match "^# %%%%" then break end
    start_line = start_line - 1
  end

  -- Find the end of the section
  local total_lines = vim.fn.line "$"
  while end_line < total_lines do
    local line_content = vim.fn.getline(end_line + 1)
    if line_content:match "^# %%%%" then break end
    end_line = end_line + 1
  end

  -- Construct the command string with the given start and end lines
  local cmd = string.format("normal! %dGV%dG", start_line, end_line)
  -- Execute the command
  vim.cmd(cmd)
end

Additional context
I'm not knowledgeable enough with the source code of SnipRun to propose a fully functioning solution, so I hope that at least the above piece of code can be useful in this implementation.
Thank you in advance if you decide to implement this :)

While clearly not impossible (such features exist for literate programming language such as markdown/neorg/orgmode), it's always somewhat a mess (in sniprun's code) to implement that properly to some prod-ready extent.
(For example, what if you don't have a closing delimiter and are working on a huge file? Sniprun might choke if it tries to read GBs in order to find the delimiter)
There is a more straightforward solution for you since you're already halfway, see:
https://michaelb.github.io/sniprun/sources/README.html#mappings-recommandations
The 'moving cursor after selection' is a Neovim 'feature' that plagued sniprun for a long time so a workaround was eventually found. Hopefully you can adapt that script-fu into your shortcut, good luck

Oh yeah I see! Well since it's something that I really want, I spent a bit more time on it and finalized my function:
function Run_sniprun_section()
  -- Check if the file type is Python
  if vim.bo.filetype ~= "python" then
    vim.notify("Run current cell is only available in Python files.", vim.log.levels.WARN)
    return
  end

  -- save the cursor position to move back to it later
  local cursor_pos = vim.api.nvim_win_get_cursor(0)

  -- variables to find the cell delimitor
  local current_line = vim.fn.line "."
  local start_line = current_line
  local end_line = current_line

  -- Find the start of the cell
  while start_line > 1 do
    local line_content = vim.fn.getline(start_line - 1)
    if line_content:match "^# %%%%" then break end
    start_line = start_line - 1
  end

  -- Find the end of the cell
  local total_lines = vim.fn.line "$"
  while end_line < total_lines do
    local line_content = vim.fn.getline(end_line + 1)
    if line_content:match "^# %%%%" then break end
    end_line = end_line + 1
  end

  -- Set the visual selection marks
  vim.fn.setpos("'<", { 0, start_line, 1, 0 })
  vim.fn.setpos("'>", { 0, end_line, 1, 0 })

  -- Execute SnipRun on the visual selection
  vim.cmd "'<,'>SnipRun"

  -- Restore the cursor position
  vim.api.nvim_win_set_cursor(0, cursor_pos)
end

Calling it manually with :lua Run_sniprun_section() or with a keybind
I did a similar workaround as you for the cursor moving (saving the position initially, and then moving back to it).
(btw for non-scripted usage of visual mode I agree with the neovim feature to move the cursor, it would just be nice to have in the api the ability to disable the feature for scripting purposes)
Anyway, now to address your concern about the huge files, we can add a confirmation dialog if the number of lines in the cell is let's say above 100 lines (poorly written because of a copy paste towards the end, but it works):
function Run_sniprun_section()
  -- Check if the file type is Python
  if vim.bo.filetype ~= "python" then
    vim.notify("Run current cell is only available in Python files.", vim.log.levels.WARN)
    return
  end

  -- save the cursor position to move back to it later
  local cursor_pos = vim.api.nvim_win_get_cursor(0)

  -- variables to find the cell delimitor
  local current_line = vim.fn.line "."
  local start_line = current_line
  local end_line = current_line

  -- Find the start of the cell
  while start_line > 1 do
    local line_content = vim.fn.getline(start_line - 1)
    if line_content:match "^# %%%%" then break end
    start_line = start_line - 1
  end

  -- Find the end of the cell
  local total_lines = vim.fn.line "$"
  while end_line < total_lines do
    local line_content = vim.fn.getline(end_line + 1)
    if line_content:match "^# %%%%" then break end
    end_line = end_line + 1
  end

  -- Check if cell contains more than 100
  if (end_line - start_line) > 100 then
    -- Define the options for the confirmation dialog
    local choice = { "Yes", "No" }
    -- Show the confirmation dialog
    vim.ui.select(
      choice,
      { prompt = "Cell containing more than 100 lines, do you want to run SnipRun?" },
      function(chosen)
        if chosen ~= "Yes" then
          vim.notify("SnipRun command cancelled.", vim.log.levels.INFO)
          return
        end

        -- Set the visual selection marks
        vim.fn.setpos("'<", { 0, start_line, 1, 0 })
        vim.fn.setpos("'>", { 0, end_line, 1, 0 })

        -- Execute SnipRun on the visual selection
        vim.cmd "'<,'>SnipRun"

        -- Restore the cursor position
        vim.api.nvim_win_set_cursor(0, cursor_pos)
      end
    )
  else
    -- Set the visual selection marks
    vim.fn.setpos("'<", { 0, start_line, 1, 0 })
    vim.fn.setpos("'>", { 0, end_line, 1, 0 })

    -- Execute SnipRun on the visual selection
    vim.cmd "'<,'>SnipRun"

    -- Restore the cursor position
    vim.api.nvim_win_set_cursor(0, cursor_pos)
  end
end

Maybe this is not too far from being prod-ready for other people to use too?

Anyway, now to address your concern about the huge files,

This was but an example of the additional requirements doing this in sniprun would create

it would just be nice to have in the api the ability to disable the feature for scripting purposes

While I can't comment on Neovim's API, sniprun does expose an API that would work well with 'scripting' approaches, and also completely workarounds the cursor-move-when-selecting 'issue'
https://michaelb.github.io/sniprun/sources/README.html#api
While I don't think I'll implement 'code-bloc' detection in Python, you look like you already have a satisfying solution ?

Thanks I missed this in the documentation, this package is really well done!
Yeah i have a satisfying solution, I'll mark the issue "closed"

repo: michaelb/sniprun


text:
Librespot changes

Hi I see in your readme it states that you had to modify librespot for it to integrate with spotty. I was just wandering what changes did you have to make and why?

I need a few features which are not part of librespot. Eg. pipe a single track out, then quit; signal certain events to the Spotty plugin over http; add more event notifications.
As for the actual modifications: just diff my fork (https://github.com/michaelherger/librespot) with the upstream. It's mostly in playback/src/player.rs.

authors: duncanspumpkin michaelherger

repo: michaelherger/spotty

license: mit

license_source: bigquery


text:
Completion of error handling

Would you like to add more error handling for return values from functions like the following?

malloc ⇒ papplJobFilterImage
pthread_mutex_lock ⇒ _papplDNSSDInit
strdup ⇒ copy_link

I will look at adding some checks for the two memory allocations. The calls are unlikely to fail with the checks that are already in place, and its not like the links are some unbounded values being passed in from a third-party, they are explicitly added by the printer application developer.
WRT the mutex call, given the two possible documented errors (not initialized or deadlock) and the code in question it will impossible for the mutex to fail unless the data segment gets trashed, at which point a lot more things will be failing as well... Moreover, there isn't any meaningful way to deal with a failure, if one did occur - deadlock means the current thread already has a lock (no problem), and not initialized means something bad has happened and we'll be crashing real soon now.

I suggest to avoid ignorance of return values a bit more.
Would you like to detect every error situation as early as possible?

Not if there is nothing useful that can be done in response to the error.

(And no, I do not subscribe to the programmer community that believes that calling abort under such circumstances is appropriate.)

There are the usual possibilities to consider for more complete error reporting.
How do you think about to improve static source code analysis also for this software?

@elfring I've been using the Clang static analyzer as well as LGTM on this project from day one. I tried Codacy but it is way too noisy (particularly the cppcheck output) and no way to configure things... :/

I find it interesting then that I can find remaining open issues by simple source code searches.
Would you like to clarify further software development possibilities (also for this issue)?

@elfring Please be specific. With all due respect, you have a habit of making vague bug reports about issues you are concerned about, but I need specific details (files, line numbers, and issues) or the output from one of the static analysis tools you are using to find the issues.

I am used to a selection of source code search patterns.
There are further means available for better error detection and corresponding exception handling.

Annotations
Would you become interested to apply aspect-oriented software development?

@elfring I am not interested in adding yet another layer/dependency to the PAPPL sources, so Aspect C/C++ is not of interest to me.

How do you think about to extend your selection of software analysis tools according to presented issues?

@elfring I have managed to add Cppcheck to PAPPL master, and it is now part of the Travis CI workflow. I've reviewed all of its reported issues using the CERT checker, however the MISRA, threading, and Y2038 add-ons produced such an incredible volume of false-positives that I opted to not enable them. Unfortunately, inline suppression comments don't appear to work so one of the suppressions I am using for the CERT warnings (for casting const pointers to non-const) has to be a little more aggressive than I'd like.
Frama-C also looks promising but seems to have serious problems parsing the system header files... The documentation is also a little obtuse...

According to error detection for POSIX API functions:

I tried to extend the analysis tool “Cppcheck” for this purpose.
I constructed scripts for the semantic patch language for showing unstored return values.
Will you care more for standard function calls?

@elfring I will happily review a list of issues (source file, line number, and issue description) or a pull request with your proposed changes. My goals and priorities for the PAPPL project may not be the same as yours, but I will incorporate any changes that make sense to me.

OK, I've done a review of all calloc, malloc, and strdup usage and made appropriate changes as needed. If you find any other cases where the return value of a function call needs to be checked but isn't, please file new issues with the specific areas of concern.

OK, I've done a review of all calloc, malloc, and strdup usage and made appropriate changes as needed.

Thanks for a few source code adjustments.

If you find any other cases where the return value of a function call needs to be checked but isn't,

:thinking: You know already that further return values are overlooked so far.

please file new issues with the specific areas of concern.

Do you really want to get separate bug reports for each missed error code check?
Please reopen this issue accordingly.

@elfring I want bug reports for specific issues. Ideally I'd like the issues grouped by logical category, but you can submit a single bug report listing all of the specific issues you think need to be addressed.
I am not re-opening this bug report - I have updated all of the unchecked memory allocations that needed to be checked.
Since today's code functions without (recoverable) errors on a resource-constrained embedded Linux controller while getting hammered by thousands of simultaneous client requests, I am not prepared to make any changes to the pthread calls today. Aborting on any error could cause other random, impossible to reproduce crashes causing irreversible data loss and/or denial-of-service.
When I end up porting PAPPL to Windows (#116) I'll need to provide threading primitive "wrapper" functions, at which point I can implement something a bit smarter for EAGAIN and EDEADLK errors from the pthread calls and abort for other errors that "should never happen". That would be marginally better than what exists today, and I've included a pointer back to this issue so that I don't forget...

authors: elfring michaelrsweet

repo: michaelrsweet/pappl


text:
Enhancement/toggle switch

Remove darkmode + Show foreign fund CTA

I can't click back to "all funds" -- test it? here the button doesn't toggle you back.

I can't click back to "all funds" -- test it? here the button doesn't toggle you back.

For some reason, the url in the DOM is also incorrect. Checking this out.

authors: aakashaggarwal michaelsnook

repo: michaelsnook/mutual-aid-listing


text:
enhancement: set bucket version to 'null' when versioning not enabled

On s3 when versioning is not enabled, the version parameter is set as 'null'. Setting version parameter to 'null'  when 'x-amz-version-id' header is not found allow us to use un versioned buckets.

I'm going to close this - more discussing is in https://github.com/michalc/sqlite-s3-query/pull/10

authors: Wrufesh michalc


text:
A release to try it out

Could you please publish APK so one can install it and try it live?

Oh, I never thought of doing that. Why not build and run the MAUI project?

authors: dstd michaldivis

repo: michaldivis/band-tracker-app


text:
AOS not working when scrolls is triggered by a tags

This is:

Question

I use A tags that has its href set to a specific element in my html. So what should happen is, when I click on the A tag "About" the page should scroll down to that element and then trigger all the animations.
What happens now is, the page scrolls down to the About section but the animations never triggers.
So my question is, is there a way to trigger the animations when using the a tags in this way?

What is the data-also-anchor-placement value set to?

authors: BraydenTW Jonathandah

repo: michalsnik/aos


text:
Overlay will not show over some full-screen games on specific computers

The overlay engine generally works very well but on some specific computers, the overlay will not show over some games when the game is in full-screen mode.
It will show over the same game on most other computers and will show over the game if it is in windowed mode.
I can reproduce this issue consistently using the Lenovo Flex 2 - 15 laptop on Windows 10 running Rocket League from Steam and the sample project.

Hey,
it's not possible to display a window on top of the fullscreen application.
They always need to be in windowed mode.
By it's not possible i mean it's not really intended. Some windows like the TaskManager and Toast Notifications have this ability in the latest Windows 10 version. I did not had enough time to prove it but it looks like only special windows are allowed to do this.

Thanks for the reply.
Do you know how discord or steam do their overlays? It seems they always show over the game.
Do they inject their overlays into games?

Yes. Discord injects their overlay using SetWindowsHooksEx i think and steam games are normally loading it i guess.

Thanks for the info. I'll close the issue here then.

authors: dragoonm michel-pi


text:
🛑 redmine.cta-observatory.org is down

In ca5b93e, redmine.cta-observatory.org (https://redmine.cta-observatory.org) was down:

HTTP code: 503
Response time: 1541 ms

Resolved: redmine.cta-observatory.org is back up in 87ea66c after 6 minutes.

repo: michelangelobottura/ctaoit-upptime


text:
[BUG] env crashed: cannot append two different types (map, string)

Describe the bug
import "github.com/micro/go-micro/v2/config/source/env"
/*
I have 2 built-in sys env variables in win10, they are:
userdomain=my_pc_name
userdomain_roamingprofile=my_pc_name
*/

What are you trying to do?
I was trying to load the environment variables from my windows 10
What did you expect to happen?
Env variables should get loaded
What happens instead?
It will throw an error when processing the 2nd variable userdomain_roamingprofile:
cannot append two different types (map, string)
How to reproduce the bug:

If possible, please include a minimal code snippet here.
line #52 in   github.com/micro/go-micro/v2/config/source/env/env.go
	if err := mergo.Map(&changes, tmp); err != nil {
		return nil, err
	}

Note:
&changes already have one key value pair: [userdomain] -> my_pc_name
when trying to merge the 2nd one like [userdomain] -> [ [roamingprofile] -> my_pc_name ] into
the first one,
it will throw the generic error because it would not be able to merge [map[string]interface{}] into
map[string]string
Go Version: please paste go version output here
github.com/micro/go-micro/v2 v2.4.0
go version go1.14 windows/amd64

not easy to handle this issue. we can discard the key userdomain and keep userdomain_roamingprofile, then the result is
"userdomain": {
	"roamingprofile":       "my_pc_name"
},

or the other way
"userdomain": {
        "_v": "my_pc_name",
	"roamingprofile":       "my_pc_name"
},

@x1nchen I see this behaviour only with the latest version, 0.3.9 of mergo. If you stick with the one per the go-micro go.mod file which is 0.3.8 it will not throw an error.

Closing as resolved based on mergo version.

repo: micro/go-micro


text:
fix spell check : initialise -->initialize

fix spell check : initialise -->initialize

Its not a spelling mistake. Its english versus US pronunciation

authors: asim crazybber


text:
Run manual prevalence update without county-level canada data

Prevalence updates have been failing since 4/30 due to a validation error relating to Canada county-level data. I'm not entirely sure how to fix the validation error, so this prevalence update was run without that data at all -- the idea being that having most of the data up to date is better than having all of the data out of date.

Unfortunately, this does take Canada prevalence from lower-than-it-probably-is to zero, which is going to give false assurance.  Of course right now we're giving the whole world false assurance with prevalence numbers that often way lower than they ought to be, so one could argue it's better than the status quo.
I'd suggest using  the manual procedure I laid out in https://github.com/microCOVID/microCOVID/pull/1444#issuecomment-1132795890.  If you want, I can push up a PR using that procedure alone - #1444 combines the procedure with the warning code in #1437

@apiology where are you seeing the canada prevalence data as zero?
It looks to me like the result of commenting out the county-level data is that the microcovid website simply shows country and province as selectable options for canada, and doesn't offer the option to select a county:

https://deploy-preview-1447--microcov.netlify.app/
FYI I've pinged @beshaya (one of the main maintainers at this point) to take a look at this and the other PRs. I don't have authorization to merge.

@justinhaaheim: Ah!  I was probably making a bad assumption that this was the only data source for Canada--my apologies.  Given that, I should adjust my procedure accordingly in #1444.

authors: apiology justinhaaheim

repo: microCOVID/microCOVID


text:
Updating the micro:bits slows connection with bluetooth

on wednesday (15/05/24) a set og micro:bits (V. 2.21) were updated with the latest firmware from the micro:bit developer community page (Interface 0257). When updating the firmware and downloading the ml-machine program onto the micro:bit, no issues were identified. Connecting the micro:bit through Bluetooth works fine for the first couple of steps - you can draw the pattern and pick it out in the port selector. However, it then attempts to connect for a very long period of time (several minutes).
Upon rolling back to a previous firmware version, no issues were identified other than the page requesting an update of the micro:bit firmware. The ml-machine system worked fine upon ignoring the update request.

Thank you for the report, I will investigate the issue, this was using the ml-machine.org website, right?

Yes, only the ml-machine.org page

The code that causes the broken firmware prompt is the following
function onFoundUsbDevice() {
    Microbits.getLinkedFriendlyName()
      .then(friendlyName => {
        ....
      })
      .catch((e: Error) => {
        // Couldn't find name. Set to manual transfer progress instead
        if (e.message.includes('No valid interfaces found')) {
          // Edge case, caused by a bad micro:bit firmware
          $connectionDialogState.connectionState = ConnectDialogStates.BAD_FIRMWARE;
        } else {
          $connectionDialogState.connectionState = ConnectDialogStates.MANUAL_TUTORIAL;
        }
      });
  }

which would only happen during the WebUSB flashing process.
The other prompt is when our own micro:bit program is outdated, which it determines by self-identifying versions via UART messages. The only way for this prompt to reappear is if the program(our .hex) has been downgraded to a previous version (or it's the case where the identification message fails to appear after connecting, which will be resolved in the future)
So unless both the firmware and our program has been downgraded, the outdated program prompt is actually unrelated to this case.
However I do not have a 2.21 microbit to test this with. Using the 0257 firmware on my 2.20, I was unable to replicate this issue. @Karlo-Emilo do you have a 2.21 micro:bit?
From what I can gather, we need to test a 2.21 microbit, with the 0257 firmware. In this case, we should, from my understanding be able to flash the hex, but the connection is sluggish. Then downgrading to 256 should solve the issue without flashing our microbit program again.
Note: The 257 firmware should work with both 2.20 and 2.21, but the 256 version isn't intended for 2.20, so if this is the case, we might need to investigate further

@r59q, you can find a micro:bit v2.21 on my desk (apparently in a goodie bag). Will you be able to pick it up there?

@r59q, you can find a micro:bit v2.21 on my desk (apparently in a goodie bag). Will you be able to pick it up there?

I will thanks 👍

I have tried both downgrading and updating the microbit firmware, used previous versions of our micro:bit program, using the 2.21 micro:bit and i couldn't seem to replicate the issue. I will keep this open for a little while, but i have the feeling that the issue isn't on our side. At least this didn't seem to be an issue on chrome for macos nor chromium for linux

Closing, can't replicate

authors: Karlo-Emilo bubblebreak r59q

repo: microbit-foundation/cctd-ml-machine


text:
fix: fix file permissions (#104)

Closes #104

why 502?
If I understand correctly, 493 is actually 755 permission that it should be written as 0o755

It appears to fix this error,

but it doesn't make sense since 502 is 766 which doesn't actually have execute permissions. Maybe it should just be changed to 0o777 (511)?

What's your environment?

Can you deploy your fork that contains the change?
I just setup 0o755 as value

Pull Request Test Coverage Report for Build 2634926571

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

Totals

Change from base Build 2326929912:
0.0%

Covered Lines:
74

Relevant Lines:
74

💛  - Coveralls

The issue appears to be fixed

authors: Kikobeats William5553 coveralls

repo: microlinkhq/youtube-dl-exec


text:
fix: replace is-number dep with a one-liner

This PR replaves is-number package with a one-liner with identical code. It passes all the tests (npm run test).
This tiny change saves 440GB weekly traffic:
Package size report
===================

Package info for "to-regex-range@5.0.1": 33 kB
  Released: 2019-04-07 06:04:37.03 +0000 UTC (277w2d ago)
  Downloads last week: 43,837,006
  Estimated traffic last week: 1.5 TB

Removed dependencies:
  - is-number@7.0.0: 10 kB (30.06%)
    Downloads last week: 43,875,245
    Downloads last week from "to-regex-range@5.0.1": 43,837,006 (99.91%)
    Estimated traffic last week: 440 GB
    Estimated traffic from "to-regex-range@5.0.1": 440 GB (99.91%)

Estimated package size: 33 kB → 23 kB (69.94%)
Estimated traffic over a week: 1.5 TB → 1.0 TB (440 GB saved)

Another option is using typeof min === 'number' but I need to investigate whether anybody is supplying string-as-number input for this lib

Great job

but I need to investigate whether anybody is supplying string-as-number input for this lib

It's almost always going to be a string. This library was created to use with parsed values.
Does this pass all of the is-number unit tests?

Similar PR opened two years ago and closed by @jonschlinkert
You are single handedly contributing to the climate change for two years.

but I need to investigate whether anybody is supplying string-as-number input for this lib

It's almost always going to be a string. This library was created to use with parsed values.
Does this pass all of the is-number unit tests?

I haven't tried it against is-number test suite but instead ran tests for this lib locally. in case its mostly expecting string input, I will not replace it with typeof

You are single handedly contributing to the climate change for two years.

This PR and this entire way of thinking is a waste of time and energy.

guys let's be nice, the intent of this PR is to reduce network bandwidth because npm ships stuff as tarballs and reduce supply chain / dependency graph (it takes time to parse it), I have no political or any other reasons for this and don't approve of insulting people
no need to be rude to each other

Does this pass all of the is-number unit tests?

happy to report that yes, it does:
  is a number
    ✓ 255 should be a number
    ✓ 5000 should be a number
    ✓ 0 should be a number
    ✓ 0.1 should be a number
    ✓ -0.1 should be a number
    ✓ -1.1 should be a number
    ✓ 37 should be a number
    ✓ 3.14 should be a number
    ✓ 1 should be a number
    ✓ 1.1 should be a number
    ✓ 10 should be a number
    ✓ 10.1 should be a number
    ✓ 100 should be a number
    ✓ -100 should be a number
    ✓ "0.1" should be a number
    ✓ "-0.1" should be a number
    ✓ "-1.1" should be a number
    ✓ "0" should be a number
    ✓ "012" should be a number
    ✓ "0xff" should be a number
    ✓ "1" should be a number
    ✓ "1.1" should be a number
    ✓ "10" should be a number
    ✓ "10.10" should be a number
    ✓ "100" should be a number
    ✓ "5e3" should be a number
    ✓ "   56\r\n  " should be a number
    ✓ 0.6931471805599453 should be a number
    ✓ 12 should be a number
    ✓ 12 should be a number
    ✓ 1 should be a number
    ✓ 0 should be a number
    ✓ 1.5707963267948966 should be a number
    ✓ 0.7853981633974483 should be a number
    ✓ 0.4636476090008061 should be a number
    ✓ 1 should be a number
    ✓ 0.5403023058681398 should be a number
    ✓ 2.718281828459045 should be a number
    ✓ 2.718281828459045 should be a number
    ✓ 1 should be a number
    ✓ 2.302585092994046 should be a number
    ✓ 0.6931471805599453 should be a number
    ✓ 0 should be a number
    ✓ 0.4342944819032518 should be a number
    ✓ 1.4426950408889634 should be a number
    ✓ 2 should be a number
    ✓ 1 should be a number
    ✓ 3.141592653589793 should be a number
    ✓ 1 should be a number
    ✓ 3125 should be a number
    ✓ 0.35587131058675947 should be a number
    ✓ 1 should be a number
    ✓ 0.8414709848078965 should be a number
    ✓ 1 should be a number
    ✓ 0.7071067811865476 should be a number
    ✓ 1.4142135623730951 should be a number
    ✓ 1.5574077246549023 should be a number
    ✓ 1.7976931348623157e+308 should be a number
    ✓ 5e-324 should be a number
    ✓ "0.0" should be a number
    ✓ "0x0" should be a number
    ✓ "0e+5" should be a number
    ✓ "000" should be a number
    ✓ "0.0e-5" should be a number
    ✓ "0.0E5" should be a number
    ✓ 0 should be a number
    ✓ 1 should be a number
    ✓ 3.14 should be a number
    ✓ 37 should be a number
    ✓ 5 should be a number
    ✓ 0 should be a number
    ✓ 0 should be a number
    ✓ 0.6931471805599453 should be a number
    ✓ 1 should be a number
    ✓ 0 should be a number
    ✓ 1722364853207 should be a number

  is not a number
    ✓ "   " should not be a number
    ✓ "\r\n\t" should not be a number
    ✓ "" should not be a number
    ✓ "" should not be a number
    ✓ "3a" should not be a number
    ✓ "abc" should not be a number
    ✓ "false" should not be a number
    ✓ "null" should not be a number
    ✓ "true" should not be a number
    ✓ "undefined" should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ {} should not be a number
    ✓ [1,2,3] should not be a number
    ✓ [1] should not be a number
    ✓ [] should not be a number
    ✓ true should not be a number
    ✓ false should not be a number
    ✓ null should not be a number
    ✓ undefined should not be a number
    ✓ null should not be a number
    ✓ null should not be a number
    ✓ undefined should not be a number
    ✓ null should not be a number
    ✓ "2024-07-30T18:40:53.207Z" should not be a number
    ✓ null should not be a number
    ✓ undefined should not be a number
    ✓ {} should not be a number

  111 passing (9ms)

guys let's be nice, the intent of this PR is to reduce network bandwidth because npm ships stuff as tarballs (and not source directly) and to reduce supply chain / dependency graph

NPM doesn't bundle your code. NPM is a package manager. This is like saying you should remove your README because it saves bandwidth.

guys let's be nice, the intent of this PR is to reduce network bandwidth because npm ships stuff as tarballs (and not source directly) and to reduce supply chain / dependency graph

NPM doesn't bundle your code. NPM is a package manager. This is like saying you should remove your README because it saves bandwidth.

npm doesn't bundle it, but it downloads the whole tarball, which wastes bandwidth and slows down CI during installs. In a scale of one package it might not be noticeable, but when you got a lot of them (and you usually do) it slows things down monumentally

but it downloads the whole tarball

This is how development works. Nothing is optimized for production.

but when you got a lot of them (and you usually do) it slows things down monumentally

I'd rather have builds that take a little longer with code that works, than fast builds that have shitty code.

but it downloads the whole tarball

This is how development works. Nothing is optimized for production.

but when you got a lot of them (and you usually do) it slows things down monumentally

I'd rather have builds that take a little longer with code that works, than fast builds with shitty code.

I don't think it can be answered as simply as "this PR introduces shitty code". As demonstrated by the above post by @talentlessguy, the is-number test suite passes without any error. This PR is about taking an easy-to-make decision: reduce bandwith usage at the cost of litteraly nothing.

but it downloads the whole tarball

This is how development works. Nothing is optimized for production.

but when you got a lot of them (and you usually do) it slows things down monumentally

I'd rather have builds that take a little longer with code that works, than fast builds with shitty code.

but it downloads the whole tarball

This is how development works. Nothing is optimized for production.

but when you got a lot of them (and you usually do) it slows things down monumentally

I'd rather have builds that take a little longer with code that works, than fast builds with shitty code.

...this is the same code as in is-number.... wtf

but it downloads the whole tarball

This is how development works. Nothing is optimized for production.

but when you got a lot of them (and you usually do) it slows things down monumentally

I'd rather have builds that take a little longer with code that works, than fast builds with shitty code.

"shitty code" isn't a productive or substantive way to describe the changes in this, or any PR. If you have an issue with it, please describe it.

If you have an issue with it, please describe it.

I have a couple of issues with this:

I was about to close it as a duplicate because in another PR, it was already stated that reducing dependencies alone is not a goal in this project. And that doing so, would cause even more work downstream.

The original PR did not copy all of is-number, which may cause unforeseen issues later. There's a reason that is-number has been iterated on and refactored to be stable and reliable. By inlining that code (even if it is small), puts more maintenance burden on this library. If a bug is found and fixed in is-number, then this library and any other dependents get the benefit of that fix. Without using is-number as a dependency, we'd have to do more work to monitor the source dependency and update the code here.

As for bundle size... I agree with @jonschlinkert that your final build step can produce a compact bundled version of your application. Also, for CI builds, that bandwidth is most likely between (or even within) data centers.

I've merged it.

If a bug is found and fixed in is-number

Something as simple as is-number should not have a separate library.
Looking at the code, it's also misleading. It's not is-number. It is (js integer) number or a string which looks like js integer.

just to add my two cents - its unlikely we'd do such a breaking change here, but i think really this library should accept strictly numbers and numbers-as-strings (things which Number(str) will suffice)
more for anyone seeing this and thinking of copying the code to other projects - maybe don't. just assert that typeof n === 'number' (and throw if it isn't) or, if you must support strings, something like typeof n === 'number' || !Number.isNaN(Number(n)).

also the fact that is-number doesn't even accept bigints which are (gasp) numbers. i feel like the library's purpose was for a pre-es6 era when nearly everything needed a utility library, which is not the case anymore

fwiw this change doesn't accept bigints either, only numbers and strings.

@ljharb the original library doesn't support BigInts either, nor to-regex-range itself. I didn't add any regressions

i'm aware, i was just pointing out a example to my point that such a package is obsolete in the modern ecosystem

the fact that packages like this even exists is everything wrong with the javascript ecosystem

I think this thread better be locked before it becomes a place for arguments online

I think this thread better be locked before it becomes a place for arguments online

I think you should mind your own business and let people talk

LGTM LOL

Stop coding, keep fighting 🍿

Since I'm still getting notifications about this and other packages with is-number...

i think really this library should accept strictly numbers and numbers-as-strings (things which Number(str) will suffice)

That's why is-number was used! The fact that we even need to discuss it is more than enough justification to use a dependency for it.
Dependencies can REDUCE bundle size

Package size is only relevant during development. Who cares if you save 20kb during dev? It's insane that people care about this, while using bloated 2Gb (literally) monstrosities like Gatsby without a care in the world.
Using dependencies is more likely to reduce bundle size for end users. The bundled size of is-number is 411 bytes before it's minified. Every time someone does a PR like this one, we will obviously geometrically increase bundle sizes.

If you want to cut down on package size, go do PRs to remove tests, fixtures, benchmarks, docs, and any other garbage that ends up in node_modules but should have been excluded from the published package. Then, do PRs to use dependencies instead of inlined code for anything that's written more than once throughout the entire dependency tree. I'll say that again: do the exact opposite of what this PR does. Every time someone does a PR like this one, you are increasing the odds that the bundle size will geometrically grow over time. That is a mathematically provable.
Honestly things like AI autocompletion make it easier and easier to just inline something instead of using dependencies, or at least organizing that code in a central place, so it can be imported by other modules. But that's not a good thing. We're going to have increasingly bloated code, with inconsistent implementations of the same thing duplicated multiple times in one tree. But hopefully AI will solve that too...

authors: 43081j SuperchupuDev VigoTes churchianity doowb icymanred ineanto jonschlinkert ljharb mrlkn paulmillr peronecode talentlessguy

repo: micromatch/to-regex-range


text:
Exception: Cannot add task 'testNativeImage'

Expected Behavior
No exception
Actual Behaviour
FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring project 'EXAMPLE'.

Cannot add task 'testNativeImage' as a task with that name already exists.

Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project 'EXAMPLE'.
at org.gradle.configuration.project.LifecycleProjectEvaluator.wrapException(LifecycleProjectEvaluator.java:75)
at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:68)
...
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
Caused by: org.gradle.api.internal.tasks.DefaultTaskContainer$DuplicateTaskException: Cannot add task 'testNativeImage' as a task with that name already exists.
at org.gradle.api.internal.tasks.DefaultTaskContainer.failOnDuplicateTask(DefaultTaskContainer.java:257)
at org.gradle.api.internal.tasks.DefaultTaskContainer.registerTask(DefaultTaskContainer.java:398)
at org.gradle.api.internal.tasks.DefaultTaskContainer.register(DefaultTaskContainer.java:375)
at io.micronaut.gradle.graalvm.MicronautGraalPlugin.registerTestAgainstNativeImageTask(MicronautGraalPlugin.java:84)
at io.micronaut.gradle.graalvm.MicronautGraalPlugin.lambda$null$6(MicronautGraalPlugin.java:73)
at io.micronaut.gradle.graalvm.MicronautGraalPlugin.lambda$null$7(MicronautGraalPlugin.java:71)

Steps To Reproduce
A complex project with the following in it's root build.gradle.kts:
subprojects {
  tasks {
        withType<Test> {
            failFast = true
            testLogging {
                events = setOf(org.gradle.api.tasks.testing.logging.TestLogEvent.FAILED)
                // NOTE: Uncomment this when you need a lot of output:
                // showStandardStreams = true
                exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
            }
        }
  }
}

Environment Information
No response
Example Application
No response
Version
3.1.1

Hi @melix, @sdelamo
Same issue here if I try to migrate to 3.0.0 plugin.
It seems to be fixed if I comment the following in settings.gradle:
/*
buildscript {
    repositories {
        maven {
            url 'https://plugins.gradle.org/m2/'
        }
    }
    dependencies {
        classpath 'io.alcide:gradle-semantic-build-versioning:4.2.1'
    }
}

apply plugin: 'io.alcide.gradle-semantic-build-versioning'
*/
rootProject.name="ns4kafka"
include 'cli'
include 'api'

Project is available here : https://github.com/michelin/ns4kafka

authors: saschpe twobeeb


text:
Upgrade docker plugin to 8.0.0

Upgrade Docker plugin to improve M1 Mac support #520

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

This is blocked by the Micronaut 4 release.

Superceded by #514

Hi, I'm facing the same issue you described in #520.
Is there any way around this until the fix is part of a new release?
Also, when can we expect the fix to be released?

authors: CLAassistant darylrobbins fhoner melix


text:
build: Micronaut Framework 4.0.0-M1

GitHub Actions sync

@melix this is attempting to resolve platform with micronaut version  4.0.0-M1

Could not find io.micronaut.platform:micronaut-platform:4.0.0-M1.

What should we do? We could workaround not including docs-examples modules and releasing the module.

I have pushed a workaround. Basically we have an inconsistency now, because our build plugins assume that the version of micronaut is for micronaut-core, but the Gradle plugins (righteously) assume that it's the platform version. The fact that it fails simply illustrates a problem with using the Gradle plugin for testing: what we use then is something which is designed for releases, not development: it makes use of the platform, which is the ultimate deliverable of a Micronaut release.
The workaround is simply to use a SNAPSHOT version of Micronaut in the tests, until we have a milestone release of the platform. However, there will most likely always be a mistmatch between the version of Micronaut that a module builds against (here M1) and the version that we can test against using the Gradle plugin (which is a platform, so released with older modules).

what we use then is something which is designed for releases, not development:

Yes, I agree. We should not use Micronaut Gradle Plugin in the projects. We only use them in a subset of repositories.

authors: melix sdelamo


text:
Groups on POJO constariants

Feature description
Hi,
I have problem with validator for DTO. My case is that I use DTO for two different cases (save and update) and I would like to skip one validator for update. I found out that I could use groups (https://docs.micronaut.io/3.8.0/guide/index.html#validationGroups). Unfortuneltly groups are only available for Property constarints. I would like to also have that possibility on POJO constraints.
Cheers!

I'm gonna sound kinda funny. I have that change localy but I cannot push on remote due 403 :(. I did CLA according to https://github.com/micronaut-projects/micronaut-validation/blob/master/CONTRIBUTING.md but still when I try push my branch on remote I got 403. Could somebody help with that?

repo: micronaut-projects/micronaut-validation


text:
xmlAttributeCollection

Hi,
trying to get the attribute list from an xml file, I use xmlAttributecollection but cannot get the list of attributes.
here is my code:
xmlNode: XmlNode;
xmlAttributeList: XmlAttributeCollection;
xmlAttribute: XmlAttribute;
xmlNodeList := pTableDATA.GetChildNodes();  (pTableDATA is an xmlFile as listed below)
                for i := 1 to xmlNodeList.Count do begin

                    xmlNodeList.Get(i, xmlNode);
                    xmlElement2 := xmlelement.create('Attributes');
                    xmlElement2.add(xmlNode);
                    xmlAttributeList := xmlElement2.Attributes();

                    Message('xmlAttributeList.Count ' + Format(xmlAttributeList.Count));

the message shows value of 0, here is the xml file:

I have the same issue, once I do VarXmlNodeList.Get(0, VarXmlNode) I get an error message with "0".

@thloke ,why is this marked as a question? It seems a bug to me...

@angela2389 The Get() method on XmlNodeList is 1-based like most of AL. It is also stated in the documentation https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/xmlnodelist/xmlnodelist-get-method.
The error-message is lacking and will be updated.

@abouraoui The code sample does exactly what it should.
xmlElement2 := xmlelement.create('Attributes');
Creates a new element named 'Attribute' e.g.
xmlElement2.add(xmlNode)
Add the content of xmlNode to the newly created element e.g. Content from XmlNode
xmlAttributeList := xmlElement2.Attributes();
Gets a list of attributes on the  element, which is empty and hence have Count = 0.

authors: abouraoui angela2389 esbenk

repo: microsoft/AL


text:
Error occured during usind dotnet variable on ONprem

Processing of message 'al/createPackage' failed with error: 'One or more errors occurred. (Object reference not set to an instance of an object.)'
Details:
System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.)
---> System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Dynamics.Nav.CodeAnalysis.DotNet.Cecil.CecilExtensions.ImportTypeDefinition(ModuleDefinition module, Type t) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\DotNet\Cecil\CecilExtensions.cs:line 39
at Microsoft.Dynamics.Nav.CodeAnalysis.DotNet.Cecil.CecilDotNetTypeInfoProvider..ctor(ReaderParameters moduleReaderParameters) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\DotNet\Cecil\CecilDotNetTypeInfoProvider.cs:line 159
at Microsoft.Dynamics.Nav.CodeAnalysis.DotNet.Cecil.CecilDotNetTypeInfoProvider.Create(ReaderParameters moduleReaderParameters) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\DotNet\Cecil\CecilDotNetTypeInfoProvider.cs:line 120
at Microsoft.Dynamics.Nav.CodeAnalysis.DotNet.Cecil.CecilDotNetTypeLoader.get_TypeInfoProvider() in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\DotNet\Cecil\CecilDotNetTypeLoader.cs:line 52
at Microsoft.Dynamics.Nav.CodeAnalysis.DotNet.Cecil.CecilDotNetTypeLoader.b__14_0(String assemblyName) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\DotNet\Cecil\CecilDotNetTypeLoader.cs:line 69
at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ReferenceDotNetAssemblyDeclarationSymbol.GetAssemblyInfoLazy() in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Reference\ReferenceDotNetAssemblyDeclarationSymbol.cs:line 76
at System.Lazy1.PublicationOnlyViaFactory(LazyHelper initializer)    at System.Lazy1.CreateValue()
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ReferenceDotNetTypeDeclarationSymbol.GetDotNetTypeSymbolLazy(DotNetTypeDeclarationDefinition typeDefinition) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Reference\ReferenceDotNetTypeDeclarationSymbol.cs:line 80
at System.Lazy1.PublicationOnlyViaFactory(LazyHelper initializer)    at System.Lazy1.CreateValue()
at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.ModuleSymbol.GetObjectSymbolByName(ImmutableDictionary2 objectsByName, SymbolKind kind, String name) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\ModuleSymbol.cs:line 386    at Microsoft.Dynamics.Nav.CodeAnalysis.ReferenceManager.ResolveDotNetObjectSymbolsByName(ModuleSymbol referencingModule, String name) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\SymbolReference\ReferenceManager.cs:line 370    at Microsoft.Dynamics.Nav.CodeAnalysis.ReferenceManager.GetObjectSymbolsByNameAcrossModules(ModuleSymbol referencingModule, SymbolKind kind, String name) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\SymbolReference\ReferenceManager.cs:line 330    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.GetApplicationObjectTypeSymbols(ObjectNameOrIdSyntax objectNameOrId, SymbolKind kind) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Symbols.cs:line 321    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.GetSubtypedDataType(SubtypedDataTypeSyntax syntax, SymbolKind kind, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Symbols.cs:line 297    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindSubTypedDataType(Symbol ownerSymbol, SubtypedDataTypeSyntax syntax, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Symbols.cs:line 292    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindType(Symbol ownerSymbol, DataTypeSyntax syntax, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Symbols.cs:line 71    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindVariableOrParameterType(Symbol ownerSymbol, TypeReferenceBaseSyntax syntax, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Symbols.cs:line 490    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindVariableType(Symbol ownerSymbol, TypeReferenceBaseSyntax syntax, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Symbols.cs:line 420    at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceVariableSymbol.LazyGetType() in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceVariableSymbol.cs:line 107    at Microsoft.Dynamics.Nav.CodeAnalysis.Symbols.SourceVariableSymbol.get_Type() in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Symbols\Source\SourceVariableSymbol.cs:line 60    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindNonMethod(NameSyntax node, Symbol symbol, Boolean isError, BoundExpression receiver) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Expressions.cs:line 1312    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindIdentifier(IdentifierNameSyntax node, Boolean invoked, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Expressions.cs:line 976    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindExpressionInternal(ExpressionSyntax node, DiagnosticBag diagnostics, Boolean invoked, Boolean isStatement) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Expressions.cs:line 73    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindArgumentsAndNames(SeparatedSyntaxList1 arguments, AnalyzedArguments result) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Expressions.cs:line 1068
at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindInvocationExpression(InvocationExpressionSyntax node, DiagnosticBag diagnostics, Boolean isStatement) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Invocation.cs:line 44
at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindExpressionInternal(ExpressionSyntax node, DiagnosticBag diagnostics, Boolean invoked, Boolean isStatement) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Expressions.cs:line 73
at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindAssignmentStatement(AssignmentStatementSyntax node, DiagnosticBag diagnostics) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Statements.cs:line 352
at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindStatement(StatementSyntax node, DiagnosticBag diagnostics) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Statements.cs:line 122
at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindStatements(SyntaxList1 syntaxStatements, DiagnosticBag diagnostics, Binder binder) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Statements.cs:line 51    at Microsoft.Dynamics.Nav.CodeAnalysis.Binder.BindBlock(BlockSyntax node, DiagnosticBag diagnostics, Binder blockBinder) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Binder\Binder_Statements.cs:line 33    at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.BindMethodBody(MethodSymbol method, DiagnosticBag diagnostics) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 510    at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.CompileMethod(MethodSymbol methodSymbol) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 485    at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.CompileMembers(ContainerSymbol containingType, IDictionary2 emittedMethodsDictionary) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 311
at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.CompileObject(ObjectTypeSymbol containingType) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 173
at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.VisitObjectType(ObjectTypeSymbol symbol) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 159
at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.<>c__DisplayClass11_0.b__0(Symbol memberSymbol) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 135
--- End of inner exception stack trace ---
at Microsoft.Dynamics.Nav.CodeAnalysis.MethodCompiler.CompileModule(ModuleSymbol moduleSymbol) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compiler\MethodCompiler.cs:line 140
at Microsoft.Dynamics.Nav.CodeAnalysis.Compilation.CompileImpl(ModuleBuilder moduleBuilder, Boolean emittingPdb, DiagnosticBag diagnostics, Predicate1 filterOpt, Predicate1 radCompilationFilter, CancellationToken cancellationToken) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compilation\Compilation.cs:line 1046
at Microsoft.Dynamics.Nav.CodeAnalysis.Compilation.Compile(ModuleBuilder moduleBuilder, Boolean emittingPdb, DiagnosticBag diagnostics, Predicate1 filterOpt, Predicate1 radCompilationFilter, CancellationToken cancellationToken) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\Compilation\Compilation.cs:line 1009
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.PackageTheModule(Compilation compilation, CompilerTextWriter consoleOutput, CancellationToken cancellationToken, ErrorLogger errorLogger, AnalyzerDriver analyzerDriver, Predicate1 filterOpt, Predicate1 radCompilationFilter) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 794
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.RunCoreImpl(CompilerTextWriter consoleOutput, ErrorLogger errorLogger, Compilation compilation, AnalyzerDriver analyzerDriver, IEnumerable1 analyzerExceptionDiagnostics, IEnumerable1 additionalTextFiles, CancellationToken cancellationToken) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 551
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.RunCore(CompilerTextWriter consoleOutput, ErrorLogger errorLogger, ITelemetryService telemetryService, CancellationToken cancellationToken) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 500
at Microsoft.Dynamics.Nav.CodeAnalysis.CommandLine.CommonCompiler.Run(CompilerTextWriter consoleOutput, ITelemetryService telemetryService, CancellationToken cancellationToken) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.CodeAnalysis\CommandLine\CommonCompiler.cs:line 357
at Microsoft.Dynamics.Nav.EditorServices.Protocol.Utility.ActiveProjectBuilder.Build(VsCodeWorkspace workspace, Project builtProject, StreamingTextWriter outputWriter, Boolean isRad, IList1 args, CancellationToken cancellationToken, IResponseQueue responseQueue, ITelemetryService telemetryService, Boolean forceBuild, IList1 outputFiles, CustomTelemetryEvent telemetryEvent) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\Utility\ActiveProjectBuilder.cs:line 207
at Microsoft.Dynamics.Nav.EditorServices.Protocol.Utility.ActiveProjectBuilder.BuildWorkspaceAsync(CancellationToken cancellationToken, IFileSystem fileSystem, VsCodeWorkspace workspace, String projectDir, IList1 args, Boolean buildDependencyPackage, Boolean isRad, IResponseQueue responseQueue, Boolean forceBuildOfAllDependecnies, CustomTelemetryEvent telemetryEvent, ITelemetryService telemetryService) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\Utility\ActiveProjectBuilder.cs:line 105    at Microsoft.Dynamics.Nav.EditorServices.Protocol.LanguageServer.Extensions.CreatePackageRequestHandler.HandleAsync(CreatePackageRequest request, Int32 requestId, CancellationToken cancellationToken) in D:\a\_work\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\LanguageServer\Extensions\CreatePackageRequestHandler.cs:line 53    at Microsoft.Dynamics.Nav.EditorServices.Protocol.MessageProtocol.RequestHandlerBase1.HandleAsync(JToken requestContents, Int32 requestId, CancellationToken cancellationToken) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\MessageProtocol\RequestHandlerBase.cs:line 103
at Microsoft.Dynamics.Nav.EditorServices.Protocol.RequestRegistry.Process(Message message) in D:\a_work\1\s\source\Prod\Microsoft.Dynamics.Nav.EditorServices.Protocol\Endpoints\RequestRegistry.cs:line 108

Can you provide some repro steps?

This issue has been closed because it needs more information and has not had recent activity. Please open a new issue if you believe this has not been resolved and reference the current issue.


text:
[Event Request] Codeunit 99000774 "Calculate Routing Line" – New Event “OnBeforeCalcRoutingLineBack”

Hi
Could we please have a new publisher “OnBeforeCalcRoutingLineBack” in Function “CalcRoutingLineBack” in Codeunit 99000774 "Calculate Routing Line”, including a IsHandled pattern?
local procedure CalcRoutingLineBack(CalculateEndDate: Boolean)
var
    ProdOrderRoutingLine2: Record "Prod. Order Routing Line";
    ProdOrderRoutingLine3: Record "Prod. Order Routing Line";
    ConstrainedCapacity: Record "Capacity Constrained Resource";
    ParentWorkCenter: Record "Capacity Constrained Resource";
    TmpProdOrderRtngLine: Record "Prod. Order Routing Line" temporary;
    SendAheadLotSize: Decimal;
    ParentIsConstrained: Boolean;
    ResourceIsConstrained: Boolean;
    // Start new Code
    IsHandled: Boolean;
    // End new Code
begin
    // Start new Code
    IsHandled := false;
    OnBeforeCalcRoutingLineBack(ProdOrderRoutingLine, CalculateEndDate, IsHandled);
    if IsHandled then
        exit;
    // End new Code

    CalendarEntry.SetRange(Date, 0D, ProdOrderRoutingLine."Ending Date");

    ProdEndingTime := ProdOrderRoutingLine."Ending Time";
    ProdEndingDate := ProdOrderRoutingLine."Ending Date";
    ProdStartingTime := ProdOrderRoutingLine."Ending Time";
    ProdStartingDate := ProdOrderRoutingLine."Ending Date";

    FirstEntry := true;
    ...

// Start new Code
[IntegrationEvent(false, false)]
local procedure OnBeforeCalcRoutingLineBack(var ProdOrderRoutingLine: Record "Prod. Order Routing Line"; CalculateEndDate: Boolean; var IsHandled: Boolean)
begin
end;
// End new Code

Thanks, Anders

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz andersnordmann

repo: microsoft/ALAppExtensions


text:
[Event Request] Table 38 "Purchase Header" - OnValidatePayToVendorNoOnBeforeGetPayToVend

Hello. In table 38 purchase Header, in the field 4 "Pay-to Vendor No.", in trigger OnValidate, I would like to make a test in the event publisher OnValidatePayToVendorNoOnBeforeGetPayToVend on Rec and xRec. If this test is not passed, I would like to exit the OnValidate trigger. To do so, I would need xRec and a IsHandled flag in the event publisher, like this :
            OnValidatePayToVendorNoOnBeforeGetPayToVend(Rec, xRec, IsHandled);
            if IsHandled then
                exit;
            GetVend("Pay-to Vendor No.");
            CheckBlockedVendOnDocs(Vend);
            Vend.TestField("Vendor Posting Group");
            PostingSetupMgt.CheckVendPostingGroupPayablesAccount("Vendor Posting Group");
            OnAfterCheckPayToVendor(Rec, xRec, Vend);

With this event integration :
[IntegrationEvent(false, false)]
local procedure OnValidatePayToVendorNoOnBeforeGetPayToVend(var PurchaseHeader: Record "Purchase Header"; xPurchaseHeader : record "Purchase Header"; var IsHandled : Boolean)
begin
end;

Do you think it could be possible ?
Thank you for your work.

Can you use the existing event OnBeforeValidatePayToVendorNo?

Indeed, I can and I will. Thank you for your help.

authors: Magicrevette StanPesotskiy


text:
[Event Request] codeunit 6500 "Item Tracking Management" - OnBeforeSyncBothExistingTrackingSpecification

We would like to add a new event OnBeforeSyncBothExistingTrackingSpecification in the following procedure:
local procedure SynchronizeItemTracking2(var FromReservEntry: Record "Reservation Entry"; ToRowID: Text[250]; DialogText: Text[250])

.
.
.
if TempTrkgSpec1.FindSet then
repeat
TempTrkgSpec2.SetTrackingFilterFromSpec(TempTrkgSpec1);
if TempTrkgSpec2.FindFirst then begin
ShouldInsertTrkgSpec := TempTrkgSpec2."Quantity (Base)" * SignFactor2 <> TempTrkgSpec1."Quantity (Base)" * SignFactor1;
OnSynchronizeItemTracking2OnAfterCalcShouldInsertTrkgSpec(TempTrkgSpec1, TempTrkgSpec2, TempTrkgSpec3, SignFactor1, SignFactor2, ShouldInsertTrkgSpec);
if ShouldInsertTrkgSpec then begin
TempTrkgSpec3 := TempTrkgSpec2;
OnBeforeSyncBothExistingTrackingSpecification(TempTrkgSpec3, TempTrkgSpec1, TempTrkgSpec2); //A200F0000.Event
TempTrkgSpec3.Validate("Quantity (Base)",
(TempTrkgSpec1."Quantity (Base)" * SignFactor1 - TempTrkgSpec2."Quantity (Base)" * SignFactor2));
TempTrkgSpec3."Entry No." := LastEntryNo + 1;
TempTrkgSpec3.Insert();
end;
Event Signature:
[IntegrationEvent(false, false)]
local procedure OnBeforeSyncBothExistingTrackingSpecification(var TrackingSpecification3: Record "Tracking Specification"; TrackingSpecification1: Record "Tracking Specification"; TrackingSpecification2: Record "Tracking Specification")
begin
    //A200F0000.Event
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


text:
[Extensibility Enhancement] Table 5077 Segment Line Change Event OnBeforeFinishSegLineWizard

Hello. I would like to kindly ask to change the existing event OnBeforeFinishSegLineWizard in order to pass the Flag parameter and a Handler parameter.
Existing Code:
procedure FinishSegLineWizard(IsFinish: Boolean)
    var
        InteractionLogEntry: Record "Interaction Log Entry";
        SegManagement: Codeunit SegManagement;
        Send: Boolean;
        Flag: Boolean;
        HTMLAttachment: Boolean;
        HTMLContentBodyText: Text;
        CustomLayoutCode: Code[20];
    begin
        OnBeforeFinishSegLineWizard(Rec, IsFinish);

        HTMLAttachment := IsHTMLAttachment;
        Flag := false;
        if IsFinish then
            Flag := true
        else
            Flag := Confirm(Text007);

        if Flag then begin
                        ....
        end

[IntegrationEvent(false, false)]
    local procedure OnBeforeFinishSegLineWizard(var SegmentLine: Record "Segment Line"; IsFinish: Boolean)
    begin
    end;

procedure FinishSegLineWizard(IsFinish: Boolean)
    var
        InteractionLogEntry: Record "Interaction Log Entry";
        SegManagement: Codeunit SegManagement;
        Send: Boolean;
        Flag: Boolean;
        HTMLAttachment: Boolean;
        HTMLContentBodyText: Text;
        CustomLayoutCode: Code[20];
        IsHandled: Boolean;
    begin
        OnBeforeFinishSegLineWizard(Rec, IsFinish, Flag, IsHandled);   <---- CHANGE EVENT
        HTMLAttachment := IsHTMLAttachment;

        if not IsHandled then begin
            Flag := false;
            if IsFinish then
                Flag := true
            else
                Flag := Confirm(Text007);
        end;

        if Flag then begin
             ......
        end

[IntegrationEvent(false, false)]
    local procedure OnBeforeFinishSegLineWizard(var SegmentLine: Record "Segment Line"; IsFinish: Boolean; var Flag: Boolean; var IsHandled: Boolean)
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz akontos


text:
[Event Request] page 9249 "Analysis by Dimensions Matrix"

Dear ALAppExtensions team,
On behalve of 4PS I would like to request integration event 'OnBeforeInitDimValue' to be added to procedure 'InitDimValue' in page 9249 "Analysis by Dimensions Matrix".
local procedure InitDimValue(var DimensionCodeBuffer: Record "Dimension Code Buffer"; DimensionCode: Code[20]; DimensionFilter: Text)
var
    DimensionValue: Record "Dimension Value";
begin
    OnBeforeInitDimValue(DimensionValue); //**4PS.n
    if DimensionCode <> '' then begin
        DimensionValue.SetRange("Dimension Code", DimensionCode);
        if DimensionFilter <> '' then
            DimensionValue.SetFilter(Code, DimensionFilter);
        if DimensionValue.FindSet then
            repeat
                CopyDimValueToBuf(DimensionValue, DimensionCodeBuffer);
            until DimensionValue.Next() = 0;
    end;
end;

[IntegrationEvent(true, false)]
local procedure OnBeforeInitDimValue(var DimensionValue: Record "Dimension Value")
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz nvleeuwen


text:
[Event Request] codeunit 6620 "Copy Document Mgt." -  OnCheckItemAvailabilityOnBeforeSalesLineCheck

Can we please get the following event?
local procedure CheckItemAvailability(var ToSalesHeader: Record "Sales Header"; var ToSalesLine: Record "Sales Line")
var
    IsHandled: Boolean;
begin
    ...

    SetShipmentDateInLine(ToSalesHeader, ToSalesLine);
    //Event
    IsHandled := false;
    OnCheckItemAvailabilityOnBeforeSalesLineCheck(ToSalesHeader, ToSalesLine, HideDialog, IsHandled);
    if not IsHandled then
    //-Event
        if ItemCheckAvail.SalesLineCheck(ToSalesLine) then
            ItemCheckAvail.RaiseUpdateInterruptedError;
end;

[IntegrationEvent(false, false)]
local procedure OnCheckItemAvailabilityOnBeforeSalesLineCheck(var ToSalesHeader: Record "Sales Header"; var ToSalesLine: Record "Sales Line"; HideDialog: Boolean; var IsHandled: Boolean);
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.

authors: JesperSchulz pri-kise


text:
[PROTECTED VAR ACCESS] Access PrintDoc of report 296 "batch post sales orders"

Hi,
can you make the variable PrintDoc if report 296 "batch post sales orders" protected so we can use it in our report extension?
New Code:
var
        VATReportingDateMgt: Codeunit "VAT Reporting Date Mgt";
        Text003: Label 'The exchange rate associated with the new posting date on the sales header will apply to the sales lines.';
        [InDataSet]
        PrintDocVisible: Boolean;
        VATDateEnabled: Boolean;
        PostInvoiceEditable: Boolean;

    protected var
        ShipReq: Boolean;
        InvReq: Boolean;
        PostingDateReq, VATDateReq: Date;
        ReplacePostingDate, ReplaceVATDateReq: Boolean;
        ReplaceDocumentDate: Boolean;
        CalcInvDisc: Boolean;
        PrintDoc: Boolean;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10836.

authors: AlexCeg JesperSchulz


text:
Issue with Control Add-in in AL extension

I'm getting this follow Error, I was trying to use pingpong Addin in my Extension
Microsoft.Dynamics.Nav.Client.PingPong.PingPongAddIn;PublicKeyToken=31bf3856ad364e35, The page contains a control add-in that is not permitted. Contact your system administrator.
Here is my below code declaration of dotnet
dotnet
{
assembly("Microsoft.Dynamics.Nav.Client.PingPong")
{
type("Microsoft.Dynamics.Nav.Client.PingPong.PingPongAddIn";PingPongAddIn)
{
IsControlAddIn = true;
}
}
}
and here is my Addin Page.
page 50148 PingPongAddin
{
// version RG
PageType = CardPart;
UsageCategory = Lists;
Caption = 'PingPong';

layout
{
    area(content)
    {
        usercontrol(PingPongControl; PingPongAddin)
        {
            trigger Pong()
            begin
                Message('Pong received.');
            end;

            trigger AddInReady()
            begin
                Message('Ready');
            end;

        }
    }
}

actions
{
}

}
Here is my Screenshot as well. Anybody have any idea how to rectify this problem

This issue is a question. Please submit your questions on business central community  or on BC development yammer groups.


text:
Codeunit 10753; “SII Job Upload Pending Docs.”

Hi,
I am working on Microsoft Spanish localization objects, SII integration area.
In this codeunit SII Job Upload Pending Docs. they are 2 Microsoft standard event subscription
1.OnCustomerLedgerEntryCreated
2.OnDetailedCustomerLedgerEntryCreated
they will create SIIRequests, I want to skip this creation based on some conditional checking.
I need events here, please refer my attachments.

Thank you,

Please always put the full detailed signature of the requested events.
If you use AL code copied from VSCode instead of screenshots it will speed up the process of implementation.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

`OnBeforeCreateNewCustPmtRequest(DetailedCustLedgEntry; var IsHandled: Boolean)
If IsHandled then
Exit;
OnBeforeCreateNewRequest(CustLedgEntry; var IsHandled: Boolean)
If IsHandled then
Exit;

[IntegrationEvent(false, false)]
local procedure OnBeforeCreateNewCustPmtRequest(DetailedCustLedgEntry; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeCreateNewRequest(CustLedgEntry; var IsHandled: Boolean)
begin
end;`

Please always put the full detailed signature of the requested events.
If you use AL code copied from VSCode instead of screenshots it will

Hi StanPesotskiy,
I have attached screenshots from Vs code and secured codes are added, is that what you are asking for?

It is already implemented if you see the record:
bc-ghost added the [ships-in-future-update] label
For the next time, the best way to ask for an event is to implement it by yourself and copy&paste AL code into the request here.
Screenshots are not effective. Put the definition of the event and some code lines that would identify the place of the call. That helps.

It is already implemented if you see the record:
bc-ghost added the [ships-in-future-update] label
For the next time, the best way to ask for an event is to implement it by yourself and copy&paste AL code into the request here.
Screenshots are not effective. Put the definition of the event and some code lines that would identify the place of the call. That helps.

That's great, Do I get some notification when the next version released with this fix?

I don't think we notify per each request. You will see it in the next update (16.2 as of now) or you can verify manually in the docker 16.x images one-two days after you got your request closed with the [ships-in-future-update] label.

Thank you StanPesotskiy


text:
[Event Request] Codeunit 5780 "Whse. Cross-Dock Management" – New Event  “OnBeforeValidateQtyToCrossDock”

Could we please have a new publisher “OnBeforeValidateQtyToCrossDock” in Function “UpdateQtyToCrossDock”, Codeunit 5780 "Whse. Cross-Dock Management” including a handled pattern?

    local procedure UpdateQtyToCrossDock(var WhseRcptLine: Record "Warehouse Receipt Line"; var RemainingNeededQtyBase: Decimal; var QtyToCrossDockBase: Decimal; var QtyOnCrossDockBase: Decimal)
*** start new code ***
    var
        IsHandled: Boolean;
*** stop new code ***
    begin
        with WhseRcptLine do begin
            GetUseCrossDock(UseCrossDocking, "Location Code", "Item No.");
            if not UseCrossDocking then
                exit;

            RemainingNeededQtyBase :=
              CalcRemainingNeededQtyBase(
                "Item No.", "Variant Code", RemainingNeededQtyBase,
                QtyToCrossDockBase, QtyOnCrossDockBase, "Qty. to Receive (Base)");
*** start new code ***
            IsHandled := false;
            OnBeforeValidateQtyToCrossDock(IsHandled);
            if not (IsHandled) then begin
*** stop new code ***
                Validate("Qty. to Cross-Dock", Round(QtyToCrossDockBase / "Qty. per Unit of Measure", UOMMgt.QtyRndPrecision));
                "Qty. to Cross-Dock (Base)" := QtyToCrossDockBase;
                Modify;
*** start new code ***
            end;
*** stop new code ***
        end;

        OnAfterUpdateQtyToCrossDock(WhseRcptLine);
    end;
…
*** start new code ***
    [IntegrationEvent(false, false)]
    local procedure OnBeforeValidateQtyToCrossDock(var IsHandled: Boolean)
    begin
    end;
*** stop new code ***

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

authors: bc-ghost ttaeufer