• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 19015773527

02 Nov 2025 05:33PM UTC coverage: 17.872% (-62.4%) from 80.3%
19015773527

Pull #22816

github

web-flow
Merge a12d75757 into 6c024e162
Pull Request #22816: Update Pants internal Python to 3.14

4 of 5 new or added lines in 3 files covered. (80.0%)

28452 existing lines in 683 files now uncovered.

9831 of 55007 relevant lines covered (17.87%)

0.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/python/pants/bsp/util_rules/lifecycle.py
1
# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
UNCOV
3
from __future__ import annotations
×
4

UNCOV
5
from typing import ClassVar
×
6

UNCOV
7
from pants.bsp.protocol import BSPHandlerMapping
×
UNCOV
8
from pants.bsp.spec.lifecycle import (
×
9
    BuildServerCapabilities,
10
    CompileProvider,
11
    DebugProvider,
12
    InitializeBuildParams,
13
    InitializeBuildResult,
14
    RunProvider,
15
    TestProvider,
16
)
UNCOV
17
from pants.engine.rules import collect_rules, rule
×
UNCOV
18
from pants.engine.unions import UnionMembership, UnionRule, union
×
UNCOV
19
from pants.version import VERSION
×
20

21
# Version of BSP supported by Pants.
UNCOV
22
BSP_VERSION = "2.0.0"
×
23

24

UNCOV
25
@union
×
UNCOV
26
class BSPLanguageSupport:
×
27
    """Union exposed by language backends to inform BSP core rules of capabilities to advertise to
28
    clients."""
29

UNCOV
30
    language_id: ClassVar[str]
×
UNCOV
31
    can_compile: bool = False
×
UNCOV
32
    can_test: bool = False
×
UNCOV
33
    can_run: bool = False
×
UNCOV
34
    can_debug: bool = False
×
UNCOV
35
    can_provide_resources: bool = False
×
36

37

38
# -----------------------------------------------------------------------------------------------
39
# Initialize Build Request
40
# See https://build-server-protocol.github.io/docs/specification.html#initialize-build-request
41
# -----------------------------------------------------------------------------------------------
42

43

UNCOV
44
class InitializeBuildHandlerMapping(BSPHandlerMapping):
×
UNCOV
45
    method_name = "build/initialize"
×
UNCOV
46
    request_type = InitializeBuildParams
×
UNCOV
47
    response_type = InitializeBuildResult
×
48

49

UNCOV
50
@rule
×
UNCOV
51
async def bsp_build_initialize(
×
52
    _request: InitializeBuildParams, union_membership: UnionMembership
53
) -> InitializeBuildResult:
54
    compile_provider_language_ids = []
×
55
    test_provider_language_ids = []
×
56
    run_provider_language_ids = []
×
57
    debug_provider_language_ids = []
×
58
    resources_provider = False
×
59
    language_support_impls = union_membership.get(BSPLanguageSupport)
×
60
    for lang in language_support_impls:
×
61
        if lang.can_compile:
×
62
            compile_provider_language_ids.append(lang.language_id)
×
63
        if lang.can_test:
×
64
            test_provider_language_ids.append(lang.language_id)
×
65
        if lang.can_run:
×
66
            run_provider_language_ids.append(lang.language_id)
×
67
        if lang.can_debug:
×
68
            debug_provider_language_ids.append(lang.language_id)
×
69
        if lang.can_provide_resources:
×
70
            resources_provider = True
×
71

72
    return InitializeBuildResult(
×
73
        display_name="Pants",
74
        version=VERSION,
75
        bsp_version=BSP_VERSION,  # TODO: replace with an actual BSP version
76
        capabilities=BuildServerCapabilities(
77
            compile_provider=CompileProvider(
78
                language_ids=tuple(sorted(compile_provider_language_ids))
79
            ),
80
            test_provider=TestProvider(language_ids=tuple(sorted(test_provider_language_ids))),
81
            run_provider=RunProvider(language_ids=tuple(sorted(run_provider_language_ids))),
82
            debug_provider=DebugProvider(language_ids=tuple(sorted(debug_provider_language_ids))),
83
            inverse_sources_provider=None,
84
            dependency_sources_provider=True,
85
            dependency_modules_provider=True,
86
            resources_provider=resources_provider,
87
            can_reload=None,
88
            build_target_changed_provider=None,
89
        ),
90
        data=None,
91
    )
92

93

UNCOV
94
def rules():
×
UNCOV
95
    return (
×
96
        *collect_rules(),
97
        UnionRule(BSPHandlerMapping, InitializeBuildHandlerMapping),
98
    )
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc