Правила проверки версий: 2. Правила построения и проверки криминалистических версий в процессе расследования преступлений

2. Правила построения и проверки криминалистических версий в процессе расследования преступлений

Построение криминалистической версииэто мыслительная деятельность следователя или иного уполномоченного законом лица по конструированию вероятного суждения, объясняющего событие преступления в целом либо отдельные его элементы, относящиеся к предмету доказывания.

Основания построения криминалистических версийэто фактические данные, содержащиеся в доказательственной или ориентирующей информации, собранной на определенный момент расследования.

В основе построения версий лежит анализ исходной следственной ситуации и крим. характеристики преступления, который позволяет:

— выдвинуть вероятные в данной следственной ситуации общие и частные версии на основе выделения их фактических оснований;

— установить степень фактической обоснованности принятых общих и частных версий;

— определить программу проверки принятых версий (средства, приемы, методы).

При построении версий используются такие приемы логического мышления, как анализ (разложение имеющейся информации на элементы), синтез (соединение элементов информации), индукция (выведение общего суждения из частных посылок), дедукция (выведение частного вывода из общего суждения), аналогия (выведение суждения по сходству фактов).

Требования, предъявляемые к криминалистическим версиям:

обоснованность фактическими данными;

— наличие четкой однозначной формулы;

— реальная возможность в данных фактических обстоятельствах.

Проверка криминалистической версииэто деятельность по установлению фактических обстоятельств, подтверждающих или опровергающих предположение, составляющее содержание версии.

Проверка версий основывается на логическом анализе и оценке имеющейся информации, а также осуществляется путем производства следственных действий и оперативно-розыскных мероприятий.

Этапы проверки криминалистических версий:

выведение из версии всех возможных следствий;

— определение средств, способов и методов установления вытекающих из принятой версии предполагаемых следствий, т.е. определение элементов плана расследования по делу, а также принятие тактических решений;

— практическая реализация плана расследования путем производства следственных действий и оперативно-розыскных мероприятий для получения данных, подтверждающих или опровергающих версию;

— оценка совокупности собранных доказательств, обосновывающих вывод об истинности одной из проверяемых версий и ложности остальных.

Доказанной признается версия, которая подтверждается собранными по делу доказательствами. Причем другие версии, относящиеся к этому обстоятельству, данными же доказательствами опровергаются.

Доказанная версия перестает быть предположением и становится достоверным знанием, устанавливающим объективную истину.

3.Понятие, значение и основные принципы планирования расследования преступлений

Планирование расследования — это мыслительная деятельность, заключающаяся в определении содержания и порядка работы по установлению всех обстоятельств совершенного преступления и изобличению виновных в строгом соответствии с требованиями закона и с наименьшими затратами времени и сил. Результаты этой деятельности, как правило, отражаются в письменных планах расследования.

Элементы планирования: — изучение имеющейся исходной информации;

— выбор направления расследования посредством выдвижения криминалистических версий;

— определение задач расследования, исходя из предмета и пределов доказывания;

— определение круга следственных действий, оперативно-розыскных и организационно-технических мероприятий, необходимых для решения поставленных задач и проверки выдвинутых версий;

— определение тактики намеченных следственных действий и исполнителей запланированных действий и мероприятий;

— установление сроков и послед-ности проведения намеченных действий;

— оформление намеченной программы в виде письменных планов расследования, схем, графиков, карточек.

Принципы планирования:

принцип динамичности, согласно которому деятельность по планированию осуществляется на протяжении всего расследования; планы расследования постоянно уточняются, дополняются с учетом вновь выдвинутых версий, требующих проверки;

принцип индивидуальности планирования обусловливается неповторимостью каждого из расследуемых преступлений и особенностями личности следователя; план составляется только на основе данных, полученных в ходе конкретного следствия;

принцип конкретности заключается в отсутствии общих формулировок в планах расследования; в программе должны быть четко обозначены цель планируемых действий, исполнители, сроки, место проведения и т.п.

Операции по автоматическому согласованию и закреплению данных сервис-ориентированных версий с поддержкой синхронизации.—ArcGIS Pro

# Import modules
import arcpy, traceback, urllib, json, urllib.request, urllib.parse, os, urllib.error, datetime

# Overwrite the reconcile log output each time the script is run
arcpy.env.overwriteOutput = True

# Script parameters
serviceName = "MyServiceName"
baseURL = "https://MyServer.MyDomain.com"
portalAdmin = "MyAdminUser"
portalAdminPwd = "MyAdmin.Password"
logFileScript = "C:/Logs/validateRecPostScriptLog.txt"
logfileOutputRecPost = 'C:/Logs/reconcile_log.txt' 

# Choose to output a log file for the script
outputScriptReport = True

# Define functions
def openURL(url, params=None):
    """This function used to open a URL and returns the json response"""
    try:
        request_params = {'f':'pjson'}
        if params:
            request_params.update(params)
        encodedParams = urllib.parse.urlencode(request_params)
        request = urllib.request.urlopen(url, encodedParams.encode('UTF-8'))
        response = request.read()
        json_response = json.loads(response)
        return json_response
    except:
        print (traceback.format_exc())

def versionInfo(versionOwner=""):
    """This function queries the versions owned by the versionOwner.
    It returns a list of dictionaries."""
    vmsUrlinfo = "{}/server/rest/services/{}/VersionManagementServer/versionInfos?&ownerFilter={}&includeHidden=&f=json&token={}".format(baseURL, serviceName, versionOwner, token)
    response = openURL(vmsUrlinfo)
    if response['success'] == True:
        versionsDict = response['versions']
        return versionsDict
    else:
        return("Unable to get version info")

def evaluateUrl(validationUrl, validate_params):
    """This function runs evaluate on the validation server
    It returns the json response."""
    evalJsonResp = openURL(validationUrl, validate_params)
    if evalJsonResp['success'] == False:
        return [False, evalJsonResp]
    else:
        return [True, evalJsonResp]

def generateMessage(msg, print_statement=True):
    """This function generates messages as the script runs. If print_statement
    is set to True, print to the screen. If outputScriptReport is set to true,
    write the message to the logfile"""
    if outputScriptReport == True:
        with open(logFileScript, 'a') as log_file:
            log_file.write(msg + "\n")
    if print_statement == True:
        print(msg)

def recPostVersions(versionList, post):
    """This function runs the Reconcile Versions GP tool to reconcile
    and optionally post to the feature service"""
    if post == True:
        postVersion = "POST"
    elif post == False:
        postVersion = "NO_POST"
    # Reconcile and post the replica versions 
    # This tool is set to abort if there are conflicts and detects conflicts by object
    arcpy.ReconcileVersions_management(featureService,
                                        'ALL_VERSIONS',
                                        'sde.DEFAULT',
                                         versionList,
                                        'NO_LOCK_ACQUIRED',
                                        'ABORT_CONFLICTS',
                                        'BY_OBJECT',
                                        'FAVOR_EDIT_VERSION',
                                        postVersion,
                                        'KEEP_VERSION',
                                        logfileOutputRecPost)
    generateMessage(arcpy.GetMessages()+"\n")
    
# Start execution
generateMessage('Starting Validation/Reconcile/Post Automation Script... {:%Y-%b-%d %H:%M:%S}\n'.format(datetime.datetime.now()))

# Sign in to ArcGIS Enterprise    
signIntoPortal = arcpy.SignInToPortal(baseURL+"/portal", portalAdmin, portalAdminPwd)
generateMessage("Signed into ArcGIS Enterprise {} as user {}".format(baseURL+"/portal", portalAdmin))

# Get the token returned by the SignIntoPortal arcpy function to use for making REST requests
token = signIntoPortal['token']

# Build the feature service URL
featureService = "{}/server/rest/services/{}/FeatureServer".format(baseURL, serviceName)

# Get a list of the replica versions from the REST endpoint
listOfRepVersions = []
replicaVersionsURL = featureService + "/replicas?returnVersion=true&f=pjson"
repVersionsJson = openURL(replicaVersionsURL, signIntoPortal)
for repVersion in repVersionsJson:
    versionName = repVersion['replicaVersion']
    listOfRepVersions.append(versionName)
    
# Create an empty list to append version names to validate
listOfVersionsToValidate = []

# Iterate through each version returned by the versionInfo() function to find 
# the versions that need to be validated that are also in the listOfRepVersions list
for version in versionInfo():
    print("")    
    # Parse the version info response, which is a python dictionary/json
    # If the version name is sde.DEFAULT, pass since we do not want to evaluate the default version
    if version['versionName'] == "sde.DEFAULT":
        pass
    # If the modifiedDate property is null, pass
    elif version['modifiedDate'] == "None":
        pass
    # If the evaluation date is null, append the version name to the list to listOfVersions to be evaluated
    elif version['evaluationDate'] == None:
        if version['versionName'] in listOfRepVersions:
            listOfVersionsToValidate.append(version['versionName'])
    # If the evaluation date is not null, but it has been modifed since the last evaluation, add it to the list to be validated
    elif version['evaluationDate'] != None and version['modifiedDate'] > version['evaluationDate']:
        if version['versionName'] in listOfRepVersions:
            listOfVersionsToValidate.append(version['versionName'])
    # If none of these conditions are met
    else:
        generateMessage("Version {} will not be validated.".format(version['versionName']))
            
# Validate versions
generateMessage('The following versions will be validated: {}\n'.format(listOfVersionsToValidate))

# Create lists to contain versions where the validation passed or failed
failEval = []
passEval = []

# For each version in the list of versions, build the json request needed to validate
for i in listOfVersionsToValidate:
    validate_params = { "gdbVersion": i,
             "sessionId": "",
             "evaluationArea": "",
             "changesInVersion": "true",
             "selection": "",
             "evaluationType": '["validationRules"]',
             "returnEdits": "true",
             "async": "false",
             "f": "pjson",
             "token": token
    }
    # Build the REST URL used to validate the service
    validationUrl = baseURL + "/server/rest/services/"+ serviceName +"/ValidationServer/evaluate"
    
    # Call the evalVersion() function to validate the version
    evalVersion = evaluateUrl(validationUrl, validate_params)
    
    # If the evaluate failed, append to the failEval list
    if evalVersion[0] == False:
        generateMessage("Evalution of version {} failed".format(i))
        generateMessage(str(evalVersion[1]))
        failEval.append(i)
        
    # If the evaluate passed, check to see if errors were returned    
    elif evalVersion[0] == True:
        # If errors are returned, only reconcile this version
        if evalVersion[1]['errorsIdentified'] != 0:
            generateMessage("{} Errors were identified in version {}.\nThe version will be reconciled but will not be posted.\n".format((str(evalVersion[1]['errorsIdentified'])),i))
            generateMessage(str(evalVersion[1]), False)
        # If errors were not found this version can be posted
        else:
            generateMessage("Evaluation of version {} passed with no errors identified.\nThis version will be reconciled and posted.\n".format(i))
            generateMessage(str(evalVersion[1]))
            passEval.append(i)

# The versions that passed validation should be reconciled/posted
generateMessage('\nThe following versions passed validation and will be reconciled and posted: {}\n'.format(passEval))

# Run recPostVersions on the list of versions that passed evaluation with the option to post
recPostVersions(passEval, True)

# Open the reconcile log file and append the results to our report
with open(logfileOutputRecPost, 'r') as openRecLog:
    generateMessage(openRecLog.read(), False)
    
# Run recPostVersions with the option to reconcile all replica versions, no post
recPostVersions(listOfRepVersions, False)

# Open the reconcile log file and append the results to our report
with open(logfileOutputRecPost, 'r') as openRecLog:
    generateMessage(openRecLog.read(), False)

# Script execution complete
generateMessage('Validate, Reconcile, & Post Script Complete.')

Вопросы к зачету и экзамену

ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЗАЧЁТУ по дисциплине «КРИМИНАЛИСТИКА»

1. Предмет и задачи криминалистики. Методы криминалистики.
2. Система криминалистики. Место криминалистики в системе юридических наук.
3. Основные этапы развития отечественной криминалистики.
4. Информационное отражение события преступления в окружающей среде.
5. Диагностические и классификационные исследования в криминалистике.
6. Понятие и виды криминалистического прогнозирования.
7. Современные научно-технические средства и методы, используемые для лабораторных исследований вещественных доказательств.
8. Понятие, научные основы и виды криминалистической идентификации.
9. Объекты и субъекты криминалистической идентификации, их классификация.
10. Идентификационные свойства и признаки объектов. Классификация идентификационных признаков.
11. Общая методика экспертного идентификационного исследования.
12. Идентификация целого по частям. Идентификация источников происхождения.
13. Понятие и виды криминалистической версии.
14. Правила выдвижения, исследования и проверки криминалистических версий.
15. Основные направления использования компьютерных технологий в раскрытии и расследовании преступлений.
16. Понятие планирования, принципы и виды планирования расследования преступлений.
17. Техника планирования расследования преступлений.
18. Взаимодействие следователя с экспертами и специалистами.
19. Взаимодействие следователя с оперативно-розыскными органами.
20. Экспертные учреждения Российской Федерации.
21. Понятие сравнительных образцов, виды и технология их получения.
22. Понятие и виды криминалистической ситуации.
23. Криминалистическая характеристика преступлений.
24. Нетрадиционные средства получения значимой для расследования информации.
25. Правовые основы и доказательственное значение применения кримтехники.
26. Понятие специальных знаний, виды и формы их применения при расследовании.
27. Методы профилактической деятельности следователя. Экспертно — криминалистическая профилактика.
28. Понятие, задачи и отрасли криминалистической техники.
29. Криминалистические комплекты для оперативных работников, следователей, прокуроров -криминалистов.
30. Применение фото-кино, видеосъемки при производстве следственных действий.
31. Понятие трасологии, её научные основы и значение.
32. Понятие следа в трасологии. Классификация следов.
33. Общие правила обнаружения, фиксации и изъятия следов — отображений и их процессуального оформления.
34. Свойства, виды, общие и частные признаки следов рук.
35. Способы обнаружения, фиксации и изъятия следов рук.
36. Пороскопические исследования.
37. Возможности и методика дактилоскопической экспертизы. Подготовка материалов для назначения экспертизы.
38. Виды и значение следов ног человека.
39. Фиксация и изъятие объемных и поверхностных следов ног в различных условиях.
40. «Дорожка» следов ног и её криминалистическое значение.
41. Следы зубов, ногтей и прочих частей тела человека.
42. Особенности фиксации и изъятия следов орудий взлома. Подготовка материалов для трасологической экспертизы следов орудий взлома.
43. Следы транспортных средств, их виды и значение.
44. Следы: крови, слюны, спермы, мочи, волос, следы курения, пыли. Их использование в расследовании преступлений.
45. Понятие и научные основы почерковедения.
46. Идентификационные признаки письма и их классификация.
47. Почерковедческая экспертиза. Подготовка материалов для экспертизы.
48. Криминалистическая автороведческая экспертиза. Подготовка материалов, назначение, возможности.
49. Понятие, виды и задачи технико-криминалистического исследования документов. Общие правила обращения с документами — вещественными доказательствами.
50. Материальный подлог в документе и способы его обнаружения.
51. Исследование полиграфической продукции.
52. Исследование залитых, зачеркнутых и других нечитаемых документов.
53. Техническая подделка подписи и её признаки, способы обнаружения подделки.
54. Криминалистическое исследование материалов документов (бумаги, красителя и т.д.).
55. Исследование машинописных текстов. Подготовка материалов для экспертизы.
56. Способы подделки оттисков печатей и штампов, их признаки. Выявление подделки.
57. Исследование сожженных и разорванных документов.
58. Понятие криминалистической баллистики. Объекты ее исследования.
59. Понятие и классификация огнестрельного оружия.
60. Осмотр и предварительное исследование огнестрельного оружия.
61. Механизм образования следов на гильзе и снаряде (пуле, картечи, дроби).
62. Идентификация огнестрельного оружия.
63. Установление направления стрельбы, дистанции выстрела и места нахождения стрелявшего.
64. Понятие холодного оружия. Классификация холодного оружия.
65. Понятие и научные основы габитоскопии.
66. Система описания признаков внешности человека по методу словесного портрета.
67. Судебно-портретная экспертиза (виды, подготовка и назначение, методы).
68. Технические средства моделирования внешности человека.
69. Система уголовной (криминалистической) регистрации, её подсистемы и элементы.
70. Криминалистические учеты.
71. Оперативно-розыскные учеты.
72. Оперативно-справочные учеты, их организация и использование в раскрытии и расследовании преступлений.
73. Автоматизированные поисковые системы и автоматизированные банки данных.
74. Понятие и значение основной и дополнительной дактилоскопических формул. Правила их выведения.
75. Криминалистическое исследование материалов, веществ и изделий (КИМВИ).
76. Возможности использования запаховых следов для раскрытия преступлений.
77. Криминалистическая лазерная голография. Основные направления исследований и применение.
78. Криминалистическая энтомология. Понятие и значение, сфера применения.
79. Криминалистическая взрывотехника. Понятие и значение, возможности отрасли.
80. Криминалистическая полиграфология. Возможности и проблемы отрасли.

 

ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЭКЗАМЕНУ по дисциплине «КРИМИНАЛИСТИКА»

1. Возникновение и современное состояние криминалистики и криминалистических учреждений.
2. Предмет и система криминалистики.
3. Общенаучные, частнонаучные и специальные методы, используемые в криминалистике.
4. Место криминалистики в системе юридических и иных наук
5. Понятие, научные основы и виды криминалистической идентификации.
6. Общая методика экспертного идентификационного исследования.
7. Криминалистическая диагностика и криминалистическое прогнозирование.
8. Понятие и предмет криминалистической техники, классификация технических средств.
9. Понятие и значение судебной фотографии.
10. Применение киносъемки и видеозаписи при производстве следственных действий.
11. Понятие трасологии, ее научные основы и значение.
12. Механизм образования следов, классификация следов. Общие правила обнаружения, фиксации и изъятия следов.
13. Следы рук.
14. Следы ног.
15. Следы орудий взлома, инструментов и производственных механизмов.
16. Следы транспортных средств.
17. Следы зубов, ногтей и иных частей тела человека, имеющие криминалистическое значение.
18. Понятие письма. Идентификационные признаки письма.
19. Подготовка материалов для назначения почерковедческой экспертизы письма.
20. Криминалистическая автороведческая экспертиза. Подготовка материалов, назначение, возможности.
21. Понятие судебной баллистики, объекты судебно-баллистических исследований и их классификация.
22. Правила осмотра и предварительного исследования огнестрельного оружия и следов его применения.
23. Механизм образования следов на пулях и гильзах. Идентификация огнестрельного оружия по пулям и гильзам.
24. Криминалистическое исследование холодного оружия.
25. Понятие технико-криминалистического исследования документов. Виды и задачи.
26. Криминалистическое исследование машинописных текстов и полиграфической продукции.
27. Криминалистическое исследование материалов документов (бумаги, красителя и т.д.).
28. Понятие и научные основы криминалистического исследования внешних признаков человека (габитоскопия). Система описания признаков человека (словесный портрет).
29. Судебно-портретная идентификация (её виды, методы судебно-портретной идентификации).
30. Система уголовной регистрации, ее подсистемы и элементы.
31. Нетрадиционные отрасли криминалистической техники.
32. Нетрадиционные средства получения значимой для расследования преступлений информации.
33. Использование современных компьютерных технологий в раскрытии и расследовании преступлений.
34. Понятие образцов для сравнительного исследования, технология получения образцов.
35. Использование специальных знаний на предварительном следствии.
36. Организация и структура экспертных учреждений в Российской Федерации.
37. Понятие, задачи и система следственной тактики.
38. Понятие тактического приема, виды тактических приемов.
39. Понятие и значение тактических операций и тактических комбинаций.
40. Понятие следственной ситуации, виды следственных ситуаций.
41. Понятие и значение планирования расследования, принципы планирования. Техника планирования расследования.
42. Понятие и классификация криминалистических версий, основные правила проверки версий.
43. Общие положения тактики осмотра места происшествия.
44. Стадии осмотра места происшествия, тактические приемы осмотра. Методы исследования обстановки места происшествия.
45. Понятие негативных обстоятельств, их значение при расследовании преступлений. Разоблачение инсценировок.
46. Фиксация хода и результатов следственного осмотра.
47. Оперативно-розыскные мероприятия, проводимые параллельно и непосредственно при осмотре места происшествия.
48. Понятие и задачи освидетельствования живых лиц. Тактика освидетельствования, фиксация хода и результатов освидетельствования.
49. Общие положение тактики допроса.
50. Тактические приемы допроса. Фиксация хода и результатов допроса.
51. Подготовка к допросу. Установление психологического контакта с допрашиваемым лицом.
52. Формирование показаний у допрашиваемого лица.
53. Допустимые способы воздействия на допрашиваемых лиц.
54. Особенности допроса в конфликтных ситуациях.
55. Тактико-психологические приемы выявления и пресечения лжи.
56. Тактика допроса потерпевших и свидетелей.
57. Особенности допроса несовершеннолетних лиц.
58. Тактика очной ставки.
59. Особенности проведения допроса при ссылке на алиби.
60. Понятие, значение и виды следственного эксперимента, тактика следственного эксперимента.
61. Лица, участвующие в следственном эксперименте, стадии следственного эксперимента. Оценка результатов следственного эксперимента.
62. Фиксация хода и результатов следственного эксперимента.
63. Тактика проверки показаний на месте, особенности фиксации хода и результатов проверки показаний на месте.
64. Понятие, значение и задачи предъявления для опознания. Виды предъявления для опознания.
65. Особенности предъявления для опознания живых лиц, предметов и трупов. Фиксация хода и результатов предъявления для опознания.
66. Понятие, виды и задачи обыска и выемки.
67. Психологические и этические основы обыска. Подготовка к производству обыска.
68. Стадии обыска и техническое обеспечение обыска.
69. Особенности проведения обыска в помещении и на местности.
70. Особенности производства обыска в транспортных средствах.
71. Особенности производства личного обыска.
72. Понятие, задачи и виды выемки. Тактика производства выемки.
73. Фиксация хода и результатов обыска и выемки.
74. Понятие и задачи методики расследования отдельных видов преступлений.
75. Структура методики расследования отдельных видов преступлений.
76. Понятие криминалистической характеристики преступлений.
77. Взаимодействие следователя и оперативно-розыскных органов в процессе расследования преступлений.
78. Основы методики расследования преступлений по горячим следам.
79. Криминалистическая характеристика убийств.
80. Типовые следственные ситуации, встречающиеся при расследовании убийств.
81. Особенности первоначального этапа расследования при обнаружении неопознанного трупа, частей расчлененного трупа.
82. Особенности расследования убийств, замаскированных инсценировкой самоубийства или несчастного случая.
83. Действия следователя в стадии возбуждения уголовного дела при исчезновении человека и предположении о его убийстве.
84. Криминалистическая характеристика изнасилований.
85. Методика расследования изнасилований.
86. Методика расследования краж.
87. Методика расследования грабежей и разбойных нападений.
88. Методика расследования мошенничества.
89. Особенности расследования вымогательства.
90. Методика расследования присвоения или растраты имущества.
91. Криминалистическая характеристика взяточничества.
92. Методика расследования взяточничества.
93. Криминалистическая характеристика нарушений правил безопасности движения и эксплуатации транспортных средств.
94. Особенности осмотра места дорожно-транспортного происшествия.
95. Методика расследования дорожно-транспортных происшествий.
96. Расследование преступлений, связанных с незаконным оборотом наркотических средств и психотропных препаратов.
97. Криминалистическая характеристика преступных нарушений правил безопасности труда.
98. Методика расследования преступных нарушений правил безопасности труда.
99. Криминалистическая характеристика поджогов и преступных нарушений правил противопожарной безопасности.
100. Методика расследования поджогов и преступных нарушений правил противопожарной безопасности.
101. Методика расследования неправомерного доступа к компьютерной информации, повлекшего за собой негативные последствия (уничтожение информации, блокирование компьютера и т.д.).
102. Особенности расследования создания и распространения вредоносных программ.
103. Особенности расследования нарушений правил эксплуатации ЭВМ, повлекшие сбои в нормальной работе ЭВМ или их сетей.
104. Методика расследования преступлений, совершенных несовершеннолетними.
105. Основы методики расследования преступлений, совершенных лицами с психическими аномалиями.
106. Методика расследования преступлений, совершенных иностранцами или против иностранцев.
107. Методика расследования преступлений по горячим следам.
108. Противодействие расследованию и пути его преодоления.

Использование Excel более ранних версий Excel

На некоторых из них больше формул массива, ссылок на другие, чем поддерживается выбранным форматом файла. Некоторые из этих формул массива не будут сохранены и будут преобразованы в #VALUE! исчезнут.

Что это означает.    Начиная с Excel 2007 г., массивы книг, которые ссылаются на другие книги, ограничены только доступной памятью, но в Excel 97–2003 в книгах может быть не более 65 472 массивов книг, которые ссылаются на другие. Массивы книг после максимального предела будут преобразованы в и отобразить #VALUE! исчезнут.

Действия    В окте проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы массива, которые ссылаются на другой #VALUE! исчезнут.

Некоторые формулы содержат больше значений, ссылок и имен, чем поддерживается выбранным форматом файла. Эти формулы не будут сохранены и будут преобразованы в #VALUE! Ошибки.

Что это означает.    Начиная с Excel 2007 г., максимальная длина содержимого формулы составляет 8 192 символа, а максимальная внутренняя длина формулы — 16 384 bytes. В Excel 97–2003 максимальная длина содержимого формулы составляет 1024 символа, а внутренняя — 1800 bytes. Если сочетание аргументов формулы (включая значения, ссылки и/или имена) превышает предельное Excel 97–2003, результатом формул будет #VALUE! при сохранение книги в формате более ранней Excel файла.

Действия    В окне средства проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы, длина которых превышает предельное значение в Excel 97–2003, а затем внести необходимые изменения, чтобы избежать #VALUE! исчезнут.

В некоторых формулах вложенности больше, чем поддерживается выбранным форматом файла. Формулы с более чем семью уровнями вложенности не будут сохранены и будут преобразованы в #VALUE! исчезнут.

Что это означает.    Начиная с Excel 2007 г., формула может содержать до 64 уровней вложенности, а в Excel 97–2003 — всего 7.

Действия    В окте проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы с более чем 7 уровнями вложенности, и внести необходимые изменения, чтобы избежать #VALUE! исчезнут.

Некоторые формулы содержат функции, у которых больше аргументов, чем поддерживается выбранным форматом файла. Формулы, которые имеют более 30 аргументов на одну функцию, не будут сохранены и будут преобразованы в #VALUE! исчезнут.

Что это означает.    Начиная с Excel 2007 г., формула может содержать до 255 аргументов, но в Excel 97–2003 число аргументов в формуле не может быть больше 30.

Действия    В окте проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы с более чем 30 аргументами, и внести необходимые изменения, чтобы избежать #VALUE! исчезнут.

В некоторых формулах операндов больше, чем разрешено выбранным форматом файла. Эти формулы не будут сохранены и будут преобразованы в #VALUE! исчезнут.

Что это означает.    Начиная с Excel 2007 г., число операндов, которые можно использовать в формулах, составляет 1024, а в Excel 97–2003 — всего 40.

Действия    В окте проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы с более чем 40 операндами, и внести необходимые изменения, чтобы избежать #VALUE! исчезнут.

Некоторые формулы содержат функции с большим размером аргументов, чем поддерживается выбранным форматом файла. Формулы с более чем 29 аргументами функции не будут сохранены и будут преобразованы в #VALUE! исчезнут.

Что это означает.    Начиная с Excel 2007 г., функция User-Defined (UDF), создаемая с помощью Visual Basic для приложений (VBA), может содержать до 60 аргументов, но в Excel 97–2003 число аргументов в UDF ограничено VBA только 29.

Действия    В окте проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие функции, которые используют более 29 аргументов, и внести необходимые изменения, чтобы избежать #VALUE! исчезнут. Для изменения пользовательских функций может потребоваться использовать код VBA.

Одна или несколько функций в этой книге недоступны в более ранних версиях Excel.  При пересчете в более ранних версиях эти функции возвращают #NAME? вместо текущих результатов.

Что это означает.    Начиная с Excel 2007 г., были добавлены новые и переименованные функции. Так как эти функции недоступны в Excel 97–2003, они возвращают #NAME? вместо ожидаемых результатов, если книга открыта в более ранней версии Excel.)

В некоторых случаях к формуле добавляется префикс _xlfn, например: =_xlfn.ЕСЛИОШИБКА (1;2).

Действия    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие функции, недоступные в более ранних версиях Excel, и внести необходимые изменения, чтобы избежать #NAME? исчезнут.

Для всех переименованных функций доступны функции совместимости. Для предотвращения ошибок можно использовать эти функции.

Новые функции можно заменить соответствующими функциями, доступными в более ранних версиях Excel. Кроме того, можно удалить формулы с новыми функциями, заменив их результатами формул.

Некоторые формулы содержат ссылки на таблицы, которые не поддерживаются выбранным форматом файла. Эти ссылки будут преобразованы в ссылки на ячейки.

Что это означает.    Начиная с Excel 2007 г., структурированные ссылки упрощают и упрощают работу с табличные данные при использовании формул, ссылаясь на части таблиц или целые таблицы. В Excel 97–2003 эта возможность не поддерживается, и структурированные ссылки преобразуются в ссылки на ячейки.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы со структурированными ссылками на таблицы, и замените их соответствующими ссылками на ячейки.

Некоторые формулы содержат ссылки на таблицы в других книгах, которые сейчас не открыты в текущем экземпляре Excel. При сохранении в формате Excel 97–2003 эти ссылки будут преобразованы в значения #ССЫЛКА!, так как их невозможно преобразовать в адреса на текущем листе.

Что это означает.    Начиная с Excel 2007 г., структурированные ссылки упрощают и упрощают работу с табличные данные при использовании формул, ссылаясь на части таблиц или целые таблицы. В Excel 97–2003 эта возможность не поддерживается, и структурированные ссылки преобразуются в ссылки на ячейки. Однако если структурированные ссылки указывают на таблицы в других книгах, которые в данный момент не открыты, они преобразуются в значения ошибки #ССЫЛКА!.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы со структурированными ссылками на таблицы в других книгах, и измените их для предотвращения ошибок #ССЫЛКА!.

Одна или несколько ячеек книги содержат правила проверки данных, использующие ссылки на более чем 8192 несмежных диапазона ячеек. Такие правила проверки данных не будут сохранены.

Что это означает.    Начиная с Excel 2010 г., правила проверки данных могут ссылаться на более чем 8192 невимех ячеек. В Excel 97–2007 этот тип правила проверки данных не поддерживается и будет не доступен.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие правила проверки данных, которые содержат ссылки на более чем 8192 несмежных диапазона ячеек, и внесите необходимые изменения.

Одна или несколько ячеек книги содержат правила проверки данных, использующие ссылки на значения, находящиеся на других листах. Такие правила проверки данных не будут поддерживаться в более ранних версиях Excel.

Что это означает.    Начиная с Excel 2010 г., вы можете внедрять правила проверки данных, ссыла которые ссылаются на значения на других таблицах. Эта поддержка не поддерживается в Excel 97–2007.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие правила проверки данных, в которых есть ссылки на значения на других листах, и внесите необходимые изменения, чтобы правила содержали ссылки на значения на том же листе.

Одна или несколько ячеек книги содержат правила проверки данных, использующие ссылки на значения, находящиеся на других листах. Такие правила проверки данных не будут поддерживаться в более ранних версиях Excel.

Что это означает.    Начиная с Excel 2010 г., вы можете использовать правила проверки данных, которые ссылаются на значения на других таблицах. В Excel 97–2007 этот тип проверки данных не поддерживается и не отображается на этом сайте.

Однако все правила проверки данных остаются доступными в книге и применяются при повторном ее повторном Excel 2010 г. или более поздней, если они не были изменены в Excel 97–2007.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие правила проверки данных, в которых есть ссылки на значения на других листах, и внесите необходимые изменения на вкладке Параметры диалогового окна Проверка данных (вкладка Данные, группа Работа с данными).

Книга содержит диапазон консолидации данных, ссылающийся на ячейки вне допустимого числа строк и столбцов для выбранного формата файла. Ссылки формул на данные в этой области будут изменены и могут отображаться некорректно в более ранней версии Excel.

Что это означает.    Начиная с Excel 2010 г., диапазоны консолидации данных могут содержать формулы, которые ссылаются на данные вне допустимого диапазона строк и столбцов выбранного формата файла. В Excel 97–2003, размер таблицы составляет 65 536 строк и 256 столбцов в ширину. Формулы, ссылающиеся на данные в ячейках за пределами этого диапазона строк и столбцов, корректируются и могут отображаться неправильно.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти диапазоны консолидации данных, содержащие формулы, которые ссылаются на данные за пределами ограничения на число строк и столбцов Excel 97–2003, и внесите необходимые изменения.

Несущественная потеря точности

Решение

Некоторые формулы массива в этой книге ссылаются на весь столбец. В более ранних версиях Excel эти формулы могут быть преобразованы в #NUM! при пересчете.

Что это означает.    Начиная с Excel 2007 г., формулы массива, ссылайтесь на весь столбец, преобразуются в столбец и отображаются как #NUM! при пересчете в Excel 97–2003.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти формулы массива, ссылающиеся на целый столбец, и внесите необходимые изменения для предотвращения ошибок #ЧИСЛО!.

Одно или несколько определенных в данной книге имен содержат формулы, длина которых превышает максимальный размер, допустимый для выбранного формата файла (255 символов). Эти формулы будут сохранены, но будут усечены при редактировании в более ранних версиях Excel.

Что это означает.    Если именованные диапазоны в формулах превышают предел в 255 знаков, поддерживаемый в Excel 97–2003, формула работает правильно, но усекается в диалоговом окне Имя и недоступна для редактирования.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие именованные диапазоны в формулах, и внесите необходимые изменения, чтобы пользователи могли редактировать эти формулы в Excel 97–2003.

Книга содержит формулы, которые ссылаются на другие закрытые книги. Если связанные книги закрыты, то при пересчете в более ранних версиях Excel значения этих формул будут ограничены 255 знаками.

Что это означает.    Если формулы в одной книге связаны с другими книгами, которые закрыты, при пересчете в Excel 97–2003 эти формулы могут отобразить не более 255 знаков. Результаты формулы могут быть усечены.

Что необходимо сделать.    Найдите ячейки, содержащие формулы, которые ссылаются на другие закрытые книги, проверьте эти ссылки и внесите необходимые изменения, чтобы избежать усечения результатов формулы в Excel 97–2003.

Формула для проверки данных содержит более 255 символов.

Что это означает.    Если формула проверки данных превышает заданный в Excel 97–2003 предел в 255 знаков, формула будет работать правильно, но будет усечена и недоступна для редактирования.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы проверки данных, и сократите число знаков в формулах, чтобы пользователи могли редактировать их в Excel 97–2003.

Некоторые формулы содержат массивы с числом элементов, превышающим поддерживаемое выбранным форматом файла. Массивы, которые содержат более 256 столбцов или 65536 строк, не будут сохранены и могут привести к разным результатам.

Что это означает.    Начиная с Excel 2010 г., вы можете использовать формулы массива, содержащие элементы для более чем 256 столбцов и 65536 строк. В Excel 2007 это превышает предел для элементов массива, что может привести к непредвиденным результатам.

Что необходимо сделать.    В средстве проверки совместимости нажмите кнопку Найти, чтобы найти ячейки, содержащие формулы с массивами, в которых число элементов превышает число, поддерживаемое в более ранних версиях Excel, и внесите необходимые изменения.

Книга содержит настраиваемые описания пользовательских функций VBA. Все настраиваемые описания будут удалены.

Что это означает.    Начиная с Excel 2010 г., вы можете использовать Visual Basic для приложений (VBA) для создания функций User-Defined (UDF) с настраиваемой описанием. Настраиваемые описания не поддерживаются в Excel 97–2007 и будут удалены.

Что необходимо сделать.    Выполнять какие-либо действия не требуется, поскольку все настраиваемые описания будут удалены.

Семантическое управление версиями 2.0.0-rc.1 | Семантическое управление версиями

