Courseiva

200-901 Software Development and Design Practice Question

A developer maintains a Python package that other teams import. The package's setup.py currently pins an HTTP library to an exact version, and a consuming team reports that pip refuses to install their project because they require a newer minor release of the same library. Which change to the dependency specification best resolves the conflict while still protecting against breaking major upgrades?

⚠ Common exam trap

The trap here is thinking that any exact pin is the safest choice, when exact pins are what create resolver conflicts across projects.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

Replace the exact pin with a compatible-release specifier such as requests>=2.28,<3.0 so minor and patch updates are allowed.

Dependency specifications should express the range the package actually supports. A lower bound with an upper bound below the next major version allows compatible minor and patch upgrades, which satisfies the consuming team's requirement while still guarding against breaking changes. Exact pins and removed declarations either block valid upgrades or leave the dependency undeclared.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    Raise the pin to the newest available exact version, such as requests==2.31.0, so both projects use the same release.

    Why it's wrong here

    An exact pin forces one specific release and will conflict again as soon as either project needs a different patch or minor version. It also prevents the consuming team from receiving later fixes within the same major line, so the underlying resolver problem recurs.

  • ✓

    Replace the exact pin with a compatible-release specifier such as requests>=2.28,<3.0 so minor and patch updates are allowed.

    Why this is correct

    A range that permits newer 2.x releases while excluding 3.0 lets the consuming team install its required minor version and still blocks a breaking major upgrade. This resolves the resolver conflict without abandoning protection against incompatible changes, which is exactly the balance the scenario demands.

  • ✗

    Pin the library to a specific older major version such as requests==1.2.3 to guarantee compatibility with existing code.

    Why it's wrong here

    Pinning to an old major version conflicts even more sharply with the consuming team's newer requirement and removes security and bug fixes. It also locks the package to an unsupported release line, so the resolver still fails and the codebase stagnates.

  • ✗

    Remove the library from the dependency list entirely so pip installs whichever version the consuming project happens to request.

    Why it's wrong here

    Dropping the dependency means the package no longer declares what it needs, so installations on hosts without the library fail at import time. It trades a version conflict for a missing-dependency error and provides no protection against breaking major upgrades.

Visual reference

Client DHCP Server 1 Discover (broadcast) 2 Offer (IP: 192.168.1.10) 3 Request (I accept) 4 Acknowledge (lease confirmed) DORA — the four-step DHCP lease process

About these practice questions

This 200-901 question is part of Courseiva's 975-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written and reviewed by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

Last reviewed September 2026 · checked against the official Cisco exam blueprint

This 200-901 practice question is part of Courseiva's free Cisco certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 200-901 exam.