Not able to build a project using kde-builder in Kde-neon

I am trying to build print-manager using kde-builder, now i have done this more than 50 times before and it has always worked.

But, now it is giving a new error that I have not seen before, and i am not sure that if there is some issue on my end or kde-builder source code.

I have also tried to update the kde-builder as mention in the documentation(2.1. Installation and initial configuration — KDE Builder documentation)

tarun@tarun-virtualbox:~$ kde-builder --no-include-dependencies print-manager
Fetching remote changes to sysadmin-repo-metadata
 * Unable to download required metadata for build process
 * Will attempt to press onward...
 * Exception message: Runtime Error: Unable to perform git fetch for origin (kde:sysadmin/repo-metadata)
Traceback (most recent call last):
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 488, in _download_kde_project_metadata
    metadata_module.scm().update_internal()
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/kde_project_metadata.py", line 88, in update_internal
    super().update_internal(ipc)
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 53, in update_internal
    num_commits = self.update_checkout()
                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 213, in update_checkout
    return self.update_existing_clone()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 501, in update_existing_clone
    raise KBRuntimeError(f"Unable to perform git fetch for {remote_name} ({cur_repo})")
kde_builder_lib.kb_exception.KBRuntimeError: Runtime Error: Unable to perform git fetch for origin (kde:sysadmin/repo-metadata)
* Checking for kde-builder updates.
Encountered an error in the execution of the script.
--> type object 'Version' has no attribute 'SCRIPT_PATH'
Please submit a bug against kde-builder on https://invent.kde.org/sdk/kde-builder/-/issues

Traceback (most recent call last):
  File "/home/tarun/.local/bin/kde-builder", line 184, in <module>
    app = Application(sys.argv[1:])  # the 0 element is script name
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 90, in __init__
    work_load = self.generate_module_list(options)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 278, in generate_module_list
    Version.check_for_updates()
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/version.py", line 51, in check_for_updates
    subprocess.run("git fetch origin master:origin/master", shell=True, cwd=Version.SCRIPT_PATH)
                                                                            ^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'Version' has no attribute 'SCRIPT_PATH'

Here is the error picture

How to fix this?

@Ashark any idea?

Thanks for notification.
I forgot to update the variable name in MR81 after rebasing.
Fixed now.

I think there is still some error because now i am getting these errors.

tarun@tarun-virtualbox:~$ kde-builder --no-include-dependencies print-manager
Fetching remote changes to sysadmin-repo-metadata
 * Unable to download required metadata for build process
 * Will attempt to press onward...
 * Exception message: Runtime Error: Unable to perform git fetch for origin (kde:sysadmin/repo-metadata)
Traceback (most recent call last):
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 488, in _download_kde_project_metadata
    metadata_module.scm().update_internal()
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/kde_project_metadata.py", line 88, in update_internal
    super().update_internal(ipc)
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 53, in update_internal
    num_commits = self.update_checkout()
                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 213, in update_checkout
    return self.update_existing_clone()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 501, in update_existing_clone
    raise KBRuntimeError(f"Unable to perform git fetch for {remote_name} ({cur_repo})")
kde_builder_lib.kb_exception.KBRuntimeError: Runtime Error: Unable to perform git fetch for origin (kde:sysadmin/repo-metadata)
* Checking for kde-builder updates.
* Your kde-builder version is up-to-date.
Encountered an error in the execution of the script.
--> 'NoneType' object is not subscriptable
Please submit a bug against kde-builder on https://invent.kde.org/sdk/kde-builder/-/issues

Traceback (most recent call last):
  File "/home/tarun/.local/bin/kde-builder", line 184, in <module>
    app = Application(sys.argv[1:])  # the 0 element is script name
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 90, in __init__
    work_load = self.generate_module_list(options)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 335, in generate_module_list
    module_resolver.set_deferred_options(deferred_options)
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/module_resolver.py", line 73, in set_deferred_options
    proj_db: KDEProjectsReader = self.context.get_project_data_reader()
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/build_context.py", line 858, in get_project_data_reader
    self.projects_db = KDEProjectsReader(project_database_module)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/kde_projects_reader.py", line 32, in __init__
    self._read_project_data(project_metadata_module)
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/kde_projects_reader.py", line 55, in _read_project_data
    self._read_yaml(metadata_path)
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/kde_projects_reader.py", line 82, in _read_yaml
    if proj_data["projectpath"] == "repo-management":
       ~~~~~~~~~^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

Basically i can see two problems -

  1. Unable to perform git fetch for origin (kde:sysadmin/repo-metadata) : this one might be an error on my end but I did not find any, So I am not sure.
  2. ‘NoneType’ object is not subscriptable : this one is, i believe, an error in kde-builder source code.

FYI: I used this snippet to update my kde-builder, if it helps.

cd ~
curl 'https://invent.kde.org/sdk/kde-builder/-/raw/master/scripts/initial_setup.sh?ref_type=heads' > initial_setup.sh
bash initial_setup.sh

Something wrong with metadata. Try kde-builder --metadata-only.

Still it does work ( i also tried kde-builder --self-update).

tarun@tarun-virtualbox:~$ kde-builder --metadata-only
Fetching remote changes to sysadmin-repo-metadata
 
Unable to download required metadata for build process
Will attempt to press onward...
Exception message: Runtime Error: Unable to perform git fetch for origin (kde:sysadmin/repo-metadata)
Traceback (most recent call last):
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/application.py", line 488, in _download_kde_project_metadata
    metadata_module.scm().update_internal()
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/kde_project_metadata.py", line 88, in update_internal
    super().update_internal(ipc)
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 53, in update_internal
    num_commits = self.update_checkout()
                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 213, in update_checkout
    return self.update_existing_clone()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tarun/.local/share/kde-builder/kde_builder_lib/updater/updater.py", line 501, in update_existing_clone
    raise KBRuntimeError(f"Unable to perform git fetch for {remote_name} ({cur_repo})")
kde_builder_lib.kb_exception.KBRuntimeError: Runtime Error: Unable to perform git fetch for origin (kde:sysadmin/repo-metadata)
Checking for kde-builder updates.
Your kde-builder version is up-to-date.
No modules to build, exiting.

Go to ~/.local/state/sysadmin-repo-metadata/, do git status, and see why you cannot fetch changes from remote.

There are a lot of modified files which are not staged for commit in that dir, so do i push them or stash them? I don’t even know how they got modified.

If you do not know, you do not need them. Try git reset --hard.

No even this does not solves the problem. I am still getting the same error on running kde-builder --metadata-only.

i also tried git fetch inside ~/.local/state/sysadmin-repo-metadata/
and i got this (if it helps)

tarun@tarun-virtualbox:~/.local/state/sysadmin-repo-metadata$ git pull
warning: redirecting to https://invent.kde.org/sysadmin/repo-metadata.git/
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (4/4), 452 bytes | 113.00 KiB/s, done.
fatal: bad object refs/remotes/origin/work/nmariusp/qt6-wayland-private-dev
error: https://invent.kde.org/sysadmin/repo-metadata did not send all necessary objects```

This problem is not related to KDE Builder.
You can google how to solve this error. But you can just remove the whole ~/.local/state/sysadmin-repo-metadata directory. KDE Builder will redownload (clone) this repo itself at next run, and problem will go away.