В мире управления программным обеспечением существует ужасное место под названием «ад зависимости». Чем больше растет ваша система и чем больше пакетов вы интегрировать в свое программное обеспечение, тем больше шансов, что вы найдете себя, один день, в этой яме отчаяния.

В системах со многими зависимостями выпуск новых версий пакетов может быстро стать кошмаром. Если спецификации зависимостей слишком жесткие, вы находитесь в опасность блокировки версии (невозможность обновить пакет без необходимости выпускать новые версии каждого зависимого пакета).Если зависимости указано слишком свободно, вас неизбежно укусит неразборчивость версий (при условии совместимости с большим количеством будущих версий, чем это разумно). Ад зависимостей — это то, где вы находитесь, когда блокировка версий и/или неразборчивость версий мешают вам легко и безопасно продвигать свой проект вперед.

В качестве решения этой проблемы я предлагаю простой набор правил и требования, определяющие, как назначаются и увеличиваются номера версий. Чтобы эта система работала, вам сначала нужно объявить публичный API.Это может состоять из документации или обеспечиваться самим кодом. Несмотря ни на что, это важно, чтобы этот API был ясным и точным. Как только вы определите свою публику API, вы сообщаете об изменениях в нем с конкретными приращениями к вашей версии количество. Рассмотрим формат версии X.Y.Z (Major.Minor.Patch). Исправления ошибок не влияет на API, увеличивает версию патча, обратно совместимый API дополнения/изменения увеличивают младшую версию и обратно несовместимый API изменения увеличивают основную версию.

Я называю эту систему «Семантическое управление версиями». По этой схеме номера версий и то, как они меняются, передает смысл лежащего в основе кода и того, что было была изменена от одной версии к другой.

Спецификация семантической версии (SemVer)

Ключевые слова «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ТРЕБУЕТСЯ», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «СЛЕДУЕТ», «НЕ ДОЛЖЕН», «РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и «ДОПОЛНИТЕЛЬНО» в этом документе должны быть интерпретируется, как описано в RFC 2119.

  1. Программное обеспечение, использующее семантическое управление версиями, ДОЛЖНО объявить общедоступный API.Этот API могут быть объявлены в самом коде или существовать строго в документации. Как бы то ни было, оно должно быть точным и всеобъемлющим.

  2. Обычный номер версии ДОЛЖЕН принимать форму X.Y.Z, где X, Y и Z неотрицательные целые числа. X — основная версия, Y — дополнительная версия и Z. это версия патча. Каждый элемент ДОЛЖЕН увеличиваться численно с шагом один. Например: 1.9.0 -> 1.10.0 -> 1.11.0.

  3. Когда увеличивается номер основной версии, дополнительная версия и исправление версия ДОЛЖНА быть сброшена на ноль.Когда дополнительный номер версии увеличивается, версия патча ДОЛЖНА быть сброшена на ноль. Например: 1.1.3 -> 2.0.0 и 2.1.7 -> 2.2.0.

  4. После выпуска версии пакета содержимое этой версии НЕ ДОЛЖЕН быть изменен. Любые модификации должны быть выпущены как новая версия.

  5. Нулевая основная версия (0.y.z) предназначена для начальной разработки. Все может измениться в любое время. Общедоступный API нельзя считать стабильным.

  6. Версия 1.0.0 определяет общедоступный API. Способ, которым номер версии увеличивается после того, как этот выпуск зависит от этого общедоступного API и от того, как он изменения.

  7. Версия исправления Z (x.y.Z | x > 0) ДОЛЖНА быть увеличена, если только назад вводятся совместимые исправления ошибок. Исправление ошибки определяется как внутреннее изменение, исправляющее некорректное поведение.

  8. Младшая версия Y (x.Y.z | x > 0) ДОЛЖНА быть увеличена, если новая, в обратном порядке совместимые функции представлены в общедоступном API.Это должно быть увеличивается, если какие-либо общедоступные функции API помечены как устаревшие. МОЖЕТ быть увеличивается, если вводятся существенные новые функции или улучшения внутри личного кода. Он МОЖЕТ включать изменения уровня исправления. Версия патча ДОЛЖЕН быть сброшен на 0 при увеличении дополнительной версии.

  9. Основная версия X (X.y.z | X > 0) ДОЛЖНА быть увеличена, если какая-либо обратная в общедоступный API вносятся несовместимые изменения. МОЖЕТ включать незначительные и изменения уровня патча.Исправление и второстепенная версия ДОЛЖНЫ быть сброшены до 0, когда основная версия увеличивается.

  10. Предварительная версия МОЖЕТ быть обозначена добавлением тире и ряда идентификаторы, разделенные точками, сразу после версии исправления. Идентификаторы ДОЛЖЕН состоять только из буквенно-цифровых символов ASCII и тире [0-9A-Za-z-]. Предварительные версии удовлетворяют требованиям, но имеют более низкий приоритет, чем соответствующие нормальная версия. Примеры: 1.0.0-альфа, 1.0.0-альфа.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.

  11. Версия сборки МОЖЕТ обозначаться добавлением знака плюс и ряда точек разделенные идентификаторы сразу после версии исправления или предварительной версии версия.Идентификаторы ДОЛЖНЫ состоять только из буквенно-цифровых символов ASCII и тире. [0-9А-За-з-]. Версии сборки удовлетворяют требованиям и имеют более высокий приоритет, чем связанная нормальная версия. Примеры: 1.0.0+сборка 1, 1.3.7+сборка 11.e0f985a.

  12. Приоритет ДОЛЖЕН рассчитываться путем разделения версии на основную, второстепенную, идентификаторы исправления, предварительной версии и сборки в указанном порядке. Основные, второстепенные и версии патчей всегда сравниваются численно. Предварительная версия и сборочная версия приоритет ДОЛЖЕН быть определен путем сравнения каждого идентификатора, разделенного точкой, как следующим образом: идентификаторы, состоящие только из цифр, сравниваются численно и идентификаторы с буквами или тире сравниваются лексически в порядке сортировки ASCII.Числовые идентификаторы всегда имеют более низкий приоритет, чем нечисловые идентификаторы. Пример: 1.0.0-альфа < 1.0.0-альфа.1 < 1.0.0-бета.2 < 1.0.0-бета.11 < 1.0.0-rc.1 < 1.0.0-rc.1+сборка 1 < 1.0.0 < 1.0.0+0.3.7 < 1.3.7+сборка < 1.3.7+сборка 2.b8f12d7 < 1.3.7+сборка 11.e0f985a.

Зачем использовать семантическое управление версиями?

Это не новая и не революционная идея. На самом деле, вы, вероятно, что-то делаете уже близко к этому. Проблема в том, что «близко» недостаточно.Без соответствие какой-либо формальной спецификации, номера версий по существу бесполезен для управления зависимостями. Дав имя и очистив определение вышеуказанным идеям, становится легко сообщить о своих намерениях пользователям вашего программного обеспечения. Как только эти намерения станут ясными, гибкими (но не слишком гибкий) наконец-то можно сделать спецификации зависимостей.

Простой пример продемонстрирует, как Semantic Versioning может создать зависимость черт дело в прошлом. Рассмотрим библиотеку Firetruck.«Требуется Семантически версионный пакет под названием «Ladder». В то время, когда пожарная машина создан, Ladder находится в версии 3.1.0. Поскольку Firetruck использует некоторые функции который был впервые представлен в версии 3.1.0, вы можете смело указывать Ladder зависимость больше или равна 3.1.0, но меньше 4.0.0. Теперь, когда Ladder версии 3.1.1 и 3.2.0 стали доступны, вы можете выпустить их на свой систему управления пакетами и знать, что они будут совместимы с существующими зависимое ПО.

Как ответственный разработчик вы, конечно же, захотите проверить, обновления пакетов функционируют, как рекламируется.Реальный мир — грязное место; мы ничего не можем с этим поделать, но будьте бдительны. Что вы можете сделать, так это позволить Семантическое управление версиями предоставляет вам разумный способ выпуска и обновления пакетов без необходимости запускать новые версии зависимых пакетов, экономя ваше время и хлопоты.

Если все это звучит желательно, все, что вам нужно сделать, чтобы начать использовать Semantic Управление версиями — это объявить, что вы делаете это, а затем следовать правилам. Связь на этот веб-сайт из вашего README, чтобы другие знали правила и могли извлечь из них пользу. их.

Часто задаваемые вопросы

Что делать с исправлениями на начальной стадии разработки 0.y.z?

Самое простое, что можно сделать, это начать первоначальную версию разработки с 0.1.0. а затем увеличивать младшую версию для каждого последующего выпуска.

Как узнать, когда выпустить версию 1.0.0?

Если ваше программное обеспечение используется в производстве, возможно, оно уже 1.0.0. Если у вас есть стабильный API, от которого зависят пользователи, вам следует быть 1.0.0. Если вы сильно беспокоитесь об обратной совместимости, вам следует наверное уже 1.0.0.

Не препятствует ли это быстрой разработке и быстрой итерации?

Нулевая основная версия предназначена для быстрой разработки. Если вы меняете API каждый день вы должны быть либо еще в версии 0.x.x, либо на отдельном ветка разработки работает над следующей основной версией.

Если даже мельчайшие несовместимые с предыдущими изменениями общедоступный API потребуют существенного увеличения версии, не слишком ли быстро я окажусь на версии 42.0.0?

Это вопрос ответственного развития и дальновидности.Несовместимо изменения не следует легкомысленно вносить в программное обеспечение, имеющее много зависимый код. Затраты на обновление могут быть значительными. Необходимость сбрасывать основные версии для выпуска несовместимых изменений означает, что вы продумайте влияние ваших изменений и оцените соотношение затрат и выгод вовлеченный.

Документировать весь общедоступный API слишком сложно!

Вы, как профессиональный разработчик, несете ответственность за надлежащее документирование программное обеспечение, предназначенное для использования другими лицами.Управление сложностью программного обеспечения — это Чрезвычайно важная часть поддержания эффективности проекта, и это трудно сделать, если никто не знает, как использовать ваше программное обеспечение или какие методы безопасно вызывать. В в долгосрочной перспективе, семантическое управление версиями и настойчивость в четко определенной общедоступной API может обеспечить бесперебойную работу всех и каждого.

Что делать, если я случайно выпущу несовместимое с предыдущими версиями изменение как дополнительную версию?

Как только вы поймете, что нарушили спецификацию Semantic Versioning, исправьте проблему и выпустить новую минорную версию, которая исправляет проблему и восстанавливает обратную совместимость.Помните, что недопустимо изменять версии релизов, даже в этом случае. Если это уместно, задокументируйте проблемную версию и сообщите своим пользователям о проблеме, чтобы они знают об оскорбительной версии.

Что делать, если я обновляю собственные зависимости, не меняя общедоступный API?

Это будет считаться совместимым, поскольку не влияет на общедоступный API. Программное обеспечение, которое явно зависит от тех же зависимостей, что и ваш пакет должны иметь свои собственные спецификации зависимостей, и автор заметит любые конфликты.Определение того, является ли изменение уровнем исправления или второстепенным уровнем модификация зависит от того, обновили ли вы свои зависимости, чтобы исправить ошибка или ввести новую функциональность. Обычно я ожидаю дополнительный код для последнего случая, и в этом случае это, очевидно, незначительное повышение уровня.

Что делать, если исправляемая ошибка возвращает код в соответствие с общедоступным API (т. е. код неправильно синхронизирован с общедоступной документацией по API)?

Используйте здравый смысл.Если у вас огромная аудитория, которая будет резко воздействовать, изменив поведение обратно на то, что предполагал общедоступный API, а затем может быть лучше выполнить выпуск основной версии, даже если исправление может строго считать выпуском исправления. Помните, что семантическое управление версиями — это все о передаче смысла тем, как меняется номер версии. Если эти изменения важны для ваших пользователей, используйте номер версии, чтобы сообщить им.

Как поступить с устаревшей функциональностью?

Прекращение поддержки существующих функций является нормальной частью разработки программного обеспечения и часто требуется для продвижения вперед.Когда вы объявляете устаревшим часть своего общедоступного API, вы должны сделать две вещи: (1) обновить свою документацию, чтобы пользователи знали об изменении, (2) выпустить новый второстепенный выпуск с учетом устаревания. Прежде чем вы полностью удалите функциональные возможности в новом основном выпуске, должен быть хотя бы один дополнительный выпуск, содержащий устаревшую версию, чтобы пользователи могли плавно перейти на новый API.

О

Спецификация Semantic Versioning создана Томом Престоном-Вернером, изобретателем Gravatars и соучредителем GitHub.

Если вы хотите оставить отзыв, откройте вопрос на GitHub.

Лицензия

Creative Commons ― CC BY 3.0 http://creativecommons.org/licenses/by/3.0/

PEP 440 — Идентификация версии и спецификация зависимостей

Ключевые слова «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ТРЕБУЕТСЯ», «ДОЛЖЕН», «НЕ ДОЛЖЕН», «СЛЕДУЕТ», «НЕ СЛЕДУЕТ», «РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и «ДОПОЛНИТЕЛЬНО» в этом document должны интерпретироваться, как описано в RFC 2119 .

«Проекты» — это программные компоненты, доступные для интеграции.Проекты включают библиотеки Python, фреймворки, скрипты, плагины, приложения, наборы данных или другие ресурсы, а также различные их комбинации. Общедоступные проекты Python обычно регистрируются на Индекс пакетов Python.

«Релизы» — это уникальные снимки проекта.

«Дистрибутивы» — это упакованные файлы, которые используются для публикации и распространить релиз.

«Инструменты сборки» — это автоматизированные инструменты, предназначенные для работы в системах разработки, создание исходных и бинарных дистрибутивных архивов.Инструменты сборки также могут быть вызывается инструментами интеграции для создания программного обеспечения, распространяемого как sdists, а не готовые двоичные архивы.

«Индексные серверы» — это активные реестры распространения, которые публикуют версии и метаданные зависимостей и наложите ограничения на разрешенные метаданные.

«Инструменты публикации» — это автоматизированные инструменты, предназначенные для запуска в процессе разработки. системы и загружать исходные и бинарные архивы дистрибутива на индексные серверы.

«Инструменты установки» — это инструменты интеграции, специально предназначенные для работы на цели развертывания, потребляющие исходные и двоичные архивы дистрибутивов из индексный сервер или другое указанное место и их развертывание в целевом система.

«Автоматизированные инструменты» — это собирательный термин, охватывающий инструменты сборки, индексные серверы, инструменты публикации, инструменты интеграции и любое другое программное обеспечение, которое производит или использует версию дистрибутива и метаданные зависимостей.

Дистрибутивы идентифицируются общедоступным идентификатором версии, который поддерживает все определенные операции сравнения версий

Схема версии используется как для описания версии дистрибутива предоставляемые конкретным дистрибутивным архивом, а также размещать ограничения на версию зависимостей, необходимых для сборки или запустите программное обеспечение.

Идентификаторы общедоступных версий

Идентификаторы канонических общедоступных версий ДОЛЖНЫ соответствовать следующим схема:

 [N!]N(.N)*[{a|b|rc}N][.postN][.devN]
 

Идентификаторы общедоступных версий НЕ ДОЛЖНЫ включать начальные или конечные пробелы.

Идентификаторы общедоступных версий ДОЛЖНЫ быть уникальными в пределах данного дистрибутива.

Инструментам установки СЛЕДУЕТ игнорировать любые общедоступные версии, которые не соответствуют этой схеме, но ДОЛЖНЫ также включать нормализацию, указанную ниже.Инструменты установки МОГУТ предупреждать пользователя о несовместимых или неоднозначных версиях. обнаруживаются.

См. также Приложение B: Анализ строк версии с помощью регулярных выражений , которые предоставляет регулярное выражение для проверки строгого соответствия каноническому формат, а также более разрешающее регулярное выражение, принимающее входные данные, которые может потребовать последующей нормализации.

Идентификаторы общедоступной версии разделены на пять сегментов:

  • Сегмент эпохи: N!
  • Сегмент выпуска: N(.Н)*
  • Предварительный сегмент: {a|b|rc}N
  • Сегмент после выпуска: .postN
  • Сегмент разрабатываемой версии: .devN

Любой данный выпуск будет «финальным выпуском», «предварительным выпуском», «пост-выпуском» или «выпуск для разработки», как определено в следующих разделах.

Все числовые компоненты ДОЛЖНЫ быть неотрицательными целыми числами, представленными в виде последовательностей цифр ASCII.

Все числовые компоненты ДОЛЖНЫ интерпретироваться и располагаться в соответствии с их числовое значение, а не текстовые строки.

Все числовые компоненты МОГУТ быть равны нулю. За исключением случаев, описанных ниже для сегмент выпуска, числовая составляющая нуля не имеет особого значения помимо того, что всегда является наименьшим возможным значением в порядке версий.

Примечание

Некоторые трудночитаемые идентификаторы версий разрешены этой схемой в чтобы лучше приспособиться к широкому спектру методов управления версиями в существующих общедоступных и частных проектах Python.

Соответственно, некоторые методы управления версиями, которые технически разрешенные PEP, настоятельно не рекомендуются для новых проектов.Где это так, соответствующие детали отмечены в следующем разделы.

Идентификаторы локальной версии

Идентификаторы локальной версии ДОЛЖНЫ соответствовать следующей схеме:

 <идентификатор общедоступной версии>[+<метка локальной версии>]
 

Они состоят из обычного общедоступного идентификатора версии (как определено в предыдущий раздел) вместе с произвольной «меткой локальной версии», разделенной от общедоступного идентификатора версии плюсом. Ярлыки локальной версии имеют никакой конкретной семантики не назначается, но накладываются некоторые синтаксические ограничения.

Идентификаторы локальной версии используются для полного обозначения API (и, если применимо, ABI) совместимые исправленные версии исходных проектов. Например, эти могут быть созданы разработчиками приложений и системными интеграторами путем применения определенные исправления ошибок при обновлении до новой основной версии быть слишком разрушительным для приложения или другой интегрированной системы (например, дистрибутив Linux).

Включение метки местной версии позволяет различать вышестоящие выпуски из потенциально измененных перестроений нижестоящими интеграторы.Использование локального идентификатора версии не влияет на тип выпуска, но применительно к исходному дистрибутиву указывает, что он может не содержать тот же самый код, что и соответствующий вышестоящий выпуск.

Чтобы гарантировать, что идентификаторы локальных версий могут быть легко включены как часть имена файлов и URL-адреса, а также во избежание несоответствий форматирования в шестнадцатеричном формате. хэш-представления, метки локальной версии ДОЛЖНЫ быть ограничены следующими набор разрешенных символов:

  • Буквы ASCII ( [a-zA-Z] )
  • цифр ASCII ( [0-9] )
  • периодов ( . )

Метки локальной версии ДОЛЖНЫ начинаться и заканчиваться буквой или цифрой ASCII.

При сравнении и заказе локальных версий учитывается каждый сегмент локального версия (делится на . ) отдельно. Если сегмент полностью состоит из цифры ASCII, тогда этот раздел следует рассматривать как целое число для сравнения целей, и если сегмент содержит какие-либо буквы ASCII, то этот сегмент лексикографически по сравнению с нечувствительностью к регистру. При сравнении числового и лексикографический сегмент, числовой раздел всегда сравнивается как больший, чем лексикографический сегмент.Кроме того, локальная версия с большим количеством сегменты всегда будут сравниваться как большие, чем локальная версия с меньшим количеством сегментов, если сегменты более короткой локальной версии совпадают с началом точно из более длинных сегментов локальной версии.

«Верхний проект» — это проект, который определяет свои собственные общедоступные версии. А «нижестоящий проект» — это проект, который отслеживает и перераспределяет вышестоящий проект, потенциальное резервное копирование безопасности и исправлений ошибок из более поздних версий восходящий проект.

Идентификаторы локальной версии НЕ ДОЛЖНЫ использоваться при публикации в основной ветке проектов на общедоступный индексный сервер, но МОЖЕТ использоваться для идентификации частных сборки, созданные непосредственно из исходного кода проекта. Местный идентификаторы версии СЛЕДУЕТ использовать нижестоящим проектам при выпуске версия, API-совместимая с версией вышестоящего проекта определяется общедоступным идентификатором версии, но содержит дополнительные изменения (например, исправления ошибок). Поскольку индекс пакетов Python предназначен исключительно для индексирование и размещение исходных проектов, он НЕ ДОЛЖЕН разрешать использование локальных идентификаторы версий.

Исходные дистрибутивы, использующие локальный идентификатор версии, ДОЛЖНЫ предоставлять метаданные расширения python.integrator (как определено в PEP 459).

Финальные выпуски

Идентификатор версии, состоящий исключительно из сегмента выпуска и необязательно идентификатор эпохи называется «окончательным выпуском».

Сегмент выпуска состоит из одного или нескольких неотрицательных целых чисел. значения, разделенные точками:

Окончательные выпуски в рамках проекта ДОЛЖНЫ быть последовательно пронумерованы. нарастающая мода, иначе автоматизированные средства не смогут обновиться их правильно.

Сравнение и упорядочивание сегментов выпуска учитывает числовое значение каждого компонента сегмента выпуска по очереди. При сравнении выпуска отрезки с разным количеством компонентов, более короткий отрезок при необходимости дополняется дополнительными нулями.

Хотя разрешено любое количество дополнительных компонентов после первого по этой схеме наиболее распространены варианты использования двух компонентов («major.minor») или три компонента («major.minor.micro»).

Например:

 0.9
0.9.1
0.9.2
...
0.9.10
0.9.11
1,0
1.0.1
1.1
2.0
2.0.1
...
 

Серия выпусков — это любой набор окончательных номеров выпусков, начинающихся с общий префикс. Например, 3.3.1 , 3.3.5 и 3.3.9.45 все часть серии выпуска 3.3 .

Примечание

X.Y и X.Y.0 не считаются разными номерами выпуска, т.к. неявные правила сравнения сегментов выпуска расширяют два компонента форму на X.Y.0 при сравнении с любым сегментом выпуска, включающим три компонента.

Также разрешены сегменты выпуска на основе даты. Пример даты на основе схема выпуска с использованием года и месяца выпуска:

 2012.4
2012.7
2012.10
2013.1
2013.6
...
 

Предварительные версии

Некоторые проекты используют предварительный цикл «альфа, бета, релиз-кандидат» для поддерживать тестирование своих пользователей перед выпуском финальной версии.

Если эти предварительные выпуски используются как часть цикла разработки проекта, обозначено включением предварительного сегмента в идентификатор версии:

 Х.ЯН # Альфа-релиз
X.YbN # Бета-версия
X.YrcN # Релиз-кандидат
X.Y # Финальный релиз
 

Идентификатор версии, состоящий исключительно из сегмента выпуска и сегмент предварительной версии называется «предварительной версией».

Сегмент предварительной версии состоит из алфавитного идентификатора предварительной версии вместе с неотрицательным целым числом. Пре-релизы для данный выпуск упорядочен сначала по фазам (альфа, бета, релиз-кандидат) а затем по числовому компоненту в рамках этой фазы.

Инструменты установки

МОГУТ принимать оба выпуска c и rc для общего сегмент выпуска для обработки некоторых существующих устаревших дистрибутивов.

Инструментам установки

СЛЕДУЕТ интерпретировать версии c как эквивалентные rc версий (то есть c1 указывает на ту же версию, что и rc1 ).

Инструменты сборки, инструменты публикации и серверы индексов СЛЕДУЕТ запрещать создание выпусков rc и c для общего сегмента выпуска.

Пост-релизы

Некоторые проекты используют пост-релизы для устранения незначительных ошибок в окончательном релизе. которые не влияют на распространяемое ПО (например, исправление ошибки в примечаниях к выпуску).

При использовании в рамках цикла разработки проекта эти пост-релизы обозначено включением пострелизного сегмента в идентификатор версии:

Идентификатор версии, который включает пострелизный сегмент без сегмент выпуска для разработки называется «пост-релиз».

Пострелизный сегмент состоит из строки .post , за которой следует неотрицательное целочисленное значение. Пост-релизы заказываются по их числовой компонент сразу после соответствующего выпуска, и перед любым последующим выпуском.

Примечание

Использование пост-релизов для публикации отладочных выпусков, содержащих фактические исправления ошибок настоятельно не рекомендуется. В общем, лучше использовать более длинный номер версии и увеличивать конечный компонент для каждого отладочного выпуска.

Пост-релизы также разрешены для пре-релизов:

 X.YaN.postM # Пост-релиз альфа-релиза
X.YbN.postM # Пост-релиз бета-версии
X.YrcN.postM # Пост-релиз релиз-кандидата
 

Примечание

Создание пост-релизов пре-релизов настоятельно не рекомендуется, т.к. это затрудняет анализ идентификатора версии для читателей. В общем, гораздо понятнее просто создать новый предварительная версия путем увеличения числового компонента.

Разработки

Некоторые проекты выпускают регулярные выпуски для разработки и системные упаковщики. (особенно для дистрибутивов Linux) может потребоваться создание ранних выпусков непосредственно из системы управления версиями, которые не конфликтуют с более поздним проектом релизы.

Если они используются как часть цикла разработки проекта, эти выпуски обозначаются включением сегмента выпуска для разработки в идентификатор версии:

 X.Y.devN # Версия для разработчиков
 

Идентификатор версии, включающий сегмент разрабатываемой версии, называется «релиз для разработчиков».

Сегмент разрабатываемой версии состоит из строки .dev , за которым следует неотрицательное целочисленное значение. Разрабатываемые релизы заказаны по их числовой составляющей, непосредственно перед соответствующим выпуском (и перед любыми предварительными выпусками с тем же сегментом выпуска), и после любой предыдущий выпуск (включая любые пост-релизы).

Разрабатываемые выпуски также разрешены для предварительных выпусков и пост-релизы:

 X.YaN.devM # Разрабатываемый выпуск альфа-версии
ИКС.YbN.devM # Разрабатываемый выпуск бета-версии
X.YrcN.devM # Разрабатываемый выпуск релиз-кандидата
X.Y.postN.devM # Разрабатываемый выпуск пост-релиза
 

Примечание

Хотя они могут быть полезны для целей непрерывной интеграции, публикация выпуски предварительных выпусков в общедоступный индекс общего назначения серверам настоятельно не рекомендуется, так как это делает идентификатор версии трудно разобрать для читателей-людей. Если такой выпуск необходим опубликовано, гораздо яснее вместо этого создать новый предварительная версия путем увеличения числового компонента.

Выпуски пост-релизов для разработки также настоятельно не рекомендуются, но они могут подойти для проектов, использующих пост-релиз обозначение для полных отладочных выпусков, которые могут включать изменения кода.

Эпохи версий

Если эта эпоха включена в идентификатор версии, она появляется перед всеми остальными компоненты, отделенные от сегмента выпуска восклицательным знаком:

 E!X.Y # Идентификатор версии с эпохой
 

Если явная эпоха не указана, неявная эпоха равна 0 .

Большинство идентификаторов версий не будут включать эпоху, так как явная эпоха требуется только в том случае, если проект меняет способ обработки нумерации версий в таким образом, что обычные правила упорядочения версий дадут неправильный отвечать. Например, если в проекте используются версии на основе даты, такие как 2014.04 и хотел бы переключиться на семантические версии, такие как 1.0 , тогда новые выпуски будут идентифицированы как старше , чем выпуски на основе даты при использовании обычной схемы сортировки:

 1.0
1.1
2.0
2013.10
2014.04
 

Однако, указав явную эпоху, порядок сортировки можно изменить соответствующим образом, так как все версии более поздних эпох сортируются после версий из более ранней эпохи:

 2013.10
2014.04
1!1.0
1!1.1
1!2.0
 

Нормализация

Для обеспечения лучшей совместимости с существующими версиями количество «альтернативных» синтаксисов, которые ДОЛЖНЫ учитываться при разборе версии. Эти синтаксисы ДОЛЖНЫ учитываться при анализе версии, однако они должны быть «нормализованы» к стандартному синтаксису, определенному выше.

Чувствительность к регистру

Все буквы ascii должны интерпретироваться без учета регистра внутри версии и нормальная форма строчная. Это позволяет использовать такие версии, как 1.1RC1 , которые будет нормализовано до 1.1rc1 .

Целочисленная нормализация

Все целые числа интерпретируются с помощью встроенной функции int() и нормализуются к строковая форма вывода. Это означает, что целочисленная версия 00 будет нормализуется до 0 , а 09000 нормализуется до 9000 .Это не справедливо для целых чисел внутри буквенно-цифрового сегмента локальной версии например, 1.0+foo0100 , который уже находится в нормализованной форме.

Сепараторы предварительного выпуска

Предварительные выпуски должны поддерживать . , - или _ разделитель между релизный сегмент и предварительный релизный сегмент. Нормальная форма для этого без разделителя. Это позволяет использовать такие версии, как 1.1.a1 или 1.1-a1 . который будет нормализован до 1.1а1 . Он также должен позволять сепаратору использоваться между означающим перед выпуском и числительным. Это позволяет версии например 1.0a.1 , который будет нормализован до 1.0a1 .

Предварительное правописание

Предварительные версии позволяют использовать дополнительные варианты написания alpha , beta , c , до и предварительная версия для a , b , rc , rc и rc соответственно.Это позволяет использовать такие версии, как 1.1alpha1 , 1.1beta2 или 1.1c3 , которые нормализуются до 1.1a1 , 1.1b2 и 1.1rc3 . В каждом случае дополнительное написание следует считать эквивалентным их обычному формы.

Неявный предварительный номер

Предварительные версии позволяют опускать цифру, в этом случае она неявно предполагается быть 0 . Обычной формой для этого является явное включение 0 .Этот допускает такие версии, как 1.2a , которые нормализованы до 1.2a0 .

Сепараторы после выпуска

Почтовые выпуски позволяют . , - или _ разделитель, а также пропуская сепаратор все вместе. Обычная форма этого — . Сепаратор . Это позволяет использовать такие версии, как 1.2-post2 или 1.2post2 , которые нормализуются до 1.2.пост2 . Подобно разделителю перед выпуском, это также позволяет опционально разделитель между знаком пост-релиза и цифрой.Это позволяет такие версии, как 1.2.post-2 , которые будут нормализованы до 1.2.post2 .

Правописание после выпуска

Пост-релизы позволяют использовать дополнительные варианты написания rev и r . Это позволяет версии, такие как 1.0-r4 , который нормализуется до 1.0.post4 . Как и в случае с предварительных выпусках дополнительные варианты написания должны считаться эквивалентными их нормальные формы.

Неявный номер пост-релиза

Пост-релизы позволяют опустить цифру, в этом случае она неявно предполагается быть 0 .Обычной формой для этого является явное включение 0 . Этот позволяет такие версии, как 1.2.post , которые нормализованы до 1.2.post0 .

Неявные пост-релизы

Пост-релизы позволяют полностью опустить сигнификатор пост . Когда используешь в этой форме разделитель ДОЛЖЕН быть - , и никакая другая форма не допускается. Это позволяет такие версии, как 1.0-1 , должны быть нормализованы до 1.0.post1 . Этот конкретный нормализация НЕ ДОЛЖНА использоваться в сочетании с неявным пост-релизом правило числа.Другими словами, 1.0- является , а не допустимой версией, и это , а не . нормализовать до 1.0.post0 .

Сепараторы выпуска для разработки

Разрабатываемые выпуски позволяют использовать . , - или разделитель _ , а также опуская разделитель все вместе. Обычная форма этого — . разделитель. Это позволяет использовать такие версии, как 1.2-dev2 или 1.2dev2 , которые нормализовать до 1.2.dev2 .

Неявный номер выпуска разработки

Разрабатываемые выпуски позволяют опустить цифру, в этом случае она неявно предполагается равным 0 . Обычная форма для этого должна включать 0 явно. Это позволяет использовать такие версии, как 1.2.dev , которые нормализованы до 1.2.dev0 .

Сегменты локальной версии

С локальной версией, в дополнение к использованию . как разделитель сегментов также допустимо использование - и _ .Нормальная форма используя . символов. Это позволяет использовать такие версии, как 1.0+ubuntu-1 . нормализовано до 1.0+ubuntu.1 .

Предшествующий символ v

Для поддержки общего обозначения версии v1.0 версии могут быть которому предшествует один буквальный символ v . Этот символ ДОЛЖЕН быть проигнорирован для всех целей и должны быть исключены из всех нормализованных форм версия. Одна и та же версия с и без считается эквивалентной.

Начальный и конечный пробелы

Пробелы в начале и конце должны игнорироваться и удаляться из всех нормализованные формы версии. Сюда входят "" , \t , \n , \r , \f и \v . Это позволяет разумно обрабатывать случайные пробелы, например, версия типа 1.0\n , которая нормализуется до 1.0 .

Примеры схем совместимых версий

Схема стандартной версии предназначена для охвата широкого спектра методы идентификации в общедоступных и частных проектах Python.В практике, единственный проект, пытающийся использовать всю предлагаемую гибкость схема создала бы ситуацию, когда пользователи-люди испытывали трудности выяснение относительного порядка версий, даже если правила выше убедитесь, что все совместимые инструменты будут последовательно их заказывать.

Следующие примеры иллюстрируют небольшой выбор различных подходы, которые проекты могут выбрать для идентификации своих релизов, в то же время гарантируя, что «последний выпуск» и «последний стабильный выпуск» могут быть легко определены как пользователями-людьми, так и автоматизированными инструментами.

Простая версия «major.minor»:

Простая версия «major.minor.micro»:

 1.1.0
1.1.1
1.1.2
1.2.0
...
 

Версии «major.minor» с альфа-, бета-версией и кандидатом предварительные выпуски:

 0,9
1.0a1
1.0a2
1.0b1
1.0rc1
1,0
1.1а1
...
 

Версии «major.minor» с разрабатываемыми выпусками, релиз-кандидаты и пост-релизы для мелких исправлений:

 0,9
1.0.dev1
1.0.dev2
1.0.dev3
1.0.dev4
1.0c1
1.0c2
1,0
1.0.пост1
1.1.dev1
...
 

Выпуски на основе даты, с использованием возрастающего серийного номера в течение каждого года, с пропуском ноль:

 2012.1
2012.2
2012.3
...
2012.15
2013.1
2013.2
...
 

Сводка разрешенных суффиксов и относительный порядок

Примечание

Этот раздел предназначен в первую очередь для авторов инструментов, автоматически обрабатывать метаданные дистрибутива, а не разработчики дистрибутивов Python, определяющих схему управления версиями.

Сегмент эпохи идентификаторов версии ДОЛЖЕН быть отсортирован в соответствии с числовое значение данной эпохи.Если сегмент эпохи отсутствует, неявное числовое значение 0 .

Сегмент выпуска идентификаторов версии ДОЛЖЕН быть отсортирован в в том же порядке, что и сортировка кортежей Python, когда нормализованный сегмент выпуска проанализировано следующим образом:

 кортеж(карта(int, release_segment.split(".")))
 

Все сегменты выпуска, участвующие в сравнении, ДОЛЖНЫ быть преобразованы в последовательной длины путем заполнения более коротких сегментов нулями по мере необходимости.

В числовой версии ( 1.0 , 2.7.3 ), следующие суффиксы разрешены и ДОЛЖНЫ быть заказаны, как показано:

 .devN, aN, bN, rcN, <без суффикса>, .postN
 

Обратите внимание, что c считается семантически эквивалентным rc и должен быть отсортировано, как если бы это было rc . Инструменты МОГУТ отклонить случай наличия одного и того же N как для c , так и для rc в том же сегменте выпуска, что и неоднозначный и оставаться в соответствии с PEP.

В рамках альфа-версии ( 1.0a1 ), бета-версии ( 1.0b1 ) или версии-кандидата ( 1.0rc1 , 1.0c1 ), следующие суффиксы разрешены и ДОЛЖНЫ быть заказан как показано:

 .devN, <без суффикса>, .postN
 

В пострелизе ( 1.0.post1 ) разрешены следующие суффиксы и ДОЛЖЕН быть заказан как показано:

Обратите внимание, что devN и postN ДОЛЖНЫ всегда предваряться точкой, даже при использовании сразу после числовой версии (например,грамм. 1.0.dev456 , 1.0.post1 ).

В сегменте предварительного, пострелизного или разрабатываемого релиза с общий префикс, порядок ДОЛЖЕН быть по значению числового компонента.

Следующий пример охватывает множество возможных комбинаций:

 1.dev0
1.0.dev456
1.0a1
1.0a2.dev456
1.0a12.dev456
1.0a12
1.0b1.dev456
1.0b2
1.0b2.post345.dev456
1.0b2.post345
1.0rc1.dev456
1.0rc1
1,0
1.0+абв.5
1.0+абв.7
1,0+5
1.0.post456.dev34
1.0.post456
1.0.15
1.1.dev1
 

Порядок версий в разных версиях метаданных

Метаданные версии 1.0 (PEP 241) и метаданные версии 1.1 (PEP 314) не определяют стандарт идентификация версии или схема заказа. Однако метаданные v1.2 (PEP 345) указывает схему, определенную в PEP 386.

Из-за характера простого API-интерфейса установщика невозможно установщик, чтобы знать, какой версией метаданных был конкретный дистрибутив. с использованием. Кроме того, установщикам требовалась возможность создания разумного приоритетный список, который включает все или как можно больше версий проект, чтобы определить, какие версии он должен установить.Эти требования требуют стандартизации одного механизма синтаксического анализа, который будет использоваться для всех версии проекта.

В связи с вышеизложенным этот PEP ДОЛЖЕН использоваться для всех версий метаданных и заменяет PEP 386 даже для метаданных v1.2. Инструменты ДОЛЖНЫ игнорировать любые версии который не может быть проанализирован правилами в этом PEP, но МОЖЕТ вернуться к реализация определенных схем синтаксического анализа и упорядочивания версий, если нет версий соответствующие этому PEP доступны.

Пользователи дистрибутива могут явно удалить несовместимые версии из любые частные индексы пакетов, которыми они управляют.

Совместимость с другими версиями схем

Некоторые проекты могут использовать схему версий, которая требует перевод, чтобы соответствовать схеме общедоступной версии, определенной в этот ПЭП. В таких случаях конкретная версия проекта может быть сохранена в метаданные, в то время как переведенная общедоступная версия публикуется в поле версии.

Это позволяет автоматическим средствам распространения обеспечивать постоянно правильные заказ опубликованных выпусков, при этом позволяя разработчикам использовать внутреннюю схему управления версиями, которую они предпочитают для своих проектов.

Семантическое управление версиями

Семантическое управление версиями — это популярная схема идентификации версий, более предписывающий, чем этот PEP, в отношении значимости различных элементы номера выпуска. Даже если проект решит не соблюдать детали семантического версионирования, схему стоит понимать как он охватывает многие вопросы, которые могут возникнуть, когда вы зависите от других дистрибутивов и при публикации дистрибутива, на который полагаются другие.

«Майор.Minor.Patch» (описанный в этом PEP как «major.minor.micro») аспекты семантического управления версиями (пункты 1-8 в спецификации 2.0.0) полностью совместимы со схемой версий, определенной в этом PEP, и этими аспектами поощряется.

Семантические версии, содержащие дефис (пререлизы — пункт 10) или знак плюс (сборки — пункт 11) не совместимы с этим PEP и не разрешены в поле общедоступной версии.

Один из возможных механизмов перевода такого источника на основе семантической версии метки для совместимых общедоступных версий — использовать код .суффикс devN к укажите соответствующий порядок версий.

Информация о конкретной сборке также может быть включена в метки локальной версии.

Метки версий на основе DVCS

Многие инструменты сборки интегрируются с распределенными системами контроля версий, такими как Git и Mercurial, чтобы добавить к версии идентифицирующий хэш. идентификатор. Поскольку хэши нельзя надежно упорядочить, такие версии не разрешено в поле общедоступной версии.

Как и в случае с семантическим управлением версиями, общедоступный .Суффикс devN может использоваться для уникально идентифицировать такие выпуски для публикации, в то время как исходный DVCS на основе метка может быть сохранена в метаданных проекта.

Идентифицирующая хеш-информация также может быть включена в метки локальной версии.

Управление версиями базы данных Olson

Проект pytz наследует свою схему управления версиями от соответствующего Схема управления версиями базы данных часовых поясов Олсона: за годом следует строчная буква символ, указывающий версию базы данных в течение этого года.

Это можно преобразовать в совместимый общедоступный идентификатор версии как <год>.<серийный номер> , где серийный номер начинается с нуля или единицы (для выпуск «a») и увеличивается с каждой последующей базой данных. обновление в течение года.

Как и в случае с другими идентификаторами переведенных версий, соответствующий Olson версия базы данных может быть записана в метаданных проекта.

Спецификатор версии состоит из ряда предложений версии, разделенных запятые.Например:

 ~= 0,9, >= 1,0, != 1.3.4.*, < 2,0
 

Оператор сравнения определяет тип предложения версии:

Запятая (",") эквивалентна логическому оператору и : кандидат версия должна соответствовать всем заданным предложениям версии, чтобы соответствовать спецификатор в целом.

Пробел между условным оператором и следующей версией идентификатор является необязательным, как и пробелы вокруг запятых.

Когда несколько версий-кандидатов соответствуют спецификатору версии, предпочтительный версия ДОЛЖНА быть последней версией, как определено согласованным порядок, определяемый стандартной схемой версии.Так или иначе предварительные выпуски рассматриваются как версии-кандидаты. описано в разделе Обработка предварительных выпусков.

За исключением особо оговоренных ниже случаев, идентификаторы локальных версий НЕ ДОЛЖНЫ быть разрешено в спецификаторах версии, а метки локальной версии ДОЛЖНЫ игнорироваться полностью при проверке соответствия версий-кандидатов заданной версии спецификатор.

Совместимый выпуск

Пункт совместимого выпуска состоит из оператора совместимого выпуска ~= и идентификатор версии.Он соответствует любой ожидаемой версии-кандидату. быть совместимым с указанной версией.

Указанный идентификатор версии должен быть в стандартном формате, описанном в Схема версии. Идентификаторы локальной версии НЕ разрешены в этом спецификатор версии.

Для данного идентификатора выпуска V.N пункт о совместимом выпуске примерно эквивалентно паре предложений сравнения:

Этот оператор НЕ ДОЛЖЕН использоваться с одним номером версии сегмента, например ~=1 .

Например, следующие группы предложений версии эквивалентны:

 ~= 2,2
>= 2,2, == 2,*

~= 1.4.5
>= 1.4.5, == 1.4.*
 

Если в пункт о совместимом выпуске как V.N.suffix , тогда суффикс игнорируется при определении необходимого совпадения префикса:

 ~= 2.2.post3
>= 2.2.post3, == 2.*

~= 1.4.5a4
>= 1.4.5a4, == 1.4.*
 

Правила заполнения для сравнения сегментов выпуска означают, что предполагаемый степень прямой совместимости в пункте о совместимом выпуске может быть управляется добавлением дополнительных нулей к спецификатору версии:

 ~= 2.2.0
>= 2.2.0, == 2.2.*

~= 1.4.5.0
>= 1.4.5.0, == 1.4.5.*
 

Версия соответствует

Предложение сопоставления версий включает оператор сопоставления версий == и идентификатор версии.

Указанный идентификатор версии должен быть в стандартном формате, описанном в Схема версии, но конечный .* разрешен в общедоступной версии. идентификаторы, как описано ниже.

По умолчанию оператор сопоставления версий основан на строгом равенстве сравнение: указанная версия должна быть точно такой же, как запрошенная версия.Выполненная замена только является заполнением нулями сегмент выпуска, чтобы убедиться, что сегменты выпуска сравниваются с одним и тем же длина.

Уместно ли строгое соответствие версий, зависит от конкретного вариант использования спецификатора версии. Автоматизированные инструменты ДОЛЖНЫ, по крайней мере, выдавать предупреждения и МОЖЕТ полностью отклонить их, если используются строгие совпадения версий неуместно.

Вместо строгого сравнения может быть запрошено соответствие префикса путем добавления конечный .* к идентификатору версии в предложении сопоставления версий. Это означает, что дополнительные конечные сегменты будут игнорироваться при определение того, соответствует ли идентификатор версии предложению. Если указанная версия включает только сегмент выпуска, а не конечные компоненты (или их отсутствие) в сегменте выпуска также игнорируются.

Например, для версии 1.1.post1 следующие пункты будут соответствует или нет, как показано:

 == 1.1 # Не равно, поэтому 1.1.post1 не соответствует пункту
== 1.1.post1 # Равно, поэтому 1.1.post1 соответствует пункту
== 1.1.* # Тот же префикс, поэтому 1.1.post1 соответствует пункту
 

В целях сопоставления префиксов предварительный выпуск считается иметь подразумеваемый предшествующий . , так что учитывая версию 1.1a1 , следующие пункты будут соответствовать или не соответствовать показанному:

 == 1.1 # Не равно, поэтому 1.1a1 не соответствует пункту
== 1.1a1 # Равно, поэтому 1.1a1 соответствует пункту
== 1.1.* # Тот же префикс, поэтому 1.пункт 1a1 соответствует пункту
 

Точное совпадение также считается совпадением префикса (эта интерпретация подразумевается обычными правилами заполнения нулями для сегмента выпуска версии идентификаторы). Учитывая версию 1.1 , следующие пункты будут соответствует или нет, как показано:

 == 1.1 # Равно, поэтому 1.1 соответствует пункту
== 1.1.0 # Заполнение нулями расширяет 1.1 до 1.1.0, поэтому оно соответствует пункту
== 1.1.dev1 # Не равно (dev-релиз), поэтому 1.1 не соответствует пункту
== 1.1a1 # Не равно (предварительная версия), поэтому 1.1 не соответствует пункту
== 1.1.post1 # Не равно (после выпуска), поэтому 1.1 не соответствует пункту
== 1.1.* # Тот же префикс, поэтому 1.1 соответствует пункту
 

Недопустимо совпадение префикса с разрабатываемым или локальным выпуском. например 1.0.dev1.* или 1.0+foo1.* . Если присутствует, версия разработки сегмент всегда является последним сегментом в общедоступной версии, а в локальной версии игнорируется в целях сравнения, поэтому использование любого из префиксов не будет иметь смысл.

Использование == (по крайней мере, без подстановочного суффикса) при определении зависимостей для опубликованных дистрибутивов настоятельно не рекомендуется, поскольку это значительно усложняет развертывание исправлений безопасности. Строгая версия оператор сравнения предназначен в первую очередь для использования при определении зависимости для повторяющихся развертываний приложений при использовании общий индекс распределения.

Если указанный идентификатор версии является общедоступным идентификатором версии (нет метка локальной версии), затем метка локальной версии любых версий-кандидатов. ДОЛЖЕН игнорироваться при сопоставлении версий.

Если указанный идентификатор версии является локальным идентификатором версии, то метки локальных версий версий-кандидатов ДОЛЖНЫ учитываться при сопоставлении версии, с общедоступным идентификатором версии, совпадающим, как описано выше, а метка локальной версии проверяется на эквивалентность с помощью строгое сравнение строк на равенство.

Исключение версии

Пункт исключения версии включает оператор исключения версии != и идентификатор версии.

Допустимые идентификаторы версий и семантика сравнения совпадают с оператора сопоставления версий, за исключением того, что смысл любого совпадение перевернуто.

Например, для версии 1.1.post1 следующие пункты будут соответствует или нет, как показано:

 != 1.1 # Не равно, поэтому 1.1.post1 соответствует пункту
!= 1.1.post1 # Равно, поэтому 1.1.post1 не соответствует пункту
!= 1.1.* # Тот же префикс, поэтому 1.1.post1 не соответствует пункту
 

Включая упорядоченное сравнение

Инклюзивное предложение упорядоченного сравнения включает оператор сравнения и идентификатор версии и будет соответствовать любой версии, где сравнение корректно на основе относительного положения версии-кандидата и указанного версия с учетом последовательного порядка, определенного стандартом Схема версии.

Инклюзивные операторы упорядоченного сравнения: <= и >= .

Как и в случае сопоставления версий, сегмент выпуска дополняется нулями по мере необходимости. убедитесь, что сегменты выпуска сравниваются с одинаковой длиной.

Идентификаторы локальной версии НЕ разрешены в этом спецификаторе версии.

Эксклюзивное сравнение заказа

Эксклюзивные упорядоченные сравнения > и < аналогичны инклюзивным сравнениям. упорядоченные сравнения в том смысле, что они основаны на относительном положении кандидата версию и указанную версию с учетом согласованного порядка, определенного схема стандартной версии.Однако они специально исключают предварительные выпуски, пост-релизы и локальные версии указанной версии.

Эксклюзивное упорядоченное сравнение >V НЕ ДОЛЖНО допускать пост-релиз данной версии, если только V не является пост-релизом. Вы можете поручить что выпуски более поздние, чем конкретный пост-выпуск, включая дополнительные почтовые выпуски, используя >V.postN . Например, >1,7 позволит 1.7.1 , но не 1.7.0.post1 и >1.7.post2 позволит 1.7.1 и 1.7.0.post3 , но не 1.7.0 .

Эксклюзивное упорядоченное сравнение >V НЕ ДОЛЖНО совпадать с локальной версией указанную версию.

Эксклюзивное упорядоченное сравнение НЕ ДОЛЖНО разрешать предварительный выпуск указанную версию, если указанная версия сама не является предварительной версией. Разрешение предварительных выпусков, которые предшествуют, но не равны определенному предварительный выпуск может быть выполнен с использованием или аналогичный.

Как и в случае сопоставления версий, сегмент выпуска дополняется нулями по мере необходимости. убедитесь, что сегменты выпуска сравниваются с одинаковой длиной.

Идентификаторы локальной версии НЕ разрешены в этом спецификаторе версии.

Произвольное равенство

Произвольные сравнения на равенство — это простые операции на равенство строк, которые не принимать во внимание какую-либо семантическую информацию, такую ​​как заполнение нулями или местные версии. Этот оператор также не поддерживает сопоставление префиксов, т.к. == делает оператор.

Основным вариантом использования произвольного равенства является возможность указать версия, которая иначе не может быть представлена ​​этим PEP. Этот оператор особенный и действует как аварийный люк, позволяющий кому-то использовать инструмент, который реализует этот PEP, чтобы по-прежнему устанавливать устаревшую версию, которая в противном случае несовместимо с этим PEP.

Например, ===foobar соответствует версии foobar .

Этот оператор также может использоваться для явного требования неисправленной версии. такого проекта, как === 1.0 , что не соответствует версии 1.0+нисходящий1 .

Использование этого оператора настоятельно не рекомендуется, и инструмент МОЖЕТ отображать предупреждение. когда он используется.

Обработка предварительных выпусков

Предварительные выпуски любого типа, включая выпуски для разработки, неявно исключены из всех спецификаторов версии, , если они уже не присутствуют в системе, явно запрошенный пользователем, или если единственный доступный версия, удовлетворяющая спецификатору версии, является предварительным выпуском.

По умолчанию средства разрешения зависимостей ДОЛЖНЫ:

  • принимать уже установленные предварительные выпуски для всех спецификаторов версии
  • принимать удаленно доступные предварительные выпуски для спецификаторов версии, где нет окончательного или пост-релиза, удовлетворяющего спецификатору версии
  • .
  • исключить все другие предварительные выпуски из рассмотрения

Инструменты разрешения зависимостей МОГУТ выдавать предупреждение, если требуется предварительная версия чтобы удовлетворить спецификатор версии.

Инструменты разрешения зависимостей ДОЛЖНЫ также позволять пользователям запрашивать следующие альтернативные варианты поведения:

  • прием предварительных выпусков для всех спецификаторов версии
  • , за исключением предварительных выпусков для всех спецификаторов версии (сообщение об ошибке или предупреждение, если предварительная версия уже установлена ​​локально или предварительная версия — единственный способ удовлетворить конкретный спецификатор)

Средства разрешения зависимостей МОГУТ также допускать описанное выше поведение. контролируется отдельно для каждого дистрибутива.

Пост-релизы и финальные релизы не получают особой обработки в версии. спецификаторы - они всегда включаются, если явно не исключены.

Примеры

  • ~=3.1 : версия 3.1 или новее, но не версия 4.0 или новее.
  • ~=3.1.2 : версия 3.1.2 или новее, но не версия 3.2.0 или новее.
  • ~=3.1a1 : версия 3.1a1 или новее, но не версия 4.0 или новее.
  • == 3.1 : конкретно версия 3.1 (или 3.1.0), исключая все предварительные выпуски, пост-релизы, разрабатываемые релизы и любые отладочные релизы 3.1.x.
  • == 3.1.* : любая версия, начинающаяся с 3.1. Эквивалентно ~=3.1.0 совместимое положение о выпуске.
  • ~=3.1.0, != 3.1.3 : версия 3.1.0 или более поздняя, ​​но не версия 3.1.3 и не версия 3.2.0 или более поздняя.

Некоторые автоматизированные инструменты могут разрешать использование прямой ссылки в качестве альтернатива обычному спецификатору версии.Прямая ссылка состоит из спецификатор @ и явный URL.

Уместность прямых ссылок зависит от конкретного вариант использования спецификатора версии. Автоматизированные инструменты ДОЛЖНЫ, по крайней мере, выдавать предупреждения и МОЖЕТ полностью отклонить их, когда используются прямые ссылки неуместно.

Серверы общедоступных индексов НЕ ДОЛЖНЫ разрешать использование прямых ссылок в загруженные дистрибутивы. Прямые ссылки предназначены для интеграторы программного обеспечения, а не издатели.

В зависимости от варианта использования некоторые подходящие цели для прямого URL ссылка может быть sdist или двоичным архивом колеса. Точные URL-адреса и поддерживаемые цели будут зависеть от инструмента.

Например, на локальный исходный архив можно ссылаться напрямую:

 пункта @ файл:///localbuilds/pip-1.3.1.zip
 

В качестве альтернативы можно указать предварительно созданный архив:

 пип @ файл:///localbuilds/pip-1.3.1-py33-none-any.whl
 

Все прямые ссылки, не относящиеся к URL-адресу локального файла, ДОЛЖНЫ указывать безопасный транспортный механизм (например, https ) И включать ожидаемый хеш-значение в URL-адресе для целей проверки.Если прямая ссылка указывается без какой-либо хэш-информации, с хэш-информацией, которую инструмент не понимает, или с выбранным хеш-алгоритмом, который инструмент считает слишком слабым, чтобы доверять, автоматизированные инструменты ДОЛЖНЫ по крайней мере выдавать предупреждение и МОЖЕТ отказаться полагаться на URL. Если такая прямая ссылка также использует небезопасный транспорт, автоматизированные инструменты НЕ ДОЛЖНЫ полагаться на URL-адрес.

РЕКОМЕНДУЕТСЯ, чтобы только хэши, безусловно предоставленные использовать последнюю версию модуля стандартной библиотеки hashlib для хэшей исходного архива.На момент написания этот список состоит из 'md5' , 'sha1' , 'sha224' , 'sha256' , 'sha384' и 'ша512' .

Для исходного архива и ссылок на колеса ожидаемое значение хеш-функции может быть указывается путем включения записи = как часть фрагмента URL.

Для ссылок на управление версиями СЛЕДУЕТ использовать схему VCS+протокол . используется для идентификации как системы контроля версий, так и безопасного транспорта, и система контроля версий с идентификаторами коммитов на основе хэшей ДОЛЖНА быть использовал.Автоматизированные инструменты МОГУТ пропускать предупреждения об отсутствующих хэшах для версии. системы управления, которые не предоставляют идентификаторы коммитов на основе хэшей.

Для обработки систем контроля версий, которые не поддерживают включение фиксации или ссылки на теги непосредственно в URL-адресе, эта информация может быть добавлена ​​к конец URL-адреса с использованием @ или @# обозначение.

Примечание

Это не , а то же самое, что и существующая справочная нотация VCS. поддерживается пип.Во-первых, имя дистрибутива вынесено вперед, а не чем встроенный как часть URL. Во-вторых, включен хэш коммита. даже при извлечении на основе тега, чтобы удовлетворить требование выше этого каждая ссылка должна включать хэш, чтобы было сложнее forge (создать вредоносный репозиторий с определенным тегом легко, создать один с конкретным хэшем , реже).

Примеры удаленных URL-адресов:

 пункта @ https://github.com/pypa/pip/archive/1.3.1.zip#sha1=da9234ee9982d4bbb3c72346a6de940a148ea686
пип @ git+https://github.com/pypa/[email protected]
пип @ git + https://github.com/pypa/[email protected]#7921be1537eac1e97bc40179a57f0349c2aee67d
 

URL-адреса файлов

URL-адреса файлов имеют вид file:/// . Если <хост> опущено, предполагается, что это localhost , и даже если опущен третья косая черта ДОЛЖНА существовать. <путь> определяет путь к файлу на файловая система, к которой необходимо получить доступ.

В различных операционных системах *nix разрешены только значения для <хост> следует опустить, localhost или другое полное доменное имя, которое текущий машина считает, что соответствует своему собственному хосту. Другими словами, на *nix файл :// Схема может использоваться только для доступа к путям на локальной машине.

В Windows формат файла должен включать букву диска, если применимо. часть (т.грамм. файл:///c:/путь/к/a/файлу ). В отличие от *nix на Windows параметр может использоваться для указания файла, находящегося на сетевой ресурс. Другими словами, для перевода \\machine\volume\file к URL-адресу file:// , он будет выглядеть как file://machine/volume/file . За дополнительную информацию о URL-адресах file:// в Windows см. в MSDN.

  • Описание спецификаторов версии перемещено в версию PEP
  • .
  • Добавлено понятие «прямая ссылка» в качестве стандартного обозначения для прямого ссылки на ресурсы (вместо того, чтобы каждый инструмент изобретал свой собственный)
  • Добавлены понятия «идентификатор локальной версии» и «метка локальной версии» в разрешить системным интеграторам указывать исправленные сборки таким образом, чтобы поддерживаются вышестоящими инструментами, а также позволяют включать встраивайте теги в версии бинарных дистрибутивов.
  • Добавлен пункт «совместимый выпуск»
  • Добавлен синтаксис завершающего подстановочного знака для сопоставления версий на основе префикса. и исключение
  • Изменена позиция сортировки верхнего уровня суффикса .devN
  • Допустимые номера версии с одним значением
  • Явное исключение начальных или конечных пробелов
  • Явная поддержка версий на основе даты
  • Явные правила нормализации для улучшения совместимости с существующие метаданные версии в PyPI, где они не вводят двусмысленность
  • Неявно исключать предварительные выпуски, если они уже не представлены или необходимо для удовлетворения зависимости
  • Обращайтесь с пост-релизами так же, как с неквалифицированными релизами
  • Обсудить порядок и зависимости между версиями метаданных
  • Переключиться с c на rc .

Обоснование основных изменений приведено в следующих разделах.

Изменение схемы версии

Одно ключевое изменение в схеме версий в этом PEP по сравнению со схемой в PEP 386 предназначен для сортировки выпусков разработки высшего уровня, таких как XYdevN , впереди из альфа-релизов типа X.Ya1 . Это гораздо более логичный порядок сортировки, так как проекты, уже использующие как выпуски для разработки, так и альфа-/бета-версии/релизы кандидаты не хотят, чтобы их выпуски разработки сортировались в между их кандидатами на выпуск и их окончательными выпусками.Здесь нет обоснование использования релизов dev в этой позиции, а не просто создание дополнительных кандидатов на выпуск.

Обновленный порядок сортировки также означает, что сортировка версий dev теперь соответствие между стандартом метаданных и ранее существовавшим поведением из pkg_resources (и, следовательно, поведение текущей установки инструменты).

Внесение этого изменения должно облегчить затрагиваемым существующим проектам перейти на последнюю версию стандарта метаданных.

Еще одно изменение в схеме версий — разрешить использование одного номера. версии, аналогичные тем, которые используются в проектах, отличных от Python, таких как Mozilla. Firefox, Google Chrome и дистрибутив Fedora Linux. Это на самом деле ожидается, что он будет более полезен для спецификаторов версии, но его легче разрешить это как для спецификаторов версии, так и для номеров выпусков, а не разделение двух определений.

Исключение начальных и конечных пробелов стало явным после пара проектов с идентификаторами версий, отличающимися только завершающие \n В PyPI найдено символов.

Также были добавлены различные другие правила нормализации, как описано в отдельный раздел о нормализации версий ниже.

Приложение A показывает подробные результаты анализа распределения PyPI информация о версии, собранная 8 августа 2014 г. Этот анализ сравнивает поведение явно упорядоченной схемы версии, определенной в этот PEP со стандартом де-факто, определяемым поведением setuptools. Эти метрики полезны, так как целью этого PEP является следование существующим поведение setuptools настолько точно, насколько это возможно, при этом исключения для неупорядоченных версий (вместо того, чтобы пытаться угадать соответствующий порядок, как это делает setuptools).

Более субъективное описание схемы управления версиями

Как и в PEP 386, основное внимание уделяется кодификации существующих практик для их более поддаются автоматизации, а не требуют, чтобы существующие проекты вносят нетривиальные изменения в свой рабочий процесс. Однако стандартная схема допускает значительно большую гибкость, чем необходимо для подавляющего большинства простых пакетов Python (которые часто даже не нуждаются в отладочных выпусках — многие пользователи довольны необходимостью обновления до выпуск новой функции, чтобы получить исправления ошибок).

В интересах начинающих разработчиков и опытных разработчиков желая лучше понять различные варианты использования, спецификация теперь более подробно рассказывается о компонентах определяемого схема версий, включая примеры того, как можно использовать каждый компонент на практике.

PEP также явно указывает разработчикам направление семантическое управление версиями (не требуя этого) и не поощряет использование несколько аспектов полной схемы управления версиями, которые в значительной степени были включены для того, чтобы охватить эзотерические краеугольные случаи в практике существующие проекты и переупаковка программного обеспечения для дистрибутивов Linux.

Описание спецификаторов версии вместе со схемой управления версиями

Основная причина, по которой вообще нужно иметь стандартизированную схему версии заключается в том, чтобы упростить надежный автоматический анализ зависимостей. Это делает больше смысла описывать основной вариант использования идентификаторов версий вместе с их определение.

Изменение интерпретации спецификаторов версии

Предыдущая интерпретация спецификаторов версии упрощала случайно загрузить предварительную версию зависимости.Это в очередь затруднила разработчикам публикацию предварительных версий программного обеспечения в индекс пакетов Python, так как даже пометив пакет как hidden было недостаточно, чтобы предотвратить его загрузку автоматическими инструментами, а также пользователям стало сложнее получить тестовую версию вручную через основной веб-интерфейс PyPI.

Предыдущая интерпретация также исключала пост-релизы из некоторых версий. спецификации без достаточно обоснованной причины.

Обновленная интерпретация призвана затруднить случайное принять предварительную версию как удовлетворяющую зависимости, в то же время разрешить автоматическое извлечение предварительных версий, когда это необходимо единственный способ удовлетворить зависимость.

Ограничение версии «предполагается некоторая совместимость вперед» получено из Оператор «пессимистического ограничения версии» сообщества Ruby, позволяющий проекты, чтобы осторожно подходить к обещаниям прямой совместимости, в то время как по-прежнему легко установить минимальную требуемую версию для своих зависимостей. написание пункта о совместимом выпуске ( ~= ) вдохновлено Ruby ( ~> ) и эквиваленты PHP ( ~ ).

Также запланированы дальнейшие улучшения в обработке параллельных установка нескольких версий одной и той же библиотеки, но они зависят от обновлений определения базы данных установки вместе с улучшенные инструменты для динамического управления путями.

Синтаксис завершающего подстановочного знака для запроса соответствия версии на основе префикса был добавлено, чтобы сделать возможным разумное определение совместимых пунктов выпуска.

Поддержка идентификаторов версий на основе даты

Исключение версий, основанных на дате, вызвало серьезные проблемы при переносе pytz к новым стандартам метаданных. Это также вызвало опасения за Разработчики OpenStack, поскольку они используют схему управления версиями на основе даты и хотели бы иметь возможность перейти на новые стандарты метаданных без изменения Это.

Добавление эпох версии

Эпохи версий добавляются по той же причине, по которой они являются частью других схемы управления версиями, такие как Fedora и Debian Linux дистрибутивы: чтобы позволить проектам изящно изменить свой подход к нумерация выпусков, без того, чтобы новый выпуск имел более низкий номер версии по сравнению с предыдущими выпусками и без изменения имени проекта.

В частности, поддержка эпох версий позволяет проекту, который ранее используя управление версиями на основе даты, чтобы переключиться на семантическое управление версиями, указав эпоха новой версии.

! Символ был выбран для обозначения версии эпохи, а не : символ , который обычно используется в других системах из-за того, что : не является допустимым символом в имени каталога Windows.

Добавление прямых ссылок

Прямые ссылки добавлены в качестве «предложения побега» для обработки грязных реальных ситуации в мире, которые не соответствуют стандартной модели распределения. Это включает зависимости от неопубликованного программного обеспечения для внутреннего использования, а также как решение более сложных проблем совместимости, которые могут возникнуть, когда обертывание сторонних библиотек в виде расширений C (это вызывает особую озабоченность научному сообществу).

Индексным серверам преднамеренно предоставлено много свободы для запрета прямых ссылки, так как они предназначены в первую очередь как инструмент для интеграторов а не издатели. В частности, PyPI в настоящее время проходит через процесс , устраняющий зависимости от внешних ссылок, как ненадежные внешние службы замедляют операции установки, а также снижение собственной кажущейся надежности PyPI.

Добавление произвольного равенства

Произвольное равенство добавлено в качестве «условия выхода» для обработки случая, когда кому-то нужно установить проект, который использует несовместимую версию.Несмотря на то что этот PEP может достичь ~ 97% совместимости с версиями, которые уже на PyPI все еще есть ~3% версий, которые не могут быть проанализированы. Этот оператор дает простой и эффективный способ по-прежнему зависеть от них без необходимость «угадывать» семантику того, что они означают (что потребовалось бы если поддерживалось что-либо, кроме строгого равенства на основе строк).

Добавление идентификаторов локальной версии

Фактом жизни является то, что нижестоящим интеграторам часто требуется резервное копирование исправления ошибок в более ранних версиях.Это одна из услуг, которая получает Поставщики дистрибутивов Linux платят, и разработчики приложений также могут применять исправления. им нужно связать зависимости.

Исторически эта практика была невидима для кроссплатформенного языка. конкретные инструменты распространения — сообщаемая «версия» в апстриме метаданные такие же, как и для немодифицированного кода. Эта неточность может затем вызывать проблемы при попытке работы со смесью интегратора предоставленный код и немодифицированный исходный код, или даже просто попытка точно определить, какая версия программного обеспечения установлена.

Введение идентификаторов локальных версий и «меток локальных версий» в схему управления версиями с соответствующим python.integrator расширение метаданных позволяет представить этот вид деятельности точно, что должно улучшить взаимодействие между восходящим инструменты и различные интегрированные платформы.

Точная выбранная схема в значительной степени моделируется существующим поведением pkg_resources.parse_version и pkg_resources.parse_requirements , с основным отличием в том, что pkg_resources в настоящее время всегда учитывает суффикс при сравнении версий для точного совпадения, PEP требует, чтобы метка локальной версии версии-кандидата была игнорируется, если в спецификаторе версии отсутствует метка локальной версии пункт.Кроме того, PEP не пытается навязать какую-либо структуру метки локальной версии (кроме ограничения набора разрешенных символы и определение их порядка).

Это изменение предназначено для обеспечения того, чтобы интегратор предоставил такую ​​версию, как pip 1.5+1 или pip 1.5+1.git.abc123de по-прежнему будет соответствовать версии спецификатор типа pip>=1.5 .

Плюс выбран в первую очередь для удобочитаемости идентификаторов локальной версии. Он был выбран вместо дефиса, чтобы предотвратить pkg_resources.parse_version при анализе его как предварительной версии, т.е. важно для обеспечения успешной миграции на новую, более структурированную, схема версионности. Плюс был выбран вместо тильды из-за значение тильды в алгоритме упорядочивания версий Debian.

Предоставление явных правил нормализации версии

Исторически стандартом де-факто для разбора версий в Python был Команда pkg_resources.parse_version из проекта setuptools.Это делает не пытаться отклонить любую версию , а вместо этого пытается что-то сделать значимым, с разным уровнем успеха, из того, что ему дано. В нем есть несколько простых правил, но в остальном он более или менее в значительной степени зависит от строки сравнение.

Правила нормализации, представленные в этом PEP, существуют в основном для увеличения совместимость с pkg_resources.parse_version , особенно в задокументированные варианты использования, такие как rev , r , до и т. д., или что-то сделать более разумно с версиями, которые уже существуют в PyPI.

Все возможные правила нормализации были сопоставлены независимо от того, были ли они , вероятно, , чтобы вызвать какую-либо двусмысленность (например, когда кто-то может разработать схему, в которой v1.0 и 1.0 считаются разными выпусками, вероятность того, что на самом деле делать это, а тем более в любом заметном масштабе, довольно мало). Они также были сопоставлены с тем, как pkg_resources.parse_version обрабатывал конкретная строка версии, особенно в отношении того, как она была отсортирована.Окончательно каждое правило сопоставлялось с возможными дополнительными версиями, как «некрасиво» выглядели те версии, как тяжело их было разобрать (и мысленно, и механически) и сколько дополнительной совместимости это принесет.

Широта возможных нормализации была сохранена до вещей, которые могли легко быть реализован как часть парсинга версии, а не пре-парсинга преобразования, применяемые к версиям. Это было сделано для ограничения бокового эффекты каждого преобразования в виде простых преобразований стиля поиска и замены увеличивают вероятность неоднозначных или «мусорных» версий.

Для расширенного обсуждения различных типов нормализации, рассмотрено, см. доказательство концепции PEP 440 в pip .

Разрешение подчеркивания при нормализации

В PyPI не так много проектов, которые используют _ в версии нить. Однако этот PEP позволяет использовать его везде, где допустимы . Причина этого в том, что схема нормализации колеса указывает, что - нормализуется до _ , чтобы облегчить анализ имени файла.

Классификации MS-DRG и программное обеспечение | КМС

Фон

Раздел 1886(d) Закона определяет, что секретарь должен установить систему классификации (называемую DRG) для выписки из стационара и корректировать платежи в соответствии с IPPS на основе соответствующих весовых коэффициентов, присвоенных каждой DRG. Таким образом, в соответствии с IPPS мы оплачиваем стационарные больничные услуги по ставке за выписку, которая варьируется в зависимости от DRG, на которую назначено пребывание бенефициара.Формула, используемая для расчета оплаты за конкретный случай, умножает ставку оплаты отдельной больницы за случай на вес DRG, к которой относится случай. Каждый вес DRG представляет средние ресурсы, необходимые для лечения случаев в этой конкретной DRG, по отношению к средним ресурсам, используемым для лечения случаев во всех DRG.

Конгресс признал необходимость периодического пересчета относительных весов DRG для учета изменений в потреблении ресурсов.Соответственно, раздел 1886 (d) (4) (C) Закона требует, чтобы секретарь корректировал классификации DRG и относительные веса не реже одного раза в год. Эти корректировки вносятся для отражения изменений в схемах лечения, технологии и любых других факторов, которые могут изменить относительное использование ресурсов больницы.

В настоящее время случаи классифицируются в группы Medicare, связанные с диагнозом серьезности (MS-DRG), для оплаты в соответствии с IPPS на основании следующей информации, предоставленной больницей: основной диагноз, до 24 дополнительных диагнозов и до 25 процедур, выполненных во время лечения. остаться.В небольшом количестве MS-DRG классификация также основана на возрасте, поле и статусе выписки пациента. С 1 октября 2015 г. больница сообщает информацию о диагнозе и процедурах с использованием кодов Международной классификации болезней, десятого пересмотра, клинической модификации (ICD-10-CM) и Международной классификации болезней, десятого пересмотра, системы кодирования процедур. (МКБ-10-ПКС).

Для получения дополнительной информации о системе MS-DRG, включая ежегодные обзоры и изменения в MS-DRG, ознакомьтесь с предложенными и окончательными правилами предыдущей Системы предполагаемых платежей для стационарных больных (IPPS) в левой навигационной области этой страницы.

Запросы на ежегодные изменения классификации MS-DRG и любые запросы, связанные с MS-DRG, следует направлять на почтовый ящик [email protected]

Последние новости

МКБ-10 MS-DRGs V39.1 Действует с 1 апреля 2022 г. (ZIP) – обновлено 16 ноября 2021 г.

МКБ-10 MS-DRGs V38.1 Действует с 1 января 2021 г. (ZIP)

МКБ-10 MS-DRG, версия 37.2, действует с 1 августа 2020 г. (PDF)

Июль 2020 г. Ежеквартальное обновление Системы перспективных платежей для стационарных больных (IPPS) Финансовый год (FY) 2020 Pricer (PDF)

МКБ-10 MS-DRG, версия 37.1 R1 Действует с 1 апреля 2020 г. — обновлено 23 марта 2020 г. (PDF)

МКБ-10 MS-DRG, версия 37.1, действует с 1 апреля 2020 г. (PDF)

 

MS-DRG CC/MCC Полная аналитическая информация

CMS провела сеанс прослушивания, на котором был описан всесторонний анализ осложнений и сопутствующих заболеваний (CC)/основных осложнений и сопутствующих заболеваний (MCC), связанных с диагнозом степени тяжести Medicare (MS-DRG), который обсуждался в предлагаемой Системе перспективных платежей для стационарных пациентов (IPPS) на 2020 финансовый год. и окончательные правила.Это прослушивание включало в себя обзор методологии измерения воздействия на использование ресурсов и предоставило CMS возможность получить мнение общественности по этому анализу и ответить на любые уточняющие вопросы, чтобы помочь общественности сформулировать письменные комментарии по текущему уровню серьезности. обозначения для рассмотрения в будущем нормотворчестве.

Прослушивание состоялось 8 октября 2019 г.; 14:00–15:00 по восточному времени.

Стенограмму и аудиофайл сеанса прослушивания можно найти на сайте https://www.cms.gov/Outreach-and-Education/Outreach/OpenDoorForums/Downloads/10082019ListingSessionTrasncriptandQandAsandAudioFile.zip.

Ссылка на дополнительный файл, который был доступен для сеанса прослушивания:

Мы предоставляем обновленные данные о влиянии на использование ресурсов, чтобы общественность могла ознакомиться с математическими данными о влиянии на использование ресурсов, полученными с использованием заявлений из файлов MedPAR за 2019–2021 финансовые годы:

Руководство по определениям MS-DRG и программное обеспечение

2023 ФГ – Версия 40 Test GROUPER – ПРОЕКТ файла для предлагаемого правила IPPS/LTCH PPS на 2023 ФГ

Это вспомогательный файл для предложенного правила IPPS/LTCH PPS на 2023 финансовый год

.

Мы предоставляем тестовую версию программного обеспечения ICD-10 MS-DRG GROUPER, версия 40, чтобы общественность могла лучше проанализировать и понять влияние предложений, включенных в предлагаемое правило IPPS/LTCH PPS на 2023 финансовый год.Это тестовое программное обеспечение отражает предлагаемую логику GROUPER на 2023 финансовый год. Дополнительную информацию о тестовом GROUPER версии 40 см. в файле CMS-1771-P, таблица 6P.1a ниже.

Кроме того, пользователи могут просматривать предварительную версию Руководства по определениям MS-DRG МКБ-10, версия 40.

  1. Предлагаемые файлы руководства по определениям MS-DRG ICD-10 V40 (ZIP): ZIP-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию по предлагаемой логике ICD-10 MS-DRG Grouper.
  2. Предлагаемое руководство по определениям ICD-10-CM/PCS MS-DRG V40 Содержание — полные заголовки — версия HTML
  3. Medicare Severity Diagnosis Related Group (MS-DRG) Test Grouper Software and Medicare Code Editor (MCE) Version 40, ICD-10 PC Software (ZIP)
  4. CMS-1771-P Таблица 6P.1a (ZIP): файл Excel, содержащий сопоставленные коды МКБ-10-CM Версии 40 2023 финансового года и удаленные коды МКБ-10-CM Версии 39.1 2022 финансового года, которые следует использовать для тестирования. целей с доступными данными о претензиях пользователей.

 

2022 финансовый год — версия 39.1 (действует с 1 апреля 2022 г. по 30 сентября 2022 г.)

Обновление от 14 марта 22 : Мы предоставляем повторный выпуск программного обеспечения версии 39.1, чтобы отразить улучшения, внесенные в производительность программного обеспечения и связанных тестовых файлов. Эти обновления не влияют на результаты тестирования или группировки.

  • В пакет программного обеспечения мейнфрейма Java добавлена ​​новая логика для согласования версии вызываемого группировщика MS-DRG с версией вызываемого MCE на основе даты выгрузки.Дополнительные сведения приведены в обновленном руководстве по установке мейнфрейма.
  • Тестовые базы данных мейнфрейма были синхронизированы для устранения различий в датах требований в устаревших реализациях и реализациях Java.

Мы также включаем пакет программного обеспечения Java для ПК, который изначально не отображался в версии 39.1.

  1. Definition of Medicare Code Edits V39.1 (ZIP) – обновлено 14 марта 22 года. Файл ICD-10 Definitions of Medicare Code Edits содержит следующее: описание каждого редактирования кода с соответствующими списками кодов. так как все изменения и списки кодов действуют на 2022 финансовый год.Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508.
  2. Файлы руководства по определениям MS-DRG МКБ-10 V39.1 (ZIP) — обновлено 18.03.22: ZIP-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию ICD- 10 Логика группирования MS-DRG.
  3. V39.1  Руководство по определениям Содержание – полные заголовки – версии HTML  – обновлено 18 марта 22 
  4. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия V 39.1  Программное обеспечение MAINFRAME (ZIP) –  Обновлено 14 марта 22 
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия V
2022 финансовый год — версия 39 (действует с 1 октября 2021 г. по 31 марта 2022 г.)

Обновление от 22 декабря 2021 г. : Библиотека программного обеспечения для ведения журналов с открытым исходным кодом Apache Log4j используется в ПО для группировки и редактирования на основе ПК и Java (MS-DRG Java, MCE Java, MSGMCE).Недавно в Log4j была обнаружена уязвимость, которая может создавать проблемы с безопасностью при работе в определенных условиях. Программное обеспечение Mainframe BAL не затрагивается.

Apache выпустил обновленную версию Log4j (2.16.0) для устранения этой проблемы. Обновленное программное обеспечение устраняет любую потенциальную связь с уязвимостью.

Не влияет и не изменяется ни группировка, ни редактирование результатов, ни файлов данных.

Мы предоставили обновленные файлы программного обеспечения, чтобы удалить любую потенциальную связь с уязвимостью.

Обновления дистрибутива Java MS-DRG и MCE Mainframe:

  • Log4j удален из программных пакетов Java мейнфрейма MS-DRG и мейнфрейма MCE, так как это ведение журнала не используется в этой среде
  • Обновлена ​​документация для автономных Java MS-DRG и MCE для ссылки на 2.16.0 Log4j
  • .

Продукты MSGMCE

  •  Обновлена ​​используемая версия Log4j до 2.16.0 по сравнению с текущими версиями (MSGMCE PC — 2.7)
  1.  Definition of Medicare Code Edits V39 (ZIP): Файл определений ICD-10 Code Edits Medicare содержит следующее: Описание каждого изменения кодирования с соответствующими списками кодов, а также все изменения и списки кодов, действительные для 2022 финансовый год.Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508.
  2. Файлы руководства по определениям MS-DRG ICD-10 V39 (ZIP): ZIP-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию по логике группировщика ICD-10 MS-DRG.
  3. V39  Руководство по определениям Содержание – Полные заголовки – Версии HTML 
  4. Программное обеспечение Medicare Severity Diagnosis Related Group (MS-DRG) Grouper и редактор кода Medicare (MCE), версия 39, программное обеспечение MAINFRAME (ZIP) — обновлено 22 декабря 21 
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия 39, программное обеспечение ICD-10 для ПК (ZIP) — обновлено 22 декабря 21
2022 ФГ – V39 TEST GROUPER – ПРОЕКТ файла для предлагаемого правила IPPS/LTCH PPS на 2022 ФГ

Это вспомогательный файл для предлагаемого правила IPPS/LTCH PPS на 2022 финансовый год

.

Мы предоставляем тестовую версию программного обеспечения ICD-10 MS-DRG GROUPER версии 39, чтобы общественность могла лучше проанализировать и понять влияние предложений, включенных в предложенное правило IPPS/LTCH PPS на 2022 финансовый год.Это тестовое программное обеспечение отражает предлагаемую логику GROUPER на 2022 финансовый год. Дополнительную информацию о тестовом GROUPER версии 39 см. в файле CMS-1752-P, таблицах 6P.1a и 6P.1b ниже.

Кроме того, пользователи могут просматривать предварительную версию Руководства по определениям MS-DRG МКБ-10, версия 39.

  1. Предлагаемые файлы руководства по определениям MS-DRG ICD-10 V39 (ZIP): ZIP-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию по предлагаемой логике ICD-10 MS-DRG Grouper.
  2. Предлагаемое руководство по определениям ICD-10-CM/PCS MS-DRG V39 Содержание — полные заголовки — версия HTML
  3. Medicare Severity Diagnosis Related Group (MS-DRG) Test Grouper Software and Medicare Code Editor (MCE) Version 39, ICD-10 PC Software (ZIP)
  4. CMS-1752-P Таблица 6P.1a и 6P.1b (ZIP): файл Excel, содержащий сопоставленные коды ICD-10-CM и ICD-10-PCS версии 39 2022 финансового года, а также удаленную версию 38 ICD 2021 финансового года. Коды 10-CM и ICD-10-PCS, которые следует использовать для тестирования с доступными пользователями данными претензий.
2021 финансовый год — версия 38.1 (действует с 1 января 2021 г. по 30 сентября 2021 г.
  1. Definition of Medicare Code Edits V38.1 (ZIP): Файл ICD-10 определений Medicare Code Edits содержит следующее: Описание каждой кодовой правки с соответствующими списками кодов, а также все правки и код списки, действующие на 2021 финансовый год. Zip-файл содержит PDF-файл и текстовый файл, соответствующие стандарту 508.
  2. МКБ-10 Файлы руководства по определениям MS-DRG V38.1 (ZIP) : ZIP-файл с Руководством по определениям MS DRG ICD-10 (текстовая версия) содержит полную документацию по логике группировщика ICD-10 MS-DRG.
  3. V38.1  Руководство по определениям Содержание — полные заголовки — версии HTML
  4. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия V38.1 Программное обеспечение MAINFRAME (ZIP)
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия V38.1, ПО МКБ-10 для ПК (ZIP)
Java — бета-версия 38.1

ZIP-файл MS-DRG Java был обновлен, чтобы включить отсутствующую зависимость, необходимую для тестирования. API Java MS-DRG и документация по примерам вызовов были обновлены, чтобы включить ссылки на эту зависимость, а также исправления, чтобы сделать имена методов последовательными. В комплект поставки MS-DRG и MCE Java Mainframe добавлено обновленное руководство по установке в формате PDF с исправлениями для большей ясности. Не было никаких изменений в функциональности или содержании MS-DRG или MCE.

Группа, связанная с диагностикой серьезности Medicare (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE) Бета-версия Java 38.1 Программное обеспечение MAINFRAME (ZIP) — ОБНОВЛЕНО 5.24.21

Запросы, связанные с этой бета-версией Java Grouper, следует направлять по адресу [email protected]

.

 

2021 финансовый год — версия 38.0 R1 (действует с 1 октября 2020 г. по 31 декабря 2020 г.)

Errata (PDF): документ, описывающий изменения из версии 38 в версию 38.0 Р1

  1. Definition of Medicare Code Edits V38.0 R1 (ZIP) Файл ICD-10 Definitions of Medicare Code Edits содержит следующее: Описание каждого редактирования кода с соответствующими списками кодов, а также все изменения и списки кодов, действующие на 2021 финансовый год. Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508
  2. .
  3. Файлы руководства по определениям МКБ-10 MS-DRG V38.0 R1 (ZIP) ZIP-файл с Руководством по определениям MS-DRG МКБ-10 (текстовая версия) содержит полную документацию по МКБ-10 MS-DRG. Групповая логика.
  4. V38.0 R1 Руководство по определениям Содержание — полные заголовки — HTML-версии 
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия V38.0 R1 ПО MAINFRAME (ZIP)
  6. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE) Версия V38.0 R1, Программное обеспечение ПК ICD-10 (ZIP)
FY 2021 — V38 TEST GROUPER — ПРОЕКТ для предлагаемого правила IPPS/LTCH PPS на 2021 финансовый год

Это вспомогательный файл для предлагаемого правила IPPS/LTCH PPS на 2021 финансовый год 

.

Мы предоставляем тестовую версию программного обеспечения ICD-10 MS-DRG GROUPER версии 38, чтобы общественность могла лучше проанализировать и понять влияние предложений, включенных в предлагаемое правило IPPS/LTCH PPS на 2021 финансовый год.Это тестовое программное обеспечение отражает предлагаемую логику GROUPER на 2021 финансовый год. Дополнительную информацию о тестовом GROUPER версии 38 см. в файле CMS-1735-P, таблица 6P.1a ниже.

Кроме того, пользователи могут просматривать предварительную версию Руководства по определениям MS-DRG МКБ-10, версия 38. 

  1. Предлагаемые файлы руководства по определениям MS-DRG ICD-10 V38 (ZIP): zip-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию по предлагаемой логике ICD-10 MS-DRG Grouper. .
  2. Предлагаемое руководство по определениям ICD-10-CM/PCS MS-DRG V38 Содержание — полные заголовки — HTML-версия
  3. Medicare Severity Diagnosis Related Group (MS-DRG) Test Grouper Software and Medicare Code Editor (MCE) Version 38, ICD-10 PC Software (ZIP)
  4. CMS-1735-P Таблица 6P.1a (ZIP): файл Excel, содержащий сопоставленные коды МКБ-10-CM Версии 38 2021 финансового года и удаленные коды МКБ-10-CM Версии 37 2020 финансового года, которые следует использовать для в целях тестирования с доступными пользователями данными о претензиях.
2020 финансовый год — версия 37.2 — (действует с 1 августа 2020 г. по 30 сентября 2020 г.)  
  1. Definition of Medicare Code Edits V37.2 (ZIP): Файл определений ICD-10 Code Edits Medicare содержит следующее: Описание каждой кодовой правки с соответствующими списками кодов, а также все изменения и действующие списки кодов. за 2020 финансовый год. Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508.
  2. МКБ-10 Файлы руководства по определениям MS-DRG V37.2 (ZIP): ZIP-файл с Руководством по определениям ICD-10 MS DRG (текстовая версия) содержит полную документацию по логике группировщика ICD-10 MS-DRG.
  3. Руководство по определениям V37.2 Содержание — полные заголовки — версии HTML
  4. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия 37.2   Программное обеспечение MAINFRAME (ZIP)    
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия 37.2, ICD-10 Программное обеспечение для ПК (ZIP)
2020 финансовый год — Версия 37.1 R1 – (действует с 1 апреля 2020 г. по 31 июля 2020 г.)
  1. Определение правок кодов Medicare V37.1 R1 (ZIP): Файл определений правок кодов Medicare ICD-10 содержит следующее: Описание каждого изменения кода с соответствующими списками кодов, а также все изменения и списки кодов. вступает в силу в 2020 финансовом году. Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508
  2. .
  3. МКБ-10 Файлы руководства по определениям MS-DRG V37.1 R1 (ZIP): ZIP-файл с Руководством по определениям MS DRG ICD-10 (текстовая версия) содержит полную документацию по логике группировщика MS-DRG ICD-10.
  4. ICD-10-CM/PCS MS-DRG V37.1 R1 Определения Руководство Содержание — полные заголовки — версии HTML — ОБНОВЛЕНО
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия 37.1 R1   Программное обеспечение MAINFRAME (ZIP)
  6. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия 37.1 R1, ICD-10 Программное обеспечение для ПК (ZIP)   (ZIP)
2020 финансовый год — версия 37 R1 (действует с 1 октября 2019 г. по 31 марта 2020 г.)
  1. Definition of Medicare Code Edits v37 (ZIP): Файл определений ICD-10 Code Edits Medicare содержит следующее: Описание каждой кодировки с соответствующими списками кодов, а также все изменения и списки кодов, действительные для финансового года. 2020. Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508.
  2. Файлы руководства по определениям MS-DRG ICD-10 v37 R1 (обновлено 19 сентября 2019 г.) (ZIP): zip-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию по ICD-10 MS- Логика DRG Grouper.
  3. ICD-10-CM/PCS MS-DRG v37 R1 Руководство по определениям Содержание — Полные заголовки — Версии HTML — ОБНОВЛЕНО — открывается в новом окне  
  4. Medicare Severity Diagnosis Related Group (MS-DRG) Grouper Программное обеспечение MAINFRAME и ERRATA, v37 R1 (обновлено 18 сентября 2019 г.) (ZIP)  
  5. Medicare Severity Diagnosis Related Group (MS-DRG) Программное обеспечение Grouper и редактор кода Medicare (MCE), версия 37, программное обеспечение для ПК по МКБ-10 — открывается в новом окне
2019 финансовый год — версия 36 (действует с 1 октября 2018 г. по 30 сентября 2019 г.)
  1. Definition of Medicare Code Edits v36 (ZIP): Файл определений ICD-10 Code Edits Medicare содержит следующее: Описание каждого изменения кодирования с соответствующими списками кодов, а также все изменения и списки кодов, действительные для финансового года. 2019.Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508.
  2. Файлы руководства по определениям MS-DRG
  3. Errata и ICD-10 v36 R1 (обновлено 9 октября 2018 г.) (ZIP): ZIP-файл с Руководством по определениям MS DRG ICD-10 (текстовая версия) содержит полную документацию ICD-10. Логика группировщика MS-DRG.
  4. ICD-10-CM/PCS Руководство по определениям MS-DRG v36 R1 Содержание — полные заголовки — HTML-версии (обновлено 12 октября 2018 г.)
  5. Программное обеспечение Medicare Severity Diagnosis Related Group (MS-DRG) Grouper и редактор кода Medicare (MCE), версия 36, программное обеспечение ICD-10 — открывается в новом окне  
2018 финансовый год — версия 35 (действует с 1 октября 2017 г. по 30 сентября 2018 г.)
  1. Definition of Medicare Code Edits v35 (ZIP): Файл определений ICD-10 Code Edits Medicare содержит следующее: Описание каждого изменения кодирования с соответствующими списками кодов, а также все изменения и списки кодов, действительные для финансового года. 2018.Zip-файл содержит PDF-файл и текстовый файл, соответствующий стандарту 508.
  2. Файлы руководства по определениям MS-DRG МКБ-10 v35 (обновлено 12 сентября 2017 г.) (ZIP): ZIP-файл с Руководством по определениям MS-DRG ICD-10 (текстовая версия) содержит полную документацию по МКБ-10 MS-DRG. Групповая логика.
  3. ICD-10-CM/PCS Руководство по определениям MS-DRG v35 Содержание — полные заголовки — HTML-версии (обновлено 13 сентября 2017 г.)
  4. Программное обеспечение Medicare Severity Diagnosis Related Group (MS-DRG) Grouper и редактор кода Medicare (MCE), версия 35 R1, программное обеспечение ICD-10 (ZIP, 125 МБ) — открывается в новом окне  

 

Руководство по определениям HCPCS-MS-DRG и программное обеспечение

21 st Century Cures Act требует, чтобы к 1 января 2018 г. секретарь разработал информационную «версию HPCCS» не менее 10 хирургических MS-DRG.В соответствии с версией MS-DRG, разработанной для этого требования, назначение MS-DRG для данной услуги, предоставляемой амбулаторному пациенту (оплачиваемой с использованием кода HCPCS), насколько это возможно, максимально похоже на назначение MS-DRG. за эту услугу, если она оказана стационарному пациенту (оплачивается с использованием кода МКБ-10-PCS).

Руководство по определениям HCPCS-MS-DRG и программное обеспечение, разработанное в соответствии с требованиями раздела 15001 Закона о лечении в 21 веке (публичный закон 114–255). Вопросы об опубликованном руководстве по определениям HCPCS-MS-DRG и программном обеспечении можно направлять по адресу [email protected]

Общий регламент по защите данных (GDPR) — Официальный юридический текст

Добро пожаловать на gdpr-info.eu. Здесь вы можете найти официальный PDF-файл Регламента (ЕС) 2016/679 (Общий регламент по защите данных) в текущей версии OJ L 119 от 04.05.2016; кор. OJ L 127, 23.05.2018 как аккуратно организованный веб-сайт. Все статьи GDPR связаны с подходящим описанием. Европейский регламент о защите данных применяется с 25 мая 2018 года во всех государствах-членах для гармонизации законов о конфиденциальности данных по всей Европе.Если вы найдете страницу полезной, не стесняйтесь поддержать нас, поделившись проектом.

Быстрый доступ

Ключевые вопросы

Содержание

Глава 1 Общие положения

Глава 2 Принципы

Глава 3 Права субъекта данных

Раздел 1 Прозрачность и условия

Раздел 2Информация и доступ к персональным данным

Раздел 3 Исправление и стирание

Раздел 4 Право на возражение и автоматизированное индивидуальное принятие решений

Раздел 5 Ограничения

Глава 4Контроллер и процессор

Раздел 1 Общие обязательства

Раздел 2 Безопасность персональных данных

Раздел 3 Оценка воздействия на защиту данных и предварительная консультация

Раздел 4 Сотрудник по защите данных

Раздел 5 Кодексы поведения и сертификации

Глава 5 Передача персональных данных третьим странам или международным организациям

Глава 6 Независимые надзорные органы

Раздел 1 Независимый статус

Раздел 2 Компетенция, задачи и полномочия

Глава 7Сотрудничество и согласованность

Раздел 1 Сотрудничество

Раздел 2Консистенция

Раздел 3Европейский совет по защите данных

Глава 8 Средства правовой защиты, ответственность и санкции

Глава 9 Положения, касающиеся конкретных ситуаций обработки

Глава 10 Делегированные акты и исполнительные акты

Глава 11 Заключительные положения

Номера версий InfoWorks ICM — правила

Что касается номеров версий, существуют разные правила для различных компонентов InfoWorks ICM и связанных с ним служб.

Локальное и удаленное моделирование

При создании и планировании моделирования на локальном компьютере и его запуске на удаленном компьютере должно быть точное совпадение между версией ICM на локальном компьютере и версией ICM на удаленном компьютере. На удаленной машине может быть либо полная установка ICM, либо только удаленный агент, но в любом случае номер версии должен совпадать вплоть до номера сборки (например, v7.0.4, сборка 14015). Это правило гарантирует, что независимо от того, запускаете ли вы симуляцию локально на своем компьютере или удаленно на другом компьютере, вы гарантированно получите одинаковые ответы каждый раз (поскольку вы каждый раз используете одну и ту же версию программного обеспечения).Агенты и координатор разрешают удаленную симуляцию только при точном совпадении между локальным и удаленным компьютером, поэтому конечному пользователю не нужно ничего проверять во время выполнения.

Обычно на удаленной машине установлено несколько версий InfoWorks ICM (скажем, v6.5.9, v7.0.4 и v7.5.0), чтобы различные клиенты, работающие с разными версиями ICM, могли использовать удаленную машину. для моделирования.

Координатор

Координатором может быть машина с любой версией ICM.Работа координаторов заключается в том, чтобы просто направлять трафик и управлять связью между локальными и удаленными компьютерами. Очевидно, что со временем мы оптимизировали возможности планирования ICM-координатора, поэтому было бы неплохо использовать самую последнюю версию ICM на компьютере-координаторе для обеспечения оптимальной производительности, но это не предварительная проверка. обязательно, и версия не обязательно должна совпадать ни с одним из клиентов или удаленных машин. Единственным важным исключением является ситуация, когда компьютер-координатор также выступает в качестве удаленного агента, и в этом случае будут применяться описанные выше правила сопоставления версий.

Дополнительное примечание : Если вы используете версию 8.0 (или более позднюю), но координатор старше, вы можете получить сообщение «Ожидание на сервере» в окне управления заданием, если вы решите сохранить файлы состояния. . Обновление координатора до версии 8.0 (или более поздней) решит эту проблему.

Сервер данных рабочей группы

Сервер данных рабочей группы (WGDS) должен быть таким же новым или новее, чем клиенты, подключающиеся к нему. Не версия WGDS определяет версию базы данных.Это версия клиентского программного обеспечения, которая устанавливает версию базы данных. С точки зрения обслуживания вам необходимо убедиться, что версия WGDS, которую вы используете, всегда актуальна, фактические базы данных могут быть обновлены до версии 2.0 без каких-либо проблем. WGDS не лицензируется, это служба Windows, поэтому вам не нужно беспокоиться о ключах или файлах лицензий.

Сервер данных рабочей группы управляет всеми взаимодействиями с локальными клиентами ICM, а затем туннелирует эти запросы в базу данных.Конечные пользователи взаимодействуют с сервером данных рабочей группы (служба Windows), а сервер данных рабочей группы взаимодействует с фактической базой данных рабочей группы. Другими словами, единственный «пользователь», который когда-либо подключался к фактической базе данных, — это «Сервер данных рабочей группы».

Диспетчер плавающих лицензий/Мастер лицензионных ключей/Setkey

Менеджер плавающих лицензий (FLM) может быть любой версии, начиная с версии 5.0.10 и выше. Мастер лицензионных ключей (он же Setkey) может быть любой версии, начиная с версии 4.0 и выше. С учетом сказанного, мы рекомендуем обновлять оба, чтобы обеспечить наилучшее взаимодействие с пользователем.

Этический кодекс SPJ - Общество профессиональных журналистов

Главная > Этика > Кодекс этики SPJ

Этический кодекс SPJ

Пересмотрено 6 сентября 2014 г. в 16:49. CT на Национальном съезде SPJ в Нэшвилле, штат Теннесси,

.

Загрузить копию для печати [PDF]:
8.5x11 листовка | Плакат 11x17 | Двусторонняя закладка


Преамбула

Члены Общества профессиональных журналистов считают, что народное просвещение является предтечей справедливости и основой демократии.Этическая журналистика стремится обеспечить свободный обмен точной, честной и тщательной информацией. Этический журналист действует честно.

Общество провозглашает эти четыре принципа основой этической журналистики и поощряет их использование в своей практике всеми людьми во всех средствах массовой информации.


Ищите правду и
Сообщите об этом

Этическая журналистика должна быть точной и справедливой. Журналисты должны быть честными и смелыми в сборе, сообщении и интерпретации информации.

Журналисты должны:


Сведение к минимуму вреда

Этическая журналистика относится к источникам, субъектам, коллегам и представителям общественности как к людям, заслуживающим уважения.

Журналисты должны:


Действовать независимо

Высшая и основная обязанность этичной журналистики — служить обществу.

Журналисты должны:


Быть подотчетным и прозрачным

Этическая журналистика означает брать на себя ответственность за свою работу и объяснять свои решения общественности.

Журналисты должны:

Теперь доступно: этика СМИ: 5-е издание

Это обновленное издание, тесно связанное с Кодексом этики SPJ, использует примеры из реальной жизни, чтобы продемонстрировать, как студенты и специалисты в области журналистики и других коммуникативных дисциплин выявляют и обосновывают этические дилеммы.

Заказать сейчас:


Этический кодекс SPJ представляет собой заявление о неукоснительных принципах, подкрепленное пояснениями и документами с изложением позиции, которые касаются меняющихся журналистских практик. Это не свод правил, а скорее руководство, побуждающее всех, кто занимается журналистикой, брать на себя ответственность за информацию, которую они предоставляют, независимо от носителя. Код следует читать целиком; отдельные принципы не следует вырывать из контекста. Это не является и не может быть в соответствии с Первой поправкой юридически обязательным.

Подробное объяснение можно найти по этой ссылке.


Сопроводительные документы

Нажмите или коснитесь значка стрелки в любом месте кода, чтобы изучить дополнительные ресурсы, которые комитет по этике Общества составил для помощи людям в принятии повседневных этических решений. Ссылки откроются в отдельном окне.


Переводы


Дополнительные приложения


Публикации комитета по этике SPJ


Дополнительные ресурсы


Присоединяйтесь


История

Этический кодекс SPJ представляет собой заявление о неукоснительных принципах, подкрепленное дополнительными разъяснениями и документами с изложением позиции, касающимися меняющейся журналистской практики.Это не свод правил, а скорее руководство, побуждающее всех, кто занимается журналистикой, брать на себя ответственность за информацию, которую они предоставляют, независимо от носителя. Код следует читать целиком; отдельные принципы не следует вырывать из контекста. Это не является и не может быть в соответствии с Первой поправкой юридически обязательным.

Первый Этический кодекс Sigma Delta Chi был заимствован у Американского общества редакторов газет в 1926 году. В 1973 году Sigma Delta Chi написала свой собственный кодекс, который был пересмотрен в 1984, 1987, 1996 и 2014 годах.

Общий формат // Purdue Writing Lab

Примечание:  На этой странице представлена ​​последняя версия Руководства по публикации APA (т. е. APA 7), выпущенная в октябре 2019 года. Эквивалентный ресурс для старого стиля APA 6 можно найти здесь.

Пожалуйста, используйте пример внизу этой страницы, чтобы процитировать Purdue OWL в APA.

Вы также можете посмотреть нашу серию видеокастов APA на канале Purdue OWL на YouTube.

Примечание: Для получения дополнительной информации об услугах для сообщества Purdue University, включая индивидуальные консультации, разговорные группы ESL и семинары, посетите сайт Writing Lab.

Общее руководство APA

Ваше эссе должно быть напечатано с двойным интервалом на бумаге стандартного размера (8,5 x 11 дюймов) с полями в 1 дюйм со всех сторон.  Включите заголовок страницы (также известный как " бегущая головка ") по адресу в верхней части каждой страницы. Для профессиональной статьи это включает название статьи и номер страницы. Для студенческой работы это включает только номер страницы. Чтобы создать заголовок страницы / бегущую головку , вставьте номера страниц справа налево.Затем введите «НАЗВАНИЕ ВАШЕЙ СТАТЬИ» в верхнем левом углу заголовка, используя все заглавные буквы. Бегущий заголовок — это сокращенная версия заголовка вашей статьи, длина которого не может превышать 50 символов, включая пробелы и знаки препинания.

Шрифт

7-е издание Руководства по публикациям APA требует, чтобы выбранный шрифт был доступен (то есть разборчив) для всех читателей и чтобы он последовательно использовался на протяжении всей статьи. Он признает, что многие варианты шрифтов являются законными, и советует авторам обращаться к своим издателям, преподавателям или учреждениям за рекомендациями в случае неуверенности.

Хотя в Руководстве APA не указан какой-то один шрифт или набор шрифтов для профессионального письма, в нем рекомендуется несколько широко доступных шрифтов. К ним относятся шрифты без засечек, такие как Calibri с размером 11 пунктов, Arial с размером 11 пунктов и Lucida Sans Unicode с размером 10 пунктов, а также шрифты с засечками, такие как Times New Roman с размером 12 пунктов, Georgia с размером 11 пунктов, Computer Modern с размером 10 пунктов.

Основные разделы бумаги

Ваше эссе должно включать четыре основных раздела : Титульный лист , Аннотация , Основная часть и Ссылки .

Титульный лист

Примечание: APA 7 предлагает немного разные указания по форматированию титульных листов профессиональных статей (например, предназначенных для научных публикаций) и студенческих работ (например, тех, которые сдаются для зачета в средней школе или колледже).

Титульный лист должен содержать название статьи, имя автора и принадлежность к учреждению . Профессиональная статья должна также включать примечание автора .Студенческий документ также должен включать номер курса и имя , имя преподавателя и дату выполнения задания .

Введите название прописными и строчными буквами по центру верхней половины страницы. Название должно располагаться по центру и выделено жирным шрифтом. APA рекомендует, чтобы ваш заголовок был четким и лаконичным, а также чтобы он не содержал аббревиатур или слов, которые не служат никакой цели. Ваш заголовок может занимать одну или две строки. Весь текст на титульном листе и во всей статье должен быть напечатан через два интервала.

Под заголовком введите имя автора : имя, отчество (инициалы) и фамилию. Не используйте титулы (доктор) или степени (доктор философии).

Под именем автора введите принадлежность к учреждению , что должно указывать место, где автор(ы) проводил исследование.

Профессиональная статья должна содержать примечание автора под институциональной принадлежностью в нижней половине титульного листа. Это должно быть разделено на несколько абзацев, при этом любые абзацы, которые не относятся к делу, опущены.Первый абзац должен включать имя автора, символ идентификатора ORCID и URL-адрес идентификатора ORCID. Любые авторы, не имеющие идентификатора ORCID, должны быть исключены. Во втором абзаце должны быть указаны любые изменения в принадлежности или смерти авторов. Третий абзац должен включать любые раскрытия или признания, такие как регистрация исследования, открытая практика и обмен данными, раскрытие связанных отчетов и конфликтов интересов, а также признание финансовой поддержки и другой помощи.Четвертый абзац должен включать контактную информацию соответствующего автора.

Студенческая работа не должна содержать примечание автора.

Еще раз обратите внимание, что заголовки страниц/номера страниц (описанные выше для профессиональных и студенческих работ) также появляются в верхней части титульного листа. Другими словами, титульный лист профессиональной статьи будет включать название статьи вровень с левой стороны всеми заглавными буквами и номер страницы вровень с правой стороны, в то время как студенческая статья будет содержать только номер страницы вровень с правой стороны.

Титульный лист Студенческого АПА

Титульный лист студенческой работы в стиле APA 7.

Профессиональная бумага Титульный лист APA

Титульный лист профессиональной статьи в стиле APA 7.

Аннотация

Начать новую страницу. Ваша абстрактная страница уже должна включать заголовок страницы (описанный выше). В первой строке страницы реферата выделите по центру и жирным шрифтом слово «Аннотация» (без курсива, подчеркивания или кавычек).

Начиная со следующей строки, напишите краткое изложение ключевых моментов вашего исследования. (Не делайте отступ.) Ваш тезис должен содержать как минимум тему исследования, вопросы исследования, участников, методы, результаты, анализ данных и выводы. Вы также можете включить возможные последствия вашего исследования и будущей работы, которые, по вашему мнению, связаны с вашими выводами. Ваша аннотация должна состоять из одного абзаца с двойным интервалом. Ваша аннотация обычно не должна превышать 250 слов.

Вы также можете указать в аннотации ключевые слова из своей статьи.Для этого сделайте отступ, как если бы вы начинали новый абзац, введите Ключевые слова: (выделено курсивом), а затем перечислите ключевые слова. Список ваших ключевых слов поможет исследователям найти вашу работу в базах данных.

APA Резюме Страница

Реферат для студенческой работы в стиле АРА 7.

См. наш ресурс Образец бумаги APA, чтобы увидеть пример бумаги APA. Вы также можете посетить нашу страницу «Дополнительные ресурсы» для получения дополнительных примеров документов APA.

Как цитировать Purdue OWL в APA

Индивидуальные ресурсы

Шаблон страницы для нового сайта OWL не включает имена участников или дату последнего редактирования страницы.Однако некоторые страницы по-прежнему содержат эту информацию.

При отсутствии информации о соавторе/дате редактирования рассматривать страницу как источник с группой авторов и использовать аббревиатуру «n.d.» для "без даты":

Онлайн-лаборатория письма Purdue. (н.д.). Название ресурса. Онлайн-лаборатория письма Purdue. http://Веб-адрес ресурса OWL

Онлайн-лаборатория письма Purdue. (н.д.). Часто задаваемые вопросы по общему письму. Онлайн-лаборатория письма Purdue. https://owl.purdue.edu/owl/general_writing/general_writing_faqs.html

Общая ссылка APA для страниц OWL, которая включает информацию об авторе/дате редактирования, выглядит следующим образом:

Имена участников.

0 comments on “Правила проверки версий: 2. Правила построения и проверки криминалистических версий в процессе расследования преступлений

Добавить комментарий

Ваш адрес email не будет опубликован